Mit dieser Anleitung lässt sich eine DDOS Attacke auf den Http Server abschwächen. Hierfür wird mod_evasive benötigt. Unter Debian lässt sich das Packet einfach mittels aptitue install libapache2-mod-evasive installieren. Vorausgesetzt es wird Apche2 verwendet. Bevor wir aber mod_evasive aktivieren installieren wir uns noch modsec2iptables. Das Original Script gibt es bei fibs.ch. Ich habe aber eine abgewandelte Version erstellt welche nur IP Adressen sperren kann aber keine Statusabfrage oder Entsperrung ausführen kann.
Natürlich muss auch iptables im Kernel aktiviert sein. Hinweis: Diese Scripte arbeiten mit dem iptables Modul Comment und Multiport. Hierfür muss
Zitat:
xt_comment xt_multiport
im kernel verfügbar sein.
Wir entpacken nun banip.tar.gz aus dem Anhang und Kompilieren modsec2iptables.c
su root
gcc-o/usr/sbin/modsec2iptables modsec2iptables.c
chmod u+s /usr/sbin/modsec2iptables
mkdir/var/lock/modsec2iptables
Anschließend erstellen wir die conf Datei für mod_evasive. Inhalt von /etc/apache2/mods-available/mod-evasive.conf:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097#DOSPageCount gibt die Anzahl der Seitenaufrufe eines Clients pro DOSPageInterval-Zeitintervall
DOSPageCount 5#DOSSiteCount gibt die Anzahl der Seitenaufrufe auf einen Child-Prozess pro DOSSiteInterval-Zeitintervall
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1#DOSBlockingPeriod gibt die Sperrzeit in Sekunden an
DOSBlockingPeriod 60#DOSEmailNotify funktioniert nur wenn mail unter /bin/mail zu finden ist!!#DOSEmailNotify mail@benutzer# Script um automatisch iptables bann aus zu fueren
DOSSystemCommand "/usr/sbin/modsec2iptables -i %s"
</IfModule>
mod-evasive.load und die mod-evasive.conf kann nun mittels apsx(2) geladen werden oder mit symlink und apachectl -k restart.
Das Script banip wird benötigt um gebannte IP Adressen an zu zeigen oder aus/ein zu tragen. Um Deine eigene IP Adressen zu schützen musst Du banip editieren. Die Eintrage
Zitat:
WHITELIST=' 127.0.0.1 0.0.0.0 '
mit deinen IP Adressen erweitern.
Usage: banip [[-u]-i IP address][-s[-p][-S STRING]]-u Entfernt die übergebene IP Adresse
-s Zeigt die aktuell gebannten IP Adressen
-S123* Zeigt Einträge die mit 123 beginnen
-p[http|mail|all] Optional kann hier der Port übergeben werden. [http [DEFAULT]|mail|all]
-?,-h Diese Hilfe
EXAMPLE:
banip -i IP -s Liest den Status der gebannten IP aus
EXAMPLE:
banip -i IP bannt die IP Adresse an den http Ports 80,443
EXAMPLE:
banip -i IP -p mail bannt die IP an den Mailserver Ports 25,465,587
EXAMPLE:
banip -i IP -p all bannt die IP an den Mailserver und http Ports 80,443,25,465,587
EXAMPLE:
banip -u-i IP entfernt den bann der IP Adresse
TIPP: Ausgabe von -s oder -S STRING kann mittels "banip -S 123*|sort -k 5" nach datum sortiert werden
Beitrag von: Christian
erstellt: 09.4.2009 8:01:03
Hinweis: Mittels conntrack lässt sich schön beobachten welche Verbindungen geöffnet werden.