Was ist Fail2Ban 

Fail2ban ist ein Open-Source-Softwaretool, das dazu dient, unerwünschte Anmeldeversuche oder andere verdächtige Aktivitäten auf einem Server zu erkennen und automatisiert zu blockieren. Es schützt vor Brute-Force-Angriffen, bei denen Angreifer versuchen, sich durch wiederholte Passworteingaben Zugang zu einem System zu verschaffen. Fail2ban überwacht Protokolldateien (Logfiles) von Diensten wie SSH, FTP, Apache und anderen und sperrt automatisch IP-Adressen, von denen verdächtige Aktivitäten ausgehen.

Funktionsweise:

  1. Log-Dateien analysieren: Fail2ban liest die Protokolldateien, in denen Fehlversuche bei Anmeldungen, verdächtige Aktivitäten oder andere sicherheitsrelevante Ereignisse vermerkt werden.
  2. Regeln anwenden: Es verwendet reguläre Ausdrücke, um Muster in den Logs zu erkennen, die auf Angriffe oder Fehlversuche hindeuten (z. B. wiederholte fehlgeschlagene Login-Versuche).
  3. IP-Sperrung: Wenn ein Muster erkannt wird, sperrt Fail2ban die verdächtige IP-Adresse, indem es die Firewall-Regeln ändert oder bestimmte Dienste wie SSH für diese IP-Adresse blockiert.
  4. Automatische Freigabe: Die Sperrung ist oft zeitlich begrenzt. Nach einer definierten Zeitspanne wird die IP-Adresse wieder freigegeben, es sei denn, es kommt zu weiteren verdächtigen Aktivitäten.

Typische Einsatzzwecke:

  • Schutz von SSH: Verhindert Brute-Force-Angriffe auf den SSH-Zugang zu Servern.
  • Schutz von Webservern: Blockiert Angriffe auf Webserver, die beispielsweise versuchen, über Schwachstellen in Webanwendungen Zugang zu erhalten.
  • Mailserver-Schutz: Verhindert unbefugte Zugriffsversuche auf E-Mail-Konten.

Fail2ban ist sehr flexibel und kann für eine Vielzahl von Diensten und Angriffsmustern konfiguriert werden. Die Konfigurationsdateien ermöglichen es, das Verhalten und die Sperrregeln an spezifische Anforderungen anzupassen.

Installation von Fail2Ban

Die Installation und Konfiguration von Fail2ban zum Schutz des SSH-Zugangs auf einem Server ist relativ einfach. Hier ist eine Schritt-für-Schritt-Anleitung, wie du Fail2ban installieren und für SSH einrichten kannst:

1. Fail2ban installieren

Je nach Betriebssystem verwendest du den Paketmanager, um Fail2ban zu installieren.

Für Debian/Ubuntu-basierte Systeme:

sudo apt update
sudo apt install fail2ban

Für CentOS/RHEL-basierte Systeme:

sudo yum install epel-release
sudo yum install fail2ban

2. Fail2ban konfigurieren

Nach der Installation wird Fail2ban standardmäßig keine Dienste überwachen. Daher müssen wir eine Konfiguration für SSH hinzufügen.

a) Kopiere die Standardkonfiguration:

Die Standardkonfiguration von Fail2ban ist in der Datei /etc/fail2ban/jail.conf gespeichert. Um sicherzustellen, dass Updates nicht deine Konfiguration überschreiben, erstellst du eine Kopie der Datei unter dem Namen jail.local.

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

b) Bearbeite die Konfigurationsdatei:

Öffne die Datei jail.local, um die SSH-Konfiguration zu aktivieren.

sudo nano /etc/fail2ban/jail.local

Suche nach dem Abschnitt [sshd] (oder füge ihn hinzu, falls er fehlt) und stelle sicher, dass er wie folgt aussieht:

[sshd]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600

  • enabled = true: Aktiviert das Überwachen des SSH-Dienstes.
  • port = ssh: Definiert den Port, den Fail2ban überwachen soll (falls dein SSH-Dienst auf einem anderen Port läuft, trage diesen hier ein).
  • filter = sshd: Verwendet das Filterprofil für den SSH-Dienst.
  • logpath = /var/log/auth.log: Definiert den Pfad zur Logdatei, in der Anmeldeversuche protokolliert werden (dieser Pfad kann je nach Distribution variieren, z.B. /var/log/secure auf CentOS).
  • maxretry = 5: Definiert, wie viele fehlgeschlagene Versuche nötig sind, bevor eine IP gesperrt wird.
  • bantime = 3600: Dauer der Sperre in Sekunden (hier 1 Stunde).

3. Fail2ban starten und aktivieren

Nach der Konfiguration musst du Fail2ban starten und sicherstellen, dass es bei jedem Systemstart automatisch läuft.

Für Debian/Ubuntu:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Für CentOS/RHEL:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

4. Status überprüfen

Um zu überprüfen, ob Fail2ban korrekt läuft und SSH schützt, kannst du den Status des SSH-Jails anzeigen:

sudo fail2ban-client status sshd

Dies sollte eine Ausgabe anzeigen, die dir sagt, wie viele IP-Adressen aktuell gesperrt sind.

5. Testen

Um zu testen, ob Fail2ban funktioniert, kannst du dich mehrmals mit falschen Anmeldeinformationen an deinem SSH-Dienst anmelden. Nach der festgelegten Anzahl von Fehlversuchen sollte deine IP-Adresse gesperrt werden.

 

6. Nach der erfolgreichen Installation anbei noch ein paar nützliche Befehle zur Überwachung und Bedienung:

1. Fail2ban Status anzeigen

Zeigt den allgemeinen Status von Fail2ban und eine Liste aller aktiven Jails (Schutzbereiche).

sudo fail2ban-client status

2. Status einer bestimmten Jail anzeigen

Zeigt detaillierte Informationen über eine bestimmte Jail, zum Beispiel SSH.

sudo fail2ban-client status sshd

3. IP-Adresse manuell sperren

Um eine IP-Adresse in einer bestimmten Jail manuell zu sperren.

sudo fail2ban-client set <JAIL_NAME> banip <IP>

Beispiel für SSH:

sudo fail2ban-client set sshd banip 192.168.1.100

4. IP-Adresse entsperren

Um eine IP-Adresse in einer bestimmten Jail manuell zu entsperren.

sudo fail2ban-client set <JAIL_NAME> unbanip <IP>

Beispiel:

sudo fail2ban-client set sshd unbanip 192.168.1.100

5. Fail2ban neu starten

Wenn du Änderungen an der Konfiguration vorgenommen hast, musst du Fail2ban neu starten, damit diese wirksam werden.

sudo systemctl restart fail2ban

6. Fail2ban Konfiguration neu laden

Wenn du eine Jail oder Konfigurationsdatei aktualisiert hast, kannst du Fail2ban ohne Neustart neu laden.

sudo fail2ban-client reload

7. Sperrte IPs in einer Jail auflisten

Um eine Liste der aktuell gesperrten IPs in einer bestimmten Jail zu sehen.

sudo fail2ban-client status <JAIL_NAME>

8. Fail2ban stoppen und deaktivieren

Um Fail2ban temporär zu deaktivieren:

sudo systemctl stop fail2ban

Um es dauerhaft zu deaktivieren:

sudo systemctl disable fail2ban

9. Log-Dateien anzeigen

tail -f /var/log/fail2ban.log

Diese Befehle bieten dir eine solide Grundlage für die Verwaltung von Fail2ban und die Absicherung deines Systems gegen unerwünschte Zugriffe.


Das war’s! Dein SSH-Dienst sollte jetzt durch Fail2ban vor Brute-Force-Angriffen geschützt sein.

Von Sauerland

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert