Server absichern mit Fail2ban
Bitte verwenden sie die "Drucken" Funktion am Seitenende, um ein PDF zu erstellen.
In diesem Artikel wird die Installation und Einrichtung von Fail2ban beschrieben.
Voraussetzung
Für die Installation von Fail2ban wird ein Root-Server mit Linux-Betriebsystem benötigt (Cloud Server, Dedicated Server, Bare Metal Server, VPS).
Was ist Fail2ban?
Fail2ban ist ein Sicherheitsprogramm für Linux, das Brute-Force-Angriffe erkennt und abwehrt.
Nach der Einrichtung läuft Fail2ban als Dienst im Hintergrund und überwacht die Einträge in den Log-Dateien der verschiedenen Dienste (z.B. SSH, FTP). Zu viele fehlgeschlagene Versuche führen dazu, dass die angreifende IP-Adresse für einen gewissen Zeitraum geblockt wird, sodass keine weiteren Verbindungen zustande kommen.
Hinweis
Bei Servern mit Plesk sollten Anwendungen wie Fail2Ban immer über das Plesk Panel installiert und verwaltet werden.
Fail2ban installieren
Um Fail2ban zu installieren, führen die folgenden Befehle auf Ihrem Server aus:
Ubuntu 16.04 / 18.04 / 20.04 / 22.04 / 24.04
Paketlisten aktualisieren:
sudo apt update
Fail2ban installieren:
sudo apt install fail2ban
Fail2Ban starten:
sudo systemctl start fail2ban
Fail2Ban bei Systemstart automatisch starten:
sudo systemctl enable fail2ban
CentOS 7 / Stream 8 / Stream 9
Paketlisten aktualisieren:
sudo yum update
EPEL Repository installieren:
sudo yum install epel-release
Fail2Ban installieren:
sudo yum install fail2ban
Fail2Ban starten:
sudo systemctl start fail2ban
Fail2Ban bei Systemstart automatisch starten:
sudo systemctl enable fail2ban
Fail2ban konfigurieren
Die Fail2Ban-Konfigurationsdateien werden im Verzeichnis /etc/fail2ban gespeichert. In diesem Verzeichnis enthält die Datei jail.conf die Standardeinstellungen.
Die Standardeinstellungen sind in der Regel ausreichend. Wir empfehlen jedoch, die Sperrzeit zu erhöhen. Wie dies geht, wird im entsprechenden Abschnitt weiter unten erläutert.
Wenn es Standardeinstellungen gibt, die Sie überschreiben möchten, sollten diese in eine jail.local-Datei aufgenommen werden, um Konflikte zu vermeiden. Dazu erstellen Sie eine Kopie von jail.conf namens jail.local. Dazu wird folgender Befehl verwendet:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Sie können dann die Datei jail.local zur Bearbeitung öffnen:
sudo nano /etc/fail2ban/jail.local
Um zukünftige Verwirrung zu vermeiden, können Sie den ersten Textblock löschen, der vor der Bearbeitung der Datei jail.conf warnt:
# WARNING: heavily refactored in 0.9.0 release. Please review and
# customize settings for your setup.
#
# Changes: in most of the cases you should not modify this
# file, but provide customizations in jail.local file,
# or separate .conf files under jail.d/ directory, e.g.:
#
# HOW TO ACTIVATE JAILS:
#
# YOU SHOULD NOT MODIFY THIS FILE.
#
# It will probably be overwritten or improved in a distribution update.
#
# Provide customizations in a jail.local file or a jail.d/customisation.local.
# For example to change the default bantime for all jails and to enable the
# ssh-iptables jail the following (uncommented) would appear in the .local file.
# See man 5 jail.conf for details.
#
Sperrzeit erhöhen
Eine empfohlene Änderung ist die Erhöhung der Sperrzeit-Einstellung (ban time), die standardmäßig auf nur 10 Minuten (600 Sekunden) eingestellt ist.
Um die Sperrzeit zu erhöhen, suchen Sie den Abschnitt, der lautet:
# "bantime" is the number of seconds that a host is banned.
bantime = 600
Ersetzen Sie 600 mit der gewünschten Anzahl von Sekunden. Um beispielsweise Hosts für zwei Stunden zu sperren, ändern Sie diesen Befehlsblock wie folgt:
# "bantime" is the number of seconds that a host is banned.
bantime = 7200
Speichern Sie die Datei und starten Sie Fail2Ban neu, damit Ihre Änderungen wirksam werden:
sudo systemctl restart fail2ban
Fail2ban.log
Alle von Fail2Ban durchgeführten Aktionen und Maßnahmen werden in der Datei /var/log/fail2ban.log protokolliert. Um die Logdatei anzuzeigen, verwenden Sie den folgenden Befehl:
sudo less /var/log/fail2ban.log