Einführung
Fail2ban ist eine Software, die Ihren Server vor Brute-Force-Angriffen schützt. Dazu überwacht es Serverprotokolle und erkennt verdächtige Aktivitäten.
Das Programm erkennt, wenn es eine unangemessene Anzahl von Fehlversuchen gibt, und fügt automatisch neue zu iptables hinzu, die die angegebene IP blockieren. Diese IP (oder Host) wird dann für eine bestimmte Zeit oder auf unbestimmte Zeit blockiert.
Daher ist die Installation dieser Protokollüberwachungssoftware eine hervorragende Möglichkeit, Ihrer Serversicherheit eine weitere Ebene hinzuzufügen. Dies kann jedoch nur ein Teil Ihres gesamten Serversicherheitsplans sein. Entdecken Sie weitere Maßnahmen mit diesen 21 Tipps zur Serversicherheit.
In diesem Tutorial erfahren Sie, wie Sie Fail2ban auf Ihrem Server installieren und konfigurieren.
Voraussetzungen
- Zugriff auf eine Befehlszeile / Terminalfenster
- Zugriff auf ein Benutzerkonto mit sudo oder Root-Rechte
Fail2ban installieren
Wie Fail2ban installiert wird, hängt vom Betriebssystem ab, das auf Ihrem Server läuft. Nachfolgend finden Sie Befehle zum Installieren und Aktivieren von Fail2ban auf Ubuntu , CentOS , Fedora , und Debian .
Wichtig: Fail2ban ist kein Ersatz für Software-Firewalls wie iptables. Es ist als weitere Sicherheitsschicht gedacht und sollte kein Ersatz für eine Firewall sein.
Fail2ban auf Ubuntu installieren
1. Bevor Sie neue Pakete hinzufügen, ist es wichtig zu aktualisieren das System-Repository und aktualisieren Software. Führen Sie dazu den folgenden Befehl aus:
apt-get update && apt-get upgrade
Drücken Sie y
zu bestätigen und Enter zu drücken .
2. Jetzt können Sie Fail2ban installieren mit:
apt-get install fail2ban
3. Optional können Sie Sendmail installieren für E-Mail-Support:
apt-get install sendmail
4. Als Nächstes müssen Sie SSH-Zugriff zulassen durch die Firewall:
ufw allow ssh
5. Schließlich aktivieren Sie die Firewall :
ufw enable
Fail2ban auf CentOS installieren
1. Um Fail2ban auf CentOS zu installieren, benötigen Sie das EPEL-Repository . Aktualisieren Sie das System und fügen Sie das Repository hinzu, indem Sie Folgendes ausführen:
yum update && yum install epel-release
2. Wenn das EPEL-Repository eingerichtet ist, installieren Sie Fail2ban mit dem Befehl:
yum install fail2ban
3. Als nächstes müssen Sie den Fail2ban-Dienst starten und aktivieren beim Booten:
systemctl start fail2ban
systemctl enable fail2ban
4. Für E-Mail-Unterstützung können Sie Sendmail installieren mit:
yum install sendmail
5. Um Sendmail zu starten und zu aktivieren Dienstlauf:
systemctl start sendmail
systemctl enable sendmail
Fail2ban auf Fedora installieren
1. Beginnen Sie mit der Aktualisierung des Systems :
dnf update
2. Dann Fail2ban installieren und Sendmail (optional, wenn Sie E-Mail-Support benötigen):
dnf install fail2ban
dnf install sendmail
3. Da diese Dienste auf Fedora nicht automatisch gestartet werden, müssen Sie sie starten und aktivieren sie mit:
systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail
Fail2ban auf Debian installieren
1. Aktualisieren und upgraden das System:
apt-get update && apt-get upgrade -y
Drücken Sie y und Enter zu bestätigen.
2. Dann Fail2ban installieren mit dem Befehl:
apt-get install fail2ban
3. Für E-Mail-Unterstützung können Sie auch Sendmail installieren mit dem Befehl:
apt-get install sendmail-bin sendmail
Fail2ban konfigurieren
Konfigurieren Sie Fail2ban, indem Sie die folgenden Konfigurationsdateien bearbeiten:
- fail2ban.local-Datei
- jail.local-Datei
Fail2ban.local-Datei konfigurieren
Fail2ban definiert seine globale Konfiguration in der fail2ban.conf Datei. Die Datei besteht aus der Standardkonfiguration und sollte im Allgemeinen nicht geändert werden.
Alle Änderungen an der Konfiguration sollten in einer separaten fail2ban.local vorgenommen werden Datei.
1. Kopieren Sie daher als erstes den Inhalt der .conf Datei in eine .local Datei. Der Befehl dazu lautet:
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
2. Nach diesem Befehl erfolgt keine Ausgabe. Im nächsten Schritt öffnen Sie die Datei fail2ban.local mit einem Texteditor Ihrer Wahl:
nano fail2ban.local
3. Sie sollten eine Datei ähnlich der folgenden Abbildung sehen:
In diesem Beispiel erklären die blauen Kommentare jede Option und ihre möglichen Werte. Die weißen Linien sind die Optionen, die Sie ändern können, und dazu gehören:
Protokollebene
– Legen Sie die Ausgabe der Protokollebene aufCRITICAL,
festFEHLER
,WARNUNG
,HINWEIS
,INFO
, oderDEBUG
.Protokollziel
– Legen Sie das Protokollziel fest, das entweder eineFILE
sein kann ,SYSLOG
,STDERR
, oderSTDOUT
.syslogsocket
– Setzen Sie die Syslog-Socket-Datei aufauto
oderDATEI
(Dies wird nur verwendet, wenn daslogtarget
aufSYSLOG
gesetzt ist )Buchse
– Stellen Sie die Socket-Datei ein, die zur Kommunikation mit dem Daemon verwendet wird. Achten Sie darauf, diese Datei nicht zu entfernen. Der Standardpfad lautet:/var/run/fail2ban/fail2ban.sock
PID-Datei
– Legen Sie die PID-Datei fest, die zum Speichern der Prozess-ID des fail2ban-Servers verwendet wird. Der Standardspeicherort ist:/var/run/fail2ban/fail2ban.pid
Jail.local-Datei konfigurieren
Eine weitere Fail2ban-Konfigurationsdatei, die Sie möglicherweise ändern müssen, ist die jail.conf Datei, die Jails enthält, die Filter mit Aktionen definieren.
Genauso wie bei der globalen Konfiguration, der jail.config Datei sollte nicht direkt geändert werden. Stattdessen sollten alle Anpassungen in jail.local vorgenommen werden Datei.
1. Wenn Sie Änderungen vornehmen müssen, kopieren Sie den Inhalt der .conf Datei in eine .local Datei:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
2. Öffnen Sie die Datei jail.local mit einem Texteditor Ihrer Wahl:
nano jail.local
3. Sie sollten den folgenden Inhalt sehen:
Dort können Sie folgende Optionen einstellen:
Ignorieren
– Geben Sie an, ob die lokale IP-Adresse ignoriert werden soll, indem Sie den Werttrue
setzenfalse
.ignorieren
– Ermöglicht die Angabe von IP-Adressen, CIDR-Masken oder DNS-Hosts, die gesperrt werden sollen. Trennen Sie mehrere Adressen durch Leerzeichen.Befehl ignorieren
– Definieren Sie denPfad/zu/Befehl
falls einer ignoriert werden sollte.
bantime
– Geben Sie die Anzahl der Sekunden an, für die ein Host gesperrt ist (der Standardwert ist600
)maxretry
– Die Anzahl der zulässigen Fehler, bevor ein Host gesperrt wird (standardmäßig auf5
eingestellt ).findtime
– Die Zeit, in der der Hostmaxretry
nicht aufbrauchen soll Nummer, um nicht gesperrt zu werden (im Allgemeinen auf10
gesetzt Protokoll). Wenn ein Host beispielsweise 5 Mal in 10 Minuten ausfällt, wird er für 600 Sekunden gesperrt.
Backend
– Geben Sie das Backend an, das zum Abrufen von Dateiänderungen verwendet wird. Wenn Sie CentOS oder Fedora verwenden, müssen Sie das Backend aufsystemd
setzen . Der Standardwertauto
ist für andere Betriebssysteme ausreichend.[ssh][code>
– Standardmäßig hat Fail2ban keine Jails aktiviert. Daher müssen Sie dies manuell tun, indem Sie die Jails zur Konfigurationsdatei hinzufügen. Beispielsweise können Sie das SSH-Daemon-Gefängnis aktivieren, indem Sie das Kommentarzeichen entfernen (#
entfernen). ) die Zeilen[ssh]
undenabled =true
.
destemail
– Gibt die E-Mail-Adresse an, an die Sie Benachrichtigungen erhalten möchtenAbsender
– Definiert die E-Mail-Adresse, von der Sie Benachrichtigungen erhalten
Zusätzliche jail.local-Konfigurationen
Sie können auch zusätzliche Konfigurationen in der Datei jail.local festlegen, beispielsweise für SSH und iptables. Zu diesen Optionen gehören:
Verbot
– Gibt die Standardaktion an, die verwendet wird, wennmaxretry
erreicht ist.banaction_allports
– Ermöglicht es Ihnen, eine IP zu kennzeichnen, die in jedem Port blockiert werden soll.Port
– Der Wert sollte dem eingestellten Dienst entsprechen. Dies könntessh
sein oder eine Portnummer (wenn Sie einen alternativen Port verwenden).filtern
– Der Dateiname mit den Failregex-Informationen, der sich in/etc/fail2ban/filter.d
befindet .
Starten Sie den Dienst neu
Wenn Sie Änderungen an fail2ban.local vorgenommen haben und jail.local Dateien, stellen Sie sicher, dass Sie den fail2ban-Dienst neu starten.
Um den fail2ban-Dienst neu zu starten Führen Sie mit der neuen Konfiguration den folgenden Befehl aus:
service fail2ban restart