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. 

Installation

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

Logdatei

Alle von Fail2Ban durchgeführten Aktionen und Maßnahmen werden in der Datei /var/log/fail2ban.log protokolliert. 

sudo less /var/log/fail2ban.log