Wenn man mit der Serververwaltung beginnt, sieht man sich zahlreichen externen Angriffen gegenüber. SSH-Brute-Force-Angriffe, maßlose Anmeldeversuche auf Webanwendungen und Port-Scans sind alltägliche Bedrohungen. Diese Gefahren unbeaufsichtigt zu lassen kann letztendlich zu einem Systemeinbruch führen. Fail2Ban ist eine leichte und leistungsstarke, auf Linux basierende Intrusion Prevention Lösung, die diese Probleme löst.
Fail2Ban erkennt und sperrt automatisch verdächtige IPs. So können Administratoren den Server ohne großen Aufwand schützen.
Installationsanleitung für Fail2Ban
Fail2Ban wird in den meisten Linux-Distributionen als Paket angeboten, was die Installation sehr einfach macht.
Ubuntu/Debian-basierte Systeme
sudo apt update
sudo apt install fail2ban
Sobald die Installation abgeschlossen ist, starten Sie den Dienst und stellen Sie ein, dass er beim Booten automatisch startet.
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Einstellungen für Fail2Ban
Fail2Ban verwendet die Datei /etc/fail2ban/jail.conf
als Standardkonfigurationsdatei. Es wird jedoch empfohlen, die Datei nicht direkt zu ändern, sondern die Datei /etc/fail2ban/jail.local
zu erstellen, um Anpassungen vorzunehmen.
Erstellen der jail.local-Datei:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Wichtige Einstellungselemente: - bantime: Sperrdauer (in Sekunden) - findtime: Zeitraum, in dem angreifende Versuche berücksichtigt werden (in Sekunden) - maxretry: zulässige maximale Fehlversuche
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
Beispiele von praktischen Anwendungen
1. Blockierung von SSH-Brute-Force-Angriffen
Durch die oben genannte Konfiguration der [sshd]
Jail wird die jeweilige IP für eine Stunde gesperrt, wenn mehr als 5 fehlgeschlagene Anmeldeversuche auftreten.
2. Blockierung von Anmeldeangriffen auf Apache
[apache-auth]
enabled = true
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3
Bei 3 fehlgeschlagenen Authentifizierungsversuchen auf dem Webserver erfolgt eine Sperrung.
Überwachung von Fail2Ban
Es gibt mehrere Möglichkeiten, um zu überprüfen, ob Fail2Ban ordnungsgemäß funktioniert.
1. Überprüfung des Status über fail2ban-client
Sie können den Status eines bestimmten Jails (z. B. sshd) überprüfen.
sudo fail2ban-client status sshd
Beispielausgabe:
Status für das Jail: sshd
|- Filter
| |- Derzeit fehlgeschlagen: 2
| |- Insgesamt fehlgeschlagen: 15
| `- Datei Liste: /var/log/auth.log
`- Aktionen
|- Derzeit gesperrt: 1
|- Insgesamt gesperrt: 3
`- Gesperrte IP-Liste: 192.168.1.100
2. Überwachung der Protokolldatei
Die Vorgänge von Fail2Ban werden in der Datei /var/log/fail2ban.log
protokolliert.
tail -f /var/log/fail2ban.log
Durch diesen Prozess können Sperr- und Entsperreereignisse in Echtzeit überwacht werden.
Funktionsweise von Fail2Ban
-
Protokollüberwachung: Fail2Ban überwacht fortlaufend die festgelegten Protokolldateien. (z. B.
/var/log/auth.log
,/var/log/apache2/error.log
) -
Anwendung von Filtern: Er erkennt spezifische Muster (z. B. fehlgeschlagene Anmeldungen, Authentifizierungsfehler).
-
Durchführung von Maßnahmen: Wenn die maximale Anzahl von
maxretry
überschritten wird, sperrt er die betreffende IP über iptables oder führt Befehle für firewalld, nftables oder andere Firewall-Befehle aus. -
Automatische Entsperrung: Nach Ablauf der
bantime
wird die Sperrung automatisch aufgehoben.
Fail2Ban hat eine modulare Struktur, die unabhängige Überwachungs- und Sperreinstellungen für verschiedene Dienste (jails) ermöglicht, wodurch die Sicherheit über die einfache SSH-Schutzmethode hinaus erhöht wird.
Einstellen einer permanenten Sperrung für SSH-Angriffe
SSH-Angreifer müssen unbedingt hartnäckig behandelt werden. Bei Fail2Ban können Sie bantime
auf -1
setzen, um eine permanente Sperrung einzurichten.
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
bantime = -1
findtime = 600
maxretry = 5
Mit dieser Einstellung wird jede IP, die mehr als 5 fehlgeschlagene SSH-Anmeldungen hat, dauerhaft gesperrt, wodurch der Zugang zum Server unmöglich wird.
[Erweiterter Tipp] Verständnis der Standard-Sperrfunktionen von Fail2Ban
Fail2Ban funktioniert standardmäßig auch ohne separate Definition der action
. Der Grund dafür ist, dass die Standardkonfiguration Befehle zum Sperren über iptables enthält.
- Wenn keine separate
action
angegeben wird, wird die Einstellungaction = %(action_)s
aus dem[DEFAULT]
-Abschnitt angewendet. %(action_)s
führt intern iptables-Befehle aus, um bösartige IPs zu sperren.- Daher erfolgt die IP-Sperrung auch ohne separate Angaben zur
action
über iptables.
Beispiel eines Standard-Sperrbefehls (siehe action_.conf)
iptables -I INPUT -s <ip> -j REJECT
Das bedeutet, dass Fail2Ban automatisch iptables steuert, um angreifende IPs zu sperren.
Hinweis:
- Wenn Sie andere Firewall-Tools wie UFW oder firewalld verwenden möchten, müssen Sie action
explizit festlegen.
- Außerdem könnten Sperrregeln nach einem Serverneustart verschwinden. Es ist ratsam, Fail2Ban so einzustellen, dass der Dienst beim Booten automatisch startet.
Zusätzlich können Sie verschiedene Filter selbst erstellen oder E-Mail-Benachrichtigungen für erweiterte Einstellungen einrichten.
Sobald ein Server in die Welt des Internets exponiert wird, ist Sicherheit kein Luxus mehr, sondern eine Notwendigkeit.
Ein Moment der Nachlässigkeit kann schwerwiegende Folgen nach sich ziehen.
Fail2Ban wird ein zuverlässiger Schild sein, der diese Bedrohungen im Voraus abwehrt.
Vergessen Sie nicht, dass gerade in diesem Moment jemand auf Ihren Server abzielt.
Add a New Comment