Mit fail2ban Webserver gegen DoS Attacken schützen

fehlt wasgeht sogutsehr guthat geholfen (No Ratings Yet)
Loading ... Loading ...
Werbung




fail2ban ist ein sehr gutes Tool, um zu häufige Abfragen an einen Server auszuwerten und Gegenmaßnahmen gegen einen DoS einleiten zu können. Hierbei setzt fail2ban auf die Logfiles auf und wertet diese aus. Tauchen hier bestimmte Suchbegriffe auf oder werden zu viele Abfragen innerhalb besimmter Zeiten gemacht, kann fail2ban eine iptables Regel ausführen und Anfragen dieses Hosts doppen oder blocken.

Mit fail2ban den Webserver gegen DoS Attacken schützen

In diesem Artikel gehen wir speziell auf fail2ban ein. Man kann auch manuell den Server schützen oder ein iptables Regel einrichten, aber fail2ban bringt viele vordefinierte Regeln mit, der auch SSH, Mailserver und andere Dienste überwachen kann.

Zunächst muss fail2ban installiert werden

# aptitude install fail2ban

Die Installation legt 2 Konfigurationsdateien unter /etc/fail2ban an. Einmal ist das die fail2ban.conf und zum anderen die jail.conf. Diese 2 Konfigurationen bestimmen, wie fail2ban arbeiten soll und wie gehandelt wird.

fail2ban zur Absicherung von Apache / Nginx / Varnish einsetzen

Nun erfolgt die Konfiguration der Ereignisse in der
/etc/fail2ban/jail.conf

[http-dos-detect]
enabled = true
port = http,https
filter = http-dos-detect
logpath = /var/log/apache/apache-vhost-access-log
maxretry = 300
findtime = 300
bantime = 600
action = iptables[name=HTTP, port=http, protocol=tcp]

Der port bestimmt, welche Ports überwacht werden sollen, in dem Falle http (Port 80) und https (Port 443).
maxretrys bestimmt, wie oft ein Ereignis eintreffen muss, findtime bestimmt, in welcher Zeit dies passieren soll.
In diesem Fall muss ein Client 300 Anfragen in 300 Sekunden tätigen, damit er geblockt wird. Der Client wird dann für “bantime = 600″ – 600 Sekunden geblockt (action).

Hier wurde auch ein neuer Filter definiert “http-dos-detect”. Für diesen Filter muss nun eine separate Konfigurationsdatei angelegt werden
/etc/fail2ban/http-dos-detect.conf

# Fail2Ban configuration file
#
# Author: http://www.server-wissen.de/
# [Definition]
# Option: failregex
# Note: This regex will match any GET entry in your logs, so basically all valid and not valid entries are a match.
# You should set up in the jail.conf file, the maxretry and findtime carefully in order to avoid false positives.
failregex = ^ -.*GET
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
# ignoreregex =

Hier wird definiert, dass nach dem Begriff “GET” in der Logfile gesucht werden soll. Normale Clientanfragen an den Webserver sind “GET” anfragen, so dass diese einfach im Logfile gefiltert werden können.

Der fail2ban Service muss dann noch gestartet werden

# /etc/init.d/fail2ban stop
# /etc/init.d/fail2ban start

Feintuning

Man muss beachten, dass sämtliche Anfragen an den Server, eben auch die css-Dateien, js-Dateien oder Bilder eine GET Anfrage an den Server stellt und auch einen GET-Eintrag im Logfile ist. Hat man viele Elemente in seiner Webseite, müssen die “maxretrys” entsprechend hoch gewählt werden.

Wenn Client geblockt wurden, kann eine Liste derer mit

# iptables -L

ausgegeben werden.

varnish Logging einschalten

Wenn der Varnish Cache eingesetzt wird, muss hier noch ein Logging aktiviert werden.
Hierzu gibt es den Dienst “varnishncsa”. Dieser muss unter /etc/defaults/varnishncsa aktiviert werden und loggt dann in /etc/log/varnish/access.log

bisherige Suchbegriffe:

  • nginx absichern


Werbung


2 Kommentare zu: Mit fail2ban Webserver gegen DoS Attacken schützen

  1. Mark sagt:

    Danke, fail2ban kannte ich noch nicht. Aber mir hilft das, vorsorglich gegen ddos vorzugehen. Ich habe die hire genannte Konfiguraiton benutzt, passt. Auch ssh hab ich damit gesichert.
    Aber ist das dann auf dem Server nicht schon zu spät?

  2. Eddi sagt:

    Danke, ich habe fail2ban jetzt auf meinem Server eingerichtet und es wurden schon ein paar IPs gesperrt, die mir schön länger aufgefallen sind.
    Wie kann ich denn fail2ban für ssh aktivieren, damit hier die Brutefoce Angriffe gesperrt werden?
    Kannst du hierfür noch was schreiben?

Hinterlasse eine Antwort

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


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>