längerer Kurztipp: Schutz gegen einfache DOS Attacken mit mod_evasive

Ein alter Hut, ich kannte es bis heute nicht. Mit mod_evasive kann man einfache DOS Angriffe blocken. Getestet mit dem guten, alten Squeeze.

$ apt-get install libapache2-mod-evasive
$ a2enmod mod-evasive
$ zless /usr/share/doc/libapache2-mod-evasive/README.gz
$ mkdir /var/log/mod_evasive
$ chown www-data /var/log/mod_evasive
$ ln -s /usr/bin/mail /bin/mail

$ joe /etc/apache2/mods-available/mod-evasive.conf

<ifmodule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir /var/log/mod_evasive
DOSEmailNotify thisis@waste.land
DOSWhitelist 127.0.0.1
</ifmodule>

$ ln -s /etc/apache2/mods-available/mod-evasive.conf /etc/apache2/mods-enabled/mod-evasive.conf
$ /etc/init.d/apache2 reload

Zum testen einfach mal irgendeine Seite aufrufen und ein paar mal schnell F5 drücken bis man ein 403 Forbidden erhält. Dann im logdir schauen und eigentlich sollte man auch eine mail bekommen. Im syslog sollte ein Eintrag der Art
Mar 14 11:36:15 webserver  mod_evasive[15723]: Blacklisting address 123.123.123.123: possible DoS attack
aufauchen.
Mit DOSSystemCommand kann man noch einen Befehl definieren, der ausgeführt werden soll wenn eine IP geblockt wird, also z.B. iptables Regel zum sperren der IP („sudo /sbin/iptables -A INPUT -s %s -j REJECT„) oder was auch immer.
Die Meinungen zum Einsatz von mod_evasive gehen etwas auseinander, daher sollte man es erst mal  unter Beobachtung laufen lassen und am besten vorher mal ein bisschen googlen.
Zusammen mit HAproxy oder Nginx als Reverseproxy funktioniert mod_evasive nicht. Da kann man sich  mal das Nginx Modul HttpLimitReq anschauen. mod_evasive blacklisted zwar die IPs, mehr aber leider nicht.

Links:

http://www.linux-magazin.de/Ausgaben/2005/12/Friede-im-Indianerland

http://pc-freak.net/blog/secure-apache-against-basic-denial-of-service-attacks-with-mod_evasive-on-debian/

http://spielwiese.la-evento.com/xelasblog/archives/56-Apache-DOS-Attacken-erschweren-mit-mod_evasive.html

One thought to “längerer Kurztipp: Schutz gegen einfache DOS Attacken mit mod_evasive”

  1. Prima erklärt. Funktioniert soweit auch. Allerdings scheint die Option DOSBlockingPeriod keinerlei Auswirkung zu haben. Nach ca. 5-6 Sekunden ist der Server bei mir wieder erreichbar. Egal, was bei DOSBlockingPeriod eingestellt ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.