DDoS-Abwehr mit mod_evasive

DDoS-Attacken sind eine teure und ärgerliche Bedrohung für Webseiten. Was das genau ist kann euch eine gängige Suchmaschine besser erläutern, aber es ist im Grunde ein Versuch den Webserver lahm zu legen, indem man möglichst viele Seitenaufrufe in möglichst kurzer Zeit ausführt.
Um diese Art der Überlastung des Webservers zu verhindern, oder zumindest das Risiko etwas einzudämmen, gibt es eine kleine Erweiterung für den Apache: mod_evasive. Und dieses installieren wir jetzt Lächeln:

  1. Als erstes laden wir die Quellen von der Seite des Projekts herunter (dort findest du den aktuellen Link), da es leider nur für den Apache2 in den Ports ist.

    # fetch http://www.zdziarski.com/.../mod_evasive_1.10.1.tar.gz

  2. Dann entpacken wir das Archiv:

    # tar -xvf mod_evasive_1.10.1.tar.gz

  3. Jetzt wechseln wir in das Verzeichnis und fügen das Modul über 'apxs' hinzu:

    # cd mod_evasive/ && apxs -iac mod_evasive.c

  4. 'apxs' fügt die notwendigen Zeilen automatisch in die 'httpd.conf' ein, aber sicherheitshalber solltest du das nochmal überprüfen. Folgende Zeilen sollten bereits drin stehen, wenn nicht, füge Sie in die Liste der Module ein.

    LoadModule evasive_module libexec/apache/mod_evasive.so
    AddModule mod_evasive.c

  5. Jetzt konfigurieren wir das Modul noch. Ändere die E-Mail-Adresse auf die, an die im Falle einer Attacke eine Nachricht geschickt werden soll. Für den Rest verwende ich die Standardeinstellungen. Was die einzelnen Parameter bedeuten, kannst du in der Datei "README" im Verzeichnis 'mod_evasive' nachlesen.

    <IfModule mod_evasive.c>
    DOSHashTableSize 3097
    DOSPageCount 2
    DOSSiteCount 40
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 10
    DOSEmailNotify <E-MAIL-ADRESSE>
    DOSLogDir "/var/log/mod_evasive"
    </IfModule>

  6. "Leider" betreibe ich den Apache in einer Jail, aber wenn du das nicht tust, kannst du eine zu blockende IP-Adresse zu unserer <BRUTEFORCE>-Tabelle in pf hinzufügen. Das kannst du mit folgendem Eintrag vornehmen:

    DOSSystemCommand "pfctl -t bruteforce -T add %s"

    Das fügt die IP '%s', also die zu blockende Adresse, zu der Tabelle "bruteforce" hinzu. Die Tabelle wird dank unserer Konfiguration nach 24h geleert, siehe expiretable. Um aber dennoch aus einer Jail heraus die pf-rules zu ändern, hilft dir das Tool "pftabled" weiter. Wie man das einsetzt werde ich wohl in einem anderen Tutorial beschreiben.

  7. Anschließend starten wir den Apache neu:

    # apachectl restart

  8. Um das Modul jetzt zu testen, führen wir das beigelegte Skript aus:

    # perl test.pl

    Jetzt sollte der Server die ersten Verbindungen zulassen, danach "Fehler 403"-Meldungen ausspucken. Juhu, Apache scheint gegen DDoS geschützt Winken
Einen Kommentar hinzufügen

Einen Kommentar hinzufügen

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)
Code im diesem Bild:
Ihr Name(*):
Kommentar(*):