PHP-Freak Geschrieben 18. Oktober 2006 Teilen Geschrieben 18. Oktober 2006 Hallo ich bräuchte eine Firewall für meinen Webserver. Vieleicht genügt sogar IPTables. Also folgendes sollte sie können: - DDOS erkennen und blocken - Bestimmte Http-Requests blocken z.b. solche die auf einen bestimmten Ordner http://www.meinedomain.de/ordner/ Aber es soll weiter hin der Zugriff auf alle anderen Verzeichnisse erlaubt sein. http://www.meinedomain.de/ http://www.meinedomain.de/ordner2/ . . . Hintergrund ist der, dass irgendwelche Webseiten auf eine Bestimmte Unterseite meiner Domain verlinkt sind bzw. ein Banner anfordern. Dies lastet meinen Apche ziehmlich aus. Daher währe es schön wenn man es direkt per Firewall abfangen könnte. Sonst sollte man alle Ports usw generell freischalten können. Es geht mir nur um DDOS angriffe usw. Betriebsystem kann Suse 9.3 64 Bit oder Fedoracor 4 64 Bit sein. Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 18. Oktober 2006 Teilen Geschrieben 18. Oktober 2006 Hi, Vieleicht genügt sogar IPTables. ähm. IP-Tables ist eine absolut vollwertige und qualitativ hochwertige Firewall, die eigentlich kaum Wünsche offen lässt. Einzig die komplexe Konfiguration (wobei da eigentlich nur ein Frontend fehlt) erfordert ein wenig Einarbeitungszeit. Wobei man bei einer Firewall schon genau wissen sollte, was man tut, und IPTables zwingt dich quasi dazu. Genug geschwärmt. Alles, was du da möchtest, ist mit IPTables möglich. Welche Module du dafür brauchst und wie du das konfigurierst sollte z. B. hieraus hervorgehen: http://iptables-tutorial.frozentux.net/iptables-tutorial.html Ein super Frontend gibts hier: www.fwbuilder.org Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PHP-Freak Geschrieben 18. Oktober 2006 Autor Teilen Geschrieben 18. Oktober 2006 Danke ich werde mich mal bei Sourceforge.net umschauen nach einem Frontend. Vieleicht gibts da ja eins was auch komplexe sachen kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lordy Geschrieben 18. Oktober 2006 Teilen Geschrieben 18. Oktober 2006 Gegen (ordentliche) DDoS-Attacken wird dir keine Firewall helfen. Was das Filtern von HTTP-Geraffel angeht solltest du dir lieber mod_security anschauen, denn das ist eine Layer-7- und keine Layer-3-Aufgabe. Fuer Sachen wie Ports freischalten, Connects kontrollieren,etc ist IPtables ganz klar das Mittel der Wahl. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PHP-Freak Geschrieben 18. Oktober 2006 Autor Teilen Geschrieben 18. Oktober 2006 Sind wenn überhaupt immer "kleine" DDOS von einer IP aus. Also muss die Firewall nur erkennen, dass da übermäßig Anfragen von einer Ip kommen und denn die Ip blocken. ICh glaub des geht auch mit Fail2Ban. Des mit mod_security hab ich auchschon versucht bin aber leider am konfigurieren gescheitert. Kanst du mir kurz sagen wie ich des einstellen muss, dass Anfragen auf ein bestimmtes Verzeichniss geblockt werden? Wird dadurch eigentlich die Auslastung des Apaches verringert? Im moment schickt er immer ein 403 zurück. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lordy Geschrieben 18. Oktober 2006 Teilen Geschrieben 18. Oktober 2006 Sind wenn überhaupt immer "kleine" DDOS von einer IP aus. Dann handelt es sich aber um DoS, nicht um DDoS. Also muss die Firewall nur erkennen, dass da übermäßig Anfragen von einer Ip kommen und denn die Ip blocken. IPtables LIMIT ist hier der richtige Ansatz. ICh glaub des geht auch mit Fail2Ban. Nein, das ist ungeeignet. Des mit mod_security hab ich auchschon versucht bin aber leider am konfigurieren gescheitert. Kanst du mir kurz sagen wie ich des einstellen muss, dass Anfragen auf ein bestimmtes Verzeichniss geblockt werden? Die Dokumentation ist doch ausfuehrlich. Probier es mal mit "SecFilterSelective REQUEST_URI bla.de/boeser_ordner". Eigentlich solltest du aber ein Deny in der httpd.conf machen, wenn da wirklich keiner dran soll. Und warum liegt es dann ueberhaupt im DocumentRoot... Wird dadurch eigentlich die Auslastung des Apaches verringert? Im moment schickt er immer ein 403 zurück. Ja, das ist ja auch das einfachste. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PHP-Freak Geschrieben 19. Oktober 2006 Autor Teilen Geschrieben 19. Oktober 2006 Es geht nicht dadrum dass da keiner dran soll. Sondern es soll den Apache entlasten. Im moment ist die Datei http://www.meinedomain.de/toplist/image.php in einige Banner farmen eingetragen. Deshalb hatte ich die Toplist entfernt. Also des Verzeichnioss www.meinedomain.de/toplist/ exsistiert nicht mehr. Aber da die Admins nicht auf meine Anfragen reagieren wird diese URL zig mal hintereinander aufgerufen. Dadurch wird mein Apache mit unnötigen Anfragen ausgelastet. Nur deswegen hab ich immer irgendwie mehr als 40 Apache-Childs laufen die den ganzen Ram fressen. Ambesten währe es wenn Anfragen auf diese URL direkt geblockt werden und der Apache die garnicht bearbeiten muss. Vieleicht würde es sogar helfen wenn der Apache bei dieser URL sofort die bearbeitung abbricht und auch keine Antwort zurückschickt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lordy Geschrieben 19. Oktober 2006 Teilen Geschrieben 19. Oktober 2006 Das starten der Apaches wirst du nicht verhindern können, aber der einfachste Weg so etwas zu lösen ist mod_rewrite. Damit kannst du auch dafür sorgen, das anstelle deines Bildes sehr "interessante" Bilder geladen werden, die bei den Admins bestimmt zu einer Reaktion führen werden... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PHP-Freak Geschrieben 19. Oktober 2006 Autor Teilen Geschrieben 19. Oktober 2006 Wenn du die Bannerfarm siehst denn wirste sehen dass es den Admin nicht interessiert. Da sind bestimmt über 100 Toplistbanner drauf auch einige die auch nicht mehr angezeigt werden. Ich hab bei Sourceforge schon was von einer Layer 7 Firewall gelesen. Ich werd mal schaun ob des was ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 20. Oktober 2006 Teilen Geschrieben 20. Oktober 2006 - Bestimmte Http-Requests blocken z.b. solche die auf einen bestimmten Ordner http://www.meinedomain.de/ordner/ Aber es soll weiter hin der Zugriff auf alle anderen Verzeichnisse erlaubt sein. http://www.meinedomain.de/ http://www.meinedomain.de/ordner2/ . . . Dazu brauchst du keine Firewall. # .htaccess Datei im Ordner [b]ordner[/b] order deny,allow deny from all Aber was bringt dir das? Wenn alle Anfragen auf den Ordner geblockt werden, könntest du ihn auch einfach löschen Ansonsten kannst du mit mod_rewrite auch alle Anfragen blocken, die einen Referer haben, der nicht deine URL enthält. RewriteEngine On RewriteCond %{REQUEST_URI} .*\.(gif|jpg|jpeg|png) [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(.*)deine\.domain\.tld/.*$ [NC] RewriteRule (.*) /bilder/nixDa.jpg [L,NS] Alle Anfragen auf Bilder, die einen Referer haben und deren Referer nicht deine URL enthält (bzw. mit deiner URL anfängt) bekommen immer nur das Bild "nixDa.jpg" zu sehen. Das sollte ja schon reichen für das, was du machen willst. Ansonsten könntest du mod_security probieren. Die Apache-Firewall. Damit kannst du Anfragen blocken, wenn der Apache sie bekommt und du sie auch auswerten kannst. IPTables kann nur TCP/IP-Pakete blocken, ohne zu wissen was die überhaupt sollen. "Firewalls" sind keine Lösung für alle Probleme und kein Allheilmittel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PHP-Freak Geschrieben 20. Oktober 2006 Autor Teilen Geschrieben 20. Oktober 2006 Soweit bin ich ja schon längst. Es geht ja nich dadrum den Zugriff dadrauf zu sperren sondern den Apache zu entlasten. Dieser ganze Ordner exsitiert ja nicht mehr. Nur wird diese Datei weiterhin sehr oft aufgerufen kann ja mal nen Log posten. Da ist eigentlich nur diese URL drin. Dadurch frisst der Apache immer den ganzen Ram und hängt sich irgendwann auf. Im mom muss ich ihn mindestens 4 mal am Tag neustarten. Ich hab auch schon was von GeoIp gelesen. Denn als ich mal nachgeschaut hatte waren die meisten Ips von Türkischenanbietern. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lordy Geschrieben 20. Oktober 2006 Teilen Geschrieben 20. Oktober 2006 Dieser ganze Ordner exsitiert ja nicht mehr. Nur wird diese Datei weiterhin sehr oft aufgerufen kann ja mal nen Log posten. Da ist eigentlich nur diese URL drin. Dadurch frisst der Apache immer den ganzen Ram und hängt sich irgendwann auf. Im mom muss ich ihn mindestens 4 mal am Tag neustarten. Wenn so etwas zum Absturz/Aufhängen deines Apache's führt muß am Setup etwas gewaltig faul sein ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 20. Oktober 2006 Teilen Geschrieben 20. Oktober 2006 Dieser ganze Ordner exsitiert ja nicht mehr. Nur wird diese Datei weiterhin sehr oft aufgerufen kann ja mal nen Log posten. Da ist eigentlich nur diese URL drin. Dann wende dich doch einfach an die Abuseabteilung des Providers, von dem die IP-Adresse kommt. http://www.ripe.net/ Da bekommst du raus, wem diese IP-Range gehört. Dazu gibt es solche Sachen ja. abuse@domain.tld sollte es bei jedem Provider geben. Dadurch frisst der Apache immer den ganzen Ram und hängt sich irgendwann auf. Im mom muss ich ihn mindestens 4 mal am Tag neustarten. Wegen einer (oder sehr vieler) 404-Meldungen sollte der Apache ja keine Probleme bekommen. Das muss nen anderen Grund haben... Aber du kannst ja das Logging für diesen Ordner ausschließen. Hab das noch nie probiert, aber hier was gefunden: Das folgende Beispiel definiert mit Hilfe von SetEnvIf die Variable nolog, wenn eine Anfrage von localhost selbst stammt, und schließt das Logging entsprechender Zugriffe aus: # localhost ausschließen SetEnvIf Remote_Addr "127\.0\.0\.1" nolog # Log-Format common definieren LogFormat common "%h %l %u %t \"%r\" %>s %b" # Alles andere in die Log-Datei schreiben CustomLog logs/access_log common env=!nolog Das letzte Beispiel erstellt eine Combined-Log-Format-Datei sämtlicher Anfragen, die eine Web-typische Bilddatei (JPEG, GIF oder PNG) angefordert haben: # imgreq definieren, falls Bild angefordert SetEnvIf Request_URI "(\.jpg)|(\.gif)|(\.png)$" imgreq Die letzte Zeile mit dem ersten Teil kombinieren und du kannst deinen Ordner vom Log ausnehmen. EDIT: Ich denke vielleicht wird die Logdatei zu groß. Wenn die recht groß is kann das vielleicht Probleme machen...sonst könnt ich mir nicht vorstellen, was das Problem sein sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PHP-Freak Geschrieben 20. Oktober 2006 Autor Teilen Geschrieben 20. Oktober 2006 Log datei wird relativ schnell groß. Ca 10 Min danach hat sie mindestens einige Mb. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 23. Oktober 2006 Teilen Geschrieben 23. Oktober 2006 Ca 10 Min danach hat sie mindestens einige Mb. Dann musst du ja bombardiert werden mit Anfragen... dann würd ich mich erstrecht mal an den Provider wenden (muss ja ein Referer dabeistehen, bzw. die IP ja sowieso). Das ist ja fast schon ein DoS dann. Diese "irgendwelche Webseiten" müssen ja irgendwo gehostet werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.