DoS-Angriffe erfolgreich aufhalten

Immer wieder versuchen nervige Script-Kiddies, Spam-Bots oder sonstige bösgestimmte Zeitgenossen, durch viele Anfragen an Webserver in sehr kurzer Zeit deren Funktion zu beeinträchtigen und die Auslieferung der Inhalte an „normale“ Besucher dadurch zu erschweren oder gar ganz zu verhindern.
Heutzutage generieren sich viele Webprojekte aus dynamisch erzeuten Seiten; die Bildung der Inhalte benötigt daher Rechenzeit und Speicher auf derm Webserver, was das DoS-Problem verstärkt. Durch zu viele Anfragen in zu kurzer Zeit steigt die CPU-Auslastung an und in ungünstigen Situation ist kein Seiteaufbau mehr möglich, da dem Server der RAM ausgeht.
Um hier Entlastung zu bringen wurde das Apache-Modul mod_evasive entwickelt (Download-Mirror), welches die maximal möglichen Verbindungen pro IP-Adresse kontrolliert und im Bedarfsfall abblockt.
mod_evasive erstellt intern eine Liste von zugreifenden IPs und angeforderten URLs. Sobald in einer einstellbaren Zeitspanne ein festgelegter Schwellwert überschritten wird, lehnt das Modul weitere Zugriffe innerhalb einer Blacklist-Frist mit einem 403-Forbidden-Fehler ab — hierduch erfolgt kein rechenintensiver Aufruf von Inhalten mehr und viele DoS-Attacken laufen ins Leere.
Die Installation ist einfach. Das Modul kann im Quelltext bezogen werden und bei installieren Apache-dev-Quellen simpel durch Aufruf von

apxs -i -a -c mod_evasive20.c

kompiliert und den Apache-Modulen zugefügt werden.
Bei der Installation wird ein Eintrag in die httpd.conf eingefügt; zusätzlich empfiehlt sich, die Parameter von mod_evasive an die eigenen Bedürfnisse anzupassen.
Hierzu fügt man in der Apache-Konfiguration einen Abschnitt ein:

<IfModule mod_evasive20.c>
    DOSHashTableSize    3096
    DOSPageCount        5
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

Die Bedeutung der einzelnen Option sind in der Dokumentation erläutert.
Nach einem Neustart von Apache greift der Schutz. Bei Bedarf kann bei IP-Blacklistungen eine eMail an eine beliebige Adresse geschickt werden. Hierzu kann man oben zusätzlich die Option DOSEmailNotify admin@mydomain.net mit passender Adresse eintragen.
Anzumerken bleibt, dass mod_evasive zwar eine deutliche Lastreduktion bei Angriffen bieten kann, einen vollständigen Schutz leistet aber nur ein Abblocken der DoS-Pakete mittels Firewall, bevor sie Apache überhaut erreichen können.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*