libapache2-mod-evasive gegen DOS und DDOS

By | 3. April 2009

Gelegentlich kommt es vor, dass der Apache2 unter DOS/DDOS-Beschuss gerät. Einfache DOS bzw. DDOS-Angriffe können in aller Regel sehr leicht mit dem Modul „libapache2-mod-evasive“ abgewehrt werden. Dabei wird bei einem erkannten Angriff der jeweiligen IP-Adresse ein Fehler 403 ausgeliefert. Der Apache muss also nicht mehr die eigentliche Webseite ausliefern. Das sind bei Webseiten auf PHP-Basis wie z.B. WordPress jeweils ~0,5 Sekunden pro Anfrage die an CPU-Zeit gespart wird (abhängig vom Server). Natürlich wird auch Bandbreite gespart da ja die 403-Fehlerseite bedeutend kleiner ist.
Damit sind aber auch schon die Grenzen dieses Apache2-Mod´s aufgezeigt. Massive DOS und DDOS-Angriffe können damit nicht abgewehrt werden. Das gelingt nur wenn eine Firewall die unerwünschten Anfragen blockiert. Dazu kommen wir eventuell in einem späteren Beitrag.

Installation von mod-evasive:
als erstes installieren wir das Paket libapache2-mod-evasive

apt-get install libapache2-mod-evasive

jetzt sollten wir in der Apache Konfiguration noch einige Einträge vornehmen
dazu in der /etc/apache2/apache2.conf folgendes hinzu fügen:

    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
# optionale Einstellungen
#   DOSWhitelist            127.0.0.*
#   DOSEmailNotify	deinemailadresse@meinedomain.de
#   DOSSystemCommand	"su - someuser -c '/sbin/... %s ...'"
#   DOSLogDir		"/var/lock/mod_evasive"

Die Standardvorgaben sollten für einen normalen Webserver passend sein. Bei Bedarf kann man aber diese Parameter anpassen…

jetzt noch das Verzeichnis /var/lock/mod_evasive anlegen (wenn DOSLogDir benutzt wird)

mkdir /var/lock/mod_evasive

jetzt noch dem Apache in diesem Verzeichnis Schreibrechte vergeben
das war´s fürs erste,… nur noch den Apache neustarten; zur Sicherheit

/etc/init.d/apache2 restart

den Link von mod-enable zu mod-avialbe wird bei der Installation automatisch angelegt ;-)

das wars ! jetzt sollten wir natürlich die Wirksamkeit prüfen. Dazu wir bei debian 5.0 auch ein kleines Test-Script mitgeliefert:

perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

jetzt sollte nach den ersten paar Abfragen ein Error 403 erscheinen

> perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
HTTP/1.1 302 Found
HTTP/1.1 302 Found
HTTP/1.1 302 Found
HTTP/1.1 302 Found
HTTP/1.1 302 Found
HTTP/1.1 302 Found
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

Ziel erreicht

Update:
damit auch unter Debian 5 (Lenny) die Mailbenachrichtigung funktioniert muss noch ein symbolischer Link auf den Mailer gesetzt werden und zwar von

/bin/mail -> /etc/alternatives/mail

ln -s /bin/mail /etc/alternatives/mail

One thought on “libapache2-mod-evasive gegen DOS und DDOS

  1. Pingback: Java Bot: Java/1.6.0_04 -> DoS attack - my GettoWEB.DE

Comments are closed.