SSH-Zugang absichern mit Fail2ban

Wer einen eigenen Server oder Raspberry Pi im Internet betreibt, wird schnell feststellen: Die SSH-Schnittstelle steht unter Dauerfeuer. Automatisierte Bots scannen rund um die Uhr das Netz nach offenen SSH-Ports und versuchen per Brute-Force-Angriff (ausprobieren tausender Passwort-Kombinationen), Zugriff auf das System zu erlangen.

In diesem Artikel erfährst du, wie du deinen Server mit Fail2ban effektiv vor solchen Angriffen schützt, wie das Tool funktioniert und wie du es Schritt für Schritt einrichtest.

Zweck und Funktionsweise von Fail2ban

Fail2ban ist ein Sicherheits-Framework für Linux-Systeme. Es funktioniert nach einem einfachen, aber extrem wirkungsvollen Prinzip:

  • Protokollüberwachung: Fail2ban liest kontinuierlich die Logfiles deines Systemdienstes (z. B. SSH, Webserver, FTP).
  • Mustererkennung: Erkennt das Tool mehrere fehlerhafte Anmeldeversuche von derselben IP-Adresse innerhalb eines kurzen Zeitfensters, schlägt die Alarmglocke an.
  • Automatische Sperre: Die Angreifer-IP wird automatisch über die Linux-Firewall (iptables oder nftables) blockiert. Der Angreifer kann für eine festgelegte Zeit keine Verbindung mehr zum Server aufbauen.

Schritt-für-Schritt-Anleitung: Fail2ban einrichten

1. Fail2ban installieren

Auf Debian-basierten Systemen (wie Ubuntu oder Raspberry Pi OS) installierst du Fail2ban mit folgendem Befehl im Terminal:

sudo apt update && sudo apt install fail2ban -y

2. Lokale Konfigurationsdatei anlegen

Ändere niemals direkt die Datei jail.conf, da diese bei Systemupdates überschrieben wird. Lege stattdessen eine lokale Kopie namens jail.local an:

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

3. SSH-Schutz konfigurieren

Öffne die Konfigurationsdatei mit einem Texteditor deiner Wahl:

sudo nano /etc/fail2ban/jail.local

Lege die globalen Einstellungen unter [DEFAULT] fest und aktiviere den SSH-Schutz im Bereich [sshd]:

[DEFAULT]
# Zeitdauer der Sperre (z. B. 1 Stunde)
bantime  = 1h

# Zeitfenster, in dem Fehlversuche gezählt werden (z. B. 10 Minuten)
findtime = 10m

# Maximale Anzahl erlaubter Fehlversuche
maxretry = 5

# Modernes Log-Handling über systemd aktivieren
backend = systemd

[sshd]
enabled = true
port    = ssh

4. Dienst neustarten und Autostart aktivieren

Speichere die Datei ab und starte den Fail2ban-Dienst neu, um die Änderungen zu übernehmen:

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

5. Funktion prüfen

Ob der Schutz für SSH aktiv ist und wie viele IPs bereits blockiert wurden, prüfst du mit diesem Befehl:

sudo fail2ban-client status sshd

Fazit

Mit wenigen Befehlen schiebst du automatisierten Passwort-Testern einen Riegel vor. Fail2ban ist eine essenzielle Grundsicherung für jeden Linux-Server im Netz, die Ressourcen schont und deine Systemprotokolle sauber hält.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *