DoS Attacken mit mod evasive stoppen/reduzieren

Aus wiki.shutdown-system.de
Wechseln zu: Navigation, Suche

Leider kommt es immer wieder mal vor, dass Script-Kiddis versuchen Content auszulesen um evtl. an Informationen (wie Passwörter in .php-Files) ranzukommen.

Die geschieht durch ein "GET". Es gibt verschiedene Möglichkeiten solche Scanns bzw. auch Attacken zu stoppen. Wir beschäftigen uns hier um ein Apache-Modul um solche "GET"'s zu stoppen.

Leider muss man dazu sagen, dass sowas auch ziemlich gefährlich sein kann und man eigentlich DoS-Attacken grundsätzlich nicht aus dem Weg gehen kann und bei solchen Modulen auch unschuldige mal auf eine Blacklist landen können.

Ich bevorzuge das Modul Evasive. Es gibt zwar auch noch mod_security aber bei diesem Modul reißt man i.d.R. nochmehr Sicherheitlücken auf

Das Modul könnt Ihr auch hier von der Seite downloaden.

Wir entpacken das Packet:

 tar xvf mod_evasive.tar

Ihr wechselt in das Verzeichnis:

cd mod_evasive/

Damit Ihr dieses Modul auch installieren könnt, benötigt Ihr die Dev-Packet vom Apache. Wenn Ihr dies nicht installiert habt, dann inst. es jetzt (im Bsp. Debian)

 apt-get install apache2-prefork-dev

Vor der Installation muss man noch kleinere Anpassungen machen. Wichtig ist, dass ich den Pfad zum MTA angebt. In diesem Fall ist es "mail".

Ihr findet einfach herraus wohin mail installiert wurde:

 which mail

Wenn es nicht installiert ist, dann installiert einfach mailx nach:

 apt-get install mailx

Dann im File mod_evasive20.c den entsprechenden Pfad anpassen.

Nun muss das Modul gebaut werden. Dies kann man mit apxs machen. In meinem Beispiel baue ich das Modul für Apache2:

 apxs2 -i -a -c mod_evasive20.c

Jetzt habt Ihr die benötigten Files nach /usr/lib/apache2/modules/ installiert.

Jetzt müsst Ihr noch das Modul laden. In /etc/apache2/mods-available/ legt ihr eine Datei an mit dem Namen evasive.load

 touch evasive.load

In diese Datei folg. Inhalt einfügen:

 LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so

Dann noch die Datei evasive.conf anlegen und z.B. folg. Inhalt einfügen:

 <IfModule mod_evasive20.c>
 DOSHashTableSize 3097
 DOSPageCount 5
 DOSSiteCount 50
 DOSPageInterval 1
 DOSSiteInterval 1
 DOSBlockingPeriod 10
 DOSWhitelist 127.0.0.*
 </IfModule>

Es gibt hier noch viele Optionen die man konfigurieren kann. Ich habe mir z.B. noch ein Script geschrieben welches mich vernünftig Informiert sobald eine IP in die Blacklist gekommen ist da mir der Standartweg nicht gefallen hat.

Nun noch Symlinks anlegen damit das Modul auch eingebunden wird:

 ln -s /etc/apache2/mods-available/evasive.load /etc/apache2/mods-enable/evasive.load
 ln -s /etc/apache2/mods-available/evasive.conf /etc/apache2/mods-enable/evasive.conf

Alternativ kann man hier auch das Tool "a2enmod" nutzen

Nun noch den Apache neu starten:

 /etc/init.d/apache2 restart

Weiter Informationen könnt Ihr im beiliegenden README-File nachlesen... Ansonsten hier fragen... ;)

Achja... Per default werden geblacklistete IP's nach /tmp/ gelegt. Sieht z.B. so aus:

 /tmp/dos-127.0.0.1

Wenn Ihr die IP von der Blacklist entfernen wollt, einfach diese Datei löschen.

Auf die ganzen Optionen gehe ich hier jetzt nicht weiter drauf ein, da viele selbsterklärend sind und ansonden alle im README-File stehen...


Meine Werkzeuge