So installieren Sie Fail2ban auf Ubuntu 20.04 mit Konfiguration
Heute sehen wir uns an, wie Sie Fail2ban auf Ubuntu 20.04 LTS Focal installieren können , das Ihre Server vor böswilligen Angriffen durch böse Bots und Hacker schützt.

Diejenigen, die mit Fail2ban nicht vertraut sind, sind ein Intrusion-Prevention-Software-Framework, das Computerserver vor allem vor Brute-Force-Angriffen schützt und Bad User Agents verbietet, URL-Scanner verbietet und vieles mehr. Fail2ban erreicht dies durch das Lesen von Zugriffs-/Fehlerprotokollen Ihrer Server oder Webanwendungen. Fail2ban ist in der Programmiersprache Python codiert.
In der Anleitung finden Sie einen Überblick über die Installation von Fail2ban unter Ubuntu 20.04 sowie einige grundlegende Setups und Tipps. Die Anleitung ist auch mit Ubuntu 21.04 kompatibel.
Fail2ban installieren
Ubuntu-Repositorys werden mit Fail2ban geliefert. Sie benötigen Sudo-Berechtigungen, um es mit den folgenden Befehlen zu installieren.
sudo apt update && sudo apt upgrade -y
Als nächstes installieren Sie Fail2ban, indem Sie den folgenden Befehl ausführen:
sudo apt install fail2ban
Geben Sie "Y" ein , um zu installieren.
Sobald Sie die Installation von Fail2ban abgeschlossen haben, müssen wir den Servicestatus überprüfen. Standardmäßig sollte Fail2ban bei der Installation automatisch aktiviert und gestartet werden. Verwenden Sie den folgenden Befehl, um zu sehen.
sudo systemctl status fail2ban
Sie sollten den Status ok in Grün sehen, wie im obigen Bild gezeigt. Wenn es aus irgendeinem Grund nicht gestartet und zum Starten bei Systemlast aktiviert ist, verwenden Sie die folgenden Befehle.
sudo systemctl start fail2ban && sudo systemctl enable fail2ban
Um Fail2ban in Zukunft zu stoppen und zu deaktivieren, können Sie dies durch Eingabe des folgenden Befehls tun:
sudo systemctl stop fail2ban && sudo systemctl disable fail2ban
Fail2ban-Konfigurationsdateien einrichten
Nach Abschluss der Installation müssen wir nun einige Setups und grundlegende Konfigurationen vornehmen. Fail2ban wird mit zwei Konfigurationsdateien geliefert, die sich in /etc/fail2ban/jail.conf und dem Standard- Fail2ban /etc/fail2ban/jail.d/defaults-debian.conf befinden . Ändern Sie diese Dateien nicht. Die ursprünglichen Setup-Dateien sind Ihre Originale und werden bei jedem zukünftigen Update von Fail2ban ersetzt.
Jetzt fragen Sie sich vielleicht, wie wir Fail2ban so einrichten, dass Sie aktualisieren, und Sie verlieren Ihre Einstellungen. Ganz einfach, wir erstellen Kopien mit der Endung .local anstelle von .conf, da Fail2ban immer zuerst .local- Dateien liest, bevor .conf geladen wird, wenn es keine finden kann.
Verwenden Sie dazu die folgenden Befehle.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Fail2ban konfigurieren
Jetzt kommen Sie zu dem Teil, in dem Sie jail.local öffnen und die Einstellungen mit dem Nano-Editor anpassen können.
sudo nano /etc/fail2ban/jail.local
Sperrzeitinkrement
Die erste Einstellung, auf die Sie stoßen werden, ist das Verbot von Zeitinkrementen. Sie sollten dies jedes Mal aktivieren, wenn der Angreifer zurückkehrt. Dadurch wird die Sperrzeit verlängert, sodass Ihr System nicht ständig dieselbe IP-Adresse erneut sperrt, wenn die Sperrzeit kurz ist. Beispiel: 1 Stunde, Sie möchten, dass dies länger dauert, wenn der Angreifer x5-mal zurückkehrt.
Sie müssen auch einen Multiplikator oder Faktor festlegen, damit die Logik zur Erhöhung der Sperre funktioniert. Sie können eine davon auswählen; In unserem Leitfaden bevorzugen wir jedoch Multiplikatoren, wie in unserem Beispiel unten hervorgehoben, da Sie benutzerdefinierte Erhöhungen der Sperrzeit nach Ihren Wünschen festlegen können. Weitere Erklärungen finden Sie im Setup zur Mathematik dahinter.
So sollte dies in der jail.local stehen:
bantime.increment = true bantime.multipliers = 1 2 4 8 16 32 64
Whitelist-IPs in Fail2ban
Als nächstes in der Liste stoßen wir auf Whitelisting-Optionen, entkommentieren Sie das Folgende und adressieren Sie alle IP-Adressen, die Sie auf die Whitelist setzen möchten.
ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)
Stellen Sie sicher, dass zwischen den IP-Adressen Leerzeichen oder Kommas stehen. Sie können auch IP-Bereiche auf die Whitelist setzen.
Einrichtung der Standardsperrzeit
Die Standardeinstellungen für die Sperrzeit sind 10 Minuten mit 10 Minuten Finder bei 5 Wiederholungen. Eine Erklärung dafür ist, dass das Fail2ban-Gefängnis mit Filterung Ihren Angreifer für 10 Minuten sperrt, nachdem er denselben Angriff in 10 Minuten (Suchzeit) x 5 Mal (Wiederholungen) wiederholt hat. Sie können hier einige Standardeinstellungen für das Verbot festlegen.
Wenn Sie jedoch in Gefängnisse gelangen, ist es ratsam, andere Sperrzeiten festzulegen, da einige Sperren automatisch länger sein sollten als andere, einschließlich Wiederholungen, die kürzer oder länger sein sollten.
bantime = 10m findtime = 10m maxretry = 5
E-Mail-Einrichtung mit Fail2ban
Sie können eine E-Mail-Adresse für Fail2ban festlegen, um Berichte zu senden. Die Standardaktion = %(action_mw)s, die die verletzende IP sperrt und eine E-Mail mit einem Whois-Bericht zur Überprüfung durch Sie sendet. In Ihrem action.d-Ordner gibt es jedoch andere E-Mail-Optionen, um sich nicht nur an sich selbst zu melden, sondern auch E-Mails an Blacklist-Anbieter und den ISP des Angreifers zu senden, um ihn zu melden.
Das Setup-Beispiel unten:
# Destination email address used solely for the interpolations in # jail.{conf,local,d/*} configuration files. destemail = admin@example.com # Sender e-mail address used solely for some actions sender = fail2ban@example.com
Fail2ban-Gefängnisse
Als nächstes kommen wir zu Gefängnissen. Sie können vordefinierte Jails mit Filtern und Aktionen einrichten, die von der Community erstellt wurden und viele gängige Serveranwendungen abdecken. Sie können benutzerdefinierte Jails erstellen oder externe auf verschiedenen Gists- und Community-Websites finden. Wir werden jedoch die standardmäßigen Fail2ban-Paket-Jails einrichten.
Standardeinstellung für alle Gefängnisse gemäß dem Bild unten. Beachten Sie, dass nichts aktiviert ist.
Wir haben also einen Apache 2-HTTP-Server, und wie beim Filtern/Bannen von Bad Bots müssen Sie nur aktiviert = true hinzufügen, wie im folgenden Beispiel.
[apache-badbots] # Ban hosts which agent identifies spammer robots crawling the web # for email addresses. The mail outputs are buffered. enabled = true port = http,https logpath = %(apache_access_log)s bantime = 48h maxretry = 1
Beachten Sie, dass die maximale Wiederholungszahl 1 beträgt und die Sperrzeit 48 Stunden beträgt. Dies ist eine individuelle Einstellung für die maximale Wiederholungs- und Sperrdauer für dieses Gefängnis, die sich automatisch mit dem Sperrmultiplikator erhöht, den wir weiter oben in der Anleitung festgelegt haben. Wenn dieser Filter fehlt, können Sie ihn als Beispiel hinzufügen.
[apache-noscript] enabled = true port = http,https logpath = %(apache_error_log)s
Ändern Sie oben das folgende Beispiel unten:
[apache-noscript] enabled = true port = http,https logpath = %(apache_error_log)s bantime = 1d maxretry = 3
Als nächstes möchten Sie andere Aktionen als in Ihrem Standardsetup in /etc/fail2ban/jail.local angegeben haben, zusätzliche Aktionen finden Sie im Verzeichnis action.d. Verschiedene Aktionen aus diesem Verzeichnis können leicht eingerichtet werden, indem Sie den Anweisungen in diesen Aktionskonfigurationszeilen in den Dateien folgen, daran denken, sie zuerst in .jail über .conf umzubenennen und dann Folgendes zu Ihrer Jail-Einrichtung hinzuzufügen.
[apache-botsearch] enabled = true port = http,https logpath = %(apache_error_log)s banaction = action_mw cloudflare bantime = 72h maxretry = 1
Wie Sie sehen, haben wir action_mw hinzugefügt, sodass es automatisch gemäß unserer Standardaktion gesperrt wird und uns einen Bericht mit Whois per E-Mail sendet. Wenn Sie Cloudflare verwenden, blockiert die folgende Aktion auch die IP-Adresse des Dienstes. Denken Sie daran, dass Cloudflare vor der Verwendung eingerichtet werden muss. Lesen Sie die Datei action.d cloudflare.conf.
Wenn Sie mit Ihrer Einrichtung zufrieden sind, führen Sie den folgenden Befehl aus, um fail2ban neu zu starten, um Ihre neuen Jails zu laden.
sudo systemctl restart fail2ban
Fail2ban-Client
Nachdem Sie Fail2ban jetzt in Betrieb genommen haben, müssen Sie einige grundlegende Befehle kennen. Dazu verwenden wir den Befehl fail2ban-client. Abhängig von Ihrem Setup müssen Sie möglicherweise über Sudo-Berechtigungen verfügen.
Sperren Sie eine IP-Adresse:
sudo fail2ban-client set apache-botsearch banip <ip address>
Sperre einer IP-Adresse aufheben:
sudo fail2ban-client set apache-botsearch unbanip <ip address>
Befehl zum Aufrufen des Hilfemenüs, wenn Sie zusätzliche Einstellungen oder Hilfe zu einer bestimmten Einstellung benötigen.
sudo fail2ban-client -h
Überwachung von Fail2ban-Protokollen
Ein häufiger Fehler, den viele machen, besteht darin, Gefängnisse einzurichten und wegzugehen, ohne zu testen oder zu überwachen, was sie tun. Das Durchsehen von Protokollen ist wichtig, da sich das fail2ban-Protokoll in seinem Standardpfad /var/log/fail2ban.log befindet .
Wenn Sie einen Server haben, der anständigen Datenverkehr empfängt, ist die Verwendung des Befehls tail -f wie unten beschrieben ein hervorragender Befehl, um live zu sehen, ob Probleme auftreten und ob Sie ihn im Auge behalten, während Sie auf anderen Servern arbeiten.
sudo tail -f /var/log/fail2ban.log
Der Befehl kann sich für Stichproben als nützlich erweisen, ohne in die Protokollierung eintauchen zu müssen.
Kommentare und Schlussfolgerungen
Die erstellte Anleitung hat Ihnen die Grundlagen der Installation von Fail2ban auf dem Ubuntu 20.04-System und der Einrichtung einiger Jails mit den verfügbaren Filtern gezeigt. Fail2ban ist ein mächtiges Werkzeug. Sie können es auf viele verschiedene Arten einrichten, von dem, was ich hier gezeigt habe. Es ist nur ein Beispiel dafür, wie man damit beginnen kann. Fail2ban wird aktiv entwickelt und ist eine solide Wahl für die Bereitstellung auf Ihrem Server in Zeiten, in denen Angriffe so häufig werden.