Website-Suche

So verwenden Sie Fail2ban zum Sichern Ihres Linux-Servers


Die Verbesserung Ihrer Serversicherheit sollte eine Ihrer obersten Prioritäten sein, wenn es um die Verwaltung eines Linux-Servers geht. Wenn Sie Ihre Serverprotokolle überprüfen, finden Sie häufig verschiedene Versuche für Brute-Force-Anmeldungen, Webfluten, Exploit-Suche und viele andere.

Mit einer Intrusion-Prevention-Software wie fail2ban können Sie Ihre Serverprotokolle untersuchen und zusätzliche iptables-Regeln hinzufügen, um problematische IP-Adressen zu blockieren.

Lesen Sie auch: So installieren Sie Fail2Ban zum Schutz von SSH unter CentOS/RHEL 8

Dieses Tutorial zeigt Ihnen, wie Sie fail2ban installieren und die Grundkonfiguration einrichten, um Ihr Linux-System vor Brute-Force-Angriffen zu schützen.

Anforderungen

Fail2ban ist in Python geschrieben und die einzige Voraussetzung ist, dass Python installiert ist:

  • Der Fail2ban-Zweig 0.9.x erfordert Python >=2.6 oder Python >=3.2
  • Der Fail2ban-Zweig 0.8.x erfordert Python >=2.4
  • Root-Zugriff auf Ihr System
  • Optional iptables oder showewall und sendmail

So installieren Sie Fail2Ban in Linux-Systemen

Die Installation von fail2ban ist relativ einfach:

Installieren Sie Fail2Ban unter CentOS/RHEL

Aktualisieren Sie zunächst Ihre Pakete, aktivieren Sie das Epel-Repository und installieren Sie fail2ban wie gezeigt.

yum update
yum install epel-release
yum install fail2ban

Installieren Sie Fail2Ban auf Debian/Ubuntu

Aktualisieren Sie zunächst Ihre Pakete und installieren Sie fail2ban wie gezeigt.

apt-get update && apt-get upgrade -y
apt-get install fail2ban

Wenn Sie die E-Mail-Unterstützung (für E-Mail-Benachrichtigungen) aktivieren möchten, können Sie optional sendmail installieren.

yum install sendmail                   [On CentOS/RHEL]
apt-get install sendmail-bin sendmail  [On Debian/Ubuntu]

Um fail2ban und sendmail zu aktivieren, verwenden Sie die folgenden Befehle:

systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail

So konfigurieren Sie Fail2ban in Linux-Systemen

Standardmäßig verwendet fail2ban die .conf-Dateien in /etc/fail2ban/, die zuerst gelesen werden. Diese können jedoch durch .local-Dateien im selben Verzeichnis überschrieben werden.

Daher muss die Datei .local nicht alle Einstellungen aus der Datei .conf enthalten, sondern nur diejenigen, die Sie überschreiben möchten. Änderungen sollten in den Dateien .local vorgenommen werden, nicht in der Datei .conf. Dadurch wird verhindert, dass Änderungen beim Upgrade des fail2ban-Pakets überschrieben werden.

Für dieses Tutorial kopieren wir die vorhandene Datei fail2ban.conf nach fail2ban.local.

cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

Jetzt können Sie die Änderungen in der Datei .local mit Ihrem bevorzugten Texteditor vornehmen. Die Werte, die Sie bearbeiten können, sind:

  • Loglevel – Dies ist der Detaillierungsgrad, der protokolliert werden soll. Mögliche Optionen sind:

    • KRITISCH
    • FEHLER
    • WARNUNG
    • BEACHTEN
    • DIE INFO
    • DEBUGGEN
  • logtarget – Protokollieren Sie die Aktionen in einer bestimmten Datei. Der Standardwert ist /var/log/fail2ban.log. Sie können dies jedoch wie folgt ändern:

    • STDOUT – beliebige Daten ausgeben
    • STDERR – eventuelle Fehler ausgeben
    • SYSLOG – nachrichtenbasierte Protokollierung
    • Datei – Ausgabe in eine Datei
  • Socket – Verzeichnis, in dem die Socket-Datei abgelegt wird.
  • PID-Datei – Speicherort der PID-Datei.

Konfigurieren Sie Fail2ban jail.local

Eine der wichtigsten Dateien in fail2ban ist jail.conf, die Ihre Jails definiert. Hier definieren Sie die Dienste, für die fail2ban aktiviert werden soll.

Wie bereits erwähnt, können .conf-Dateien während Upgrades geändert werden. Sie sollten daher eine jail.local-Datei erstellen, in der Sie Ihre Änderungen anwenden können.

Eine andere Möglichkeit, dies zu tun, besteht darin, einfach die Datei .conf zu kopieren mit:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Falls Sie CentOS oder Fedora verwenden, müssen Sie das Backend in jail.local von < ändern„auto“ zu „systemd“.

Wenn Sie Ubuntu/Debian verwenden, ist diese Änderung nicht erforderlich, auch wenn sie ebenfalls systemd verwenden.

Die Jail-Datei aktiviert SSH standardmäßig für Debian und Ubuntu, jedoch nicht für CentOS. Wenn Sie es aktivieren möchten, ändern Sie einfach die folgende Zeile in /etc/fail2ban/jail.local:

[sshd]
enabled = true
Sperr- und Wiederholungszeiten

Sie können den Umstand konfigurieren, nach dem eine IP-Adresse blockiert wird. Zu diesem Zweck verwendet fail2ban bantime, findtime und maxretry.

  • Bantime – Dies ist die Anzahl der Sekunden, die eine IP-Adresse gesperrt bleibt (Standard: 10 Minuten).
  • findtime – die Zeitspanne zwischen Anmeldeversuchen, bevor der Host gesperrt wird. (Standard: 10 Minuten). Mit anderen Worten: Wenn fail2ban so eingestellt ist, dass eine IP-Adresse nach 3 fehlgeschlagenen Anmeldeversuchen blockiert wird, müssen diese 3 Versuche innerhalb des Findtime-Zeitraums (10<) durchgeführt werden Minuten).
  • maxretry – Anzahl der Versuche, die unternommen werden müssen, bevor ein Verbot angewendet wird. (Standard 3).
IP-Adresse auf die Whitelist setzen

Natürlich möchten Sie bestimmte IP-Adressen auf die Whitelist setzen. Um solche IP-Adressen zu konfigurieren, öffnen Sie /etc/fail2ban/jail.local mit Ihrem bevorzugten Texteditor und entkommentieren Sie die folgende Zeile:

ignoreip = 127.0.0.1/8  ::1

Anschließend können Sie die IP-Adressen eingeben, die ignoriert werden sollen. IP-Adressen sollten durch Leerzeichen oder Kommas getrennt werden.

E-Mail-Benachrichtigungen

Wenn Sie E-Mail-Benachrichtigungen zu dem Ereignis erhalten möchten, müssen Sie die folgenden Einstellungen in /etc/fail2ban/jail.local konfigurieren:

  • destemail – E-Mail-Adresse, an die Sie die Benachrichtigung erhalten.
  • Absendername – der Absender, den Sie sehen, wenn Sie die Nachricht erhalten.
  • Absender – E-Mail-Adresse, von der fail2ban die E-Mails sendet.

Der Standard-mta (Mail Transfer Agent) ist auf sendmail eingestellt.

Um E-Mail-Benachrichtigungen zu erhalten, müssen Sie auch die Einstellung „Aktion“ ändern von:

Action = %(action_)s

Zu einem davon:

action = %(action_mw)s
action = %(action_mwl)s
  • %(action_mw)s – sperrt den Host und sendet eine E-Mail mit einem Whois-Bericht.
  • %(action_mwl)s – sperrt den Host, stellt Whois-Informationen und alle relevanten Informationen aus der Protokolldatei bereit.

Zusätzliche Fail2ban-Jail-Konfiguration

Bisher haben wir uns die grundlegenden Konfigurationsmöglichkeiten angeschaut. Wenn Sie ein Gefängnis konfigurieren möchten, müssen Sie es in der Datei jail.local aktivieren. Die Syntax ist ziemlich einfach:

[jail_to_enable]
. . .
enabled = true

Dabei sollten Sie jail_to_enable durch das tatsächliche Gefängnis ersetzen, zum Beispiel „sshd“. In der Datei jail.local werden die folgenden Werte für den SSH-Dienst vordefiniert:

[sshd]

port = ssh
logpath = %(sshd_log)s

Sie können einen Filter aktivieren, der dabei hilft, festzustellen, ob eine Zeile im Protokoll fehlerhaft ist. Der Filterwert ist eigentlich ein Verweis auf eine Datei mit dem Dienstnamen, gefolgt von .conf. Beispiel: /etc/fail2ban/filter.d/sshd.conf.

Die Syntax lautet:

filter = service

Zum Beispiel:

filter = sshd

Sie können die vorhandenen Filter im folgenden Verzeichnis überprüfen: /etc/fail2ban/filter.d/.

Verwenden Sie fail2ban-client

Fail2ban wird mit einem Client geliefert, mit dem die aktuelle Konfiguration überprüft und geändert werden kann. Da es viele Optionen bietet, können Sie das Handbuch durchgehen mit:

man fail2ban-client 

Hier sehen Sie einige der grundlegenden Befehle, die Sie verwenden können. Um den aktuellen Status von fail2ban oder für ein bestimmtes Gefängnis zu überprüfen, können Sie Folgendes verwenden:

fail2ban-client status

Das Ergebnis sieht etwa so aus:

Für einzelne Gefängnisse können Sie Folgendes ausführen:

fail2ban-client status sshd

Im Screenshot unten sehen Sie, dass ich mehrere Anmeldungen absichtlich fehlgeschlagen habe, damit fail2ban die IP-Adresse blockieren kann, von der aus ich eine Verbindung herstellen wollte:

Abschluss

Fail2ban ist ein hervorragendes, gut dokumentiertes Intrusion-Prevention-System, das Ihrem Linux-System zusätzliche Sicherheit bietet. Es erfordert einige Zeit, sich an den Aufbau und die Syntax zu gewöhnen, aber sobald Sie sich damit vertraut gemacht haben, können Sie die Regeln jederzeit ändern und erweitern.