Server absichern mit Fail2ban
In diesem Artikel wird die Installation und Einrichtung von Fail2ban beschrieben.
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.
Voraussetzung
Für die Installation von Fail2ban wird Root-Server mit Linux-Betriebsystem benötigt (Cloud Server, Dedicated Server, Bare Metal Server, VPS).
Anmerkung
Bei Servern mit Plesk sollten Anwendungen wie Fail2Ban immer über das Plesk Panel installiert und verwaltet werden.
Ubuntu 16.04 / 18.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
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
Konfiguration
Die Fail2Ban-Konfigurationsdateien werden im Verzeichnis /etc/fail2ban gespeichert. In diesem Verzeichnis enthält die Datei jail.conf die Standardeinstellungen.
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 einfach eine Kopie von jail.conf namens jail.local:
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