Linux Server setup

Schutz gegen DoS Attacken mit Fail2ban

Die Software Fail2ban registriert übermäßig viele und wiederholende Anfragen an den Server, wie es bei einer Denial of Service (DoS) Attacke üblich ist. Dabei überwacht sie die Logdateien und blockt gegebenenfalls IP Adressen.

Wir werden Fail2ban noch zusätzlich auf zu viele SSH Anmeldeversuche sensibilisieren.

Zuerst installieren wir Fail2ban.

Das Paketverwaltungssystem von Linux (apt) schauen wir uns im Kapitel Linux Server updaten genauer an, daher führen wir die Installation an dieser Stelle ohne weitere Erklärung aus.

Fail2ban mit apt installieren:


__$ sudo apt install fail2ban -y
 

Wir legen zunächst eine jail.local Datei mit touch an:


__$ sudo touch /etc/fail2ban/jail.local
 

An dieser jail.local Datei können wir unsere Modifikationen vornehmen. Diese bleibt uns bei Updates erhalten und wird nicht wie die jail.conf überschrieben.

Öffnen wir sie zum Bearbeiten mit nano:


__$ sudo nano /etc/fail2ban/jail.local
 

In die Datei schreiben wir folgende Konfiguration:

/etc/fail2ban/jail.local


[sshd]

enabled   = true
port      = ssh
filter    = sshd
logpath   = /var/log/auth.log
ignoreip  = 127.0.0.1/8
bantime   = 3600
findtime  = 600
maxretry  = 6

Bei den Parametern gibt es eigentlich nicht viel Spielraum, bis auf maxretry, das sind die Anzahl der Fehlversuche innerhalb eines Zeitfensters. In diesem Fall sind 6 Anmeldeversuche erlaubt, bevor die IP temporär verbannt wird.

Kurze Erklärung zu den wichtigsten Parametern:

  • ignoreip = 127.0.0.1/8: das setzt eine Ausnahme für interne Dienste
  • bantime = 3600: Sekunden, die eine IP geblockt wird (3600 = 60 Minuten)
  • findtime = 600: Zeitfenster für Fehlversuche
  • maxretry = 6: Anzahl der Fehlversuche, bis eine IP geblockt wird

Starten wir Fail2ban neu, damit die Änderungen wirksam werden:


__$ sudo systemctl restart fail2ban
 

Und überprüfen auch den Status:


__$ sudo systemctl status fail2ban
 

Es sollte eine active (running) Rückmeldung kommen.

Testen ist gänzlich einfach. Einfach die eingestellten Fehlversuche (maxretry) ausreizen. Aber beachte: Wenn Du gesperrt bist brauchst Du entweder eine neue IP vom Provider (wenn möglich) oder Du setzt vorher die Sekunden der bantime herunter (bei Änderung fail2ban.service neustarten).

IP Adressen in Fail2ban wieder freischalten

Freigabe einer IP in Fail2ban (mehrere IPs mit Leerzeichen trennen):


__$ sudo fail2ban-client unban 116.203.69.89 123.456.789.013
 

Fail2ban IP Tabelle leeren:


__$ sudo fail2ban-client unban --all