Absichern von SSH mit Fail2Ban unter Rocky Linux 9
SSH (Secure Shell) fungiert als Netzwerkprotokoll, das eine geschützte Datenübertragung zwischen zwei Rechnern über ein potentiell unsicheres Netzwerk ermöglicht. Es wird primär für die Fernadministration, den Datenaustausch und weitere Aufgaben verwendet, die eine hohe Authentifizierung erfordern.
Die Absicherung von SSH ist von grundlegender Bedeutung, da es ein beliebtes Ziel für Hacker und Cyberkriminelle darstellt. Eine übliche Angriffsmethode sind Brute-Force-Attacken, bei denen Angreifer automatisierte Werkzeuge verwenden, um unterschiedliche Benutzernamen und Passwörter zu testen, in der Hoffnung, die korrekte Kombination zu ermitteln.
Fail2Ban ist ein System zur Erkennung und Abwehr von Eindringversuchen (Intrusion Detection and Prevention System, IDS/IPS), das SSH vor Brute-Force-Angriffen schützt. Es analysiert Protokolldateien auf Hinweise verdächtiger Aktivitäten und sperrt IP-Adressen, von denen wiederholte, misslungene Anmeldeversuche ausgehen.
Installation von Fail2Ban
Fail2Ban ist in den Standard-Repositories von Rocky Linux 9 verfügbar. Die Installation erfolgt mit folgendem Kommando:
sudo dnf install fail2ban
Konfiguration von Fail2Ban
Nach der Installation ist eine Anpassung der Konfiguration von Fail2Ban erforderlich. Die Hauptkonfigurationsdatei findet sich unter /etc/fail2ban/jail.conf
.
Öffnen Sie diese Konfigurationsdatei mit einem Texteditor Ihrer Wahl und suchen Sie den Abschnitt [sshd]
:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 5
bantime = 3600
findtime = 600
Prüfen Sie die nachstehenden Einstellungen:
* enabled
: Setzen Sie diesen Wert auf true
, um Fail2Ban für SSH zu aktivieren.
* port
: Legen Sie hier den zu überwachenden SSH-Port fest.
* filter
: Verwenden Sie den Wert sshd
, um den passenden SSH-Filter zu nutzen.
* logpath
: Geben Sie den Pfad zur SSH-Protokolldatei an.
* maxretry
: Definieren Sie die maximale Anzahl gescheiterter Anmeldeversuche, bevor eine IP-Adresse blockiert wird.
* bantime
: Bestimmen Sie die Sperrdauer einer blockierten IP-Adresse (in Sekunden).
* findtime
: Legen Sie das Zeitfenster fest, in dem gescheiterte Anmeldeversuche gezählt werden.
Starten und Aktivieren von Fail2Ban
Nachdem Sie die Konfiguration angepasst haben, starten Sie Fail2Ban mit dem folgenden Befehl:
sudo systemctl start fail2ban
Aktivieren Sie Fail2Ban, damit es automatisch beim Systemstart gestartet wird:
sudo systemctl enable fail2ban
Verwaltung von Fail2Ban
Die Verwaltung von Fail2Ban erfolgt über den Befehl fail2ban-client
. Hier sind einige gängige Befehle:
* Status anzeigen: sudo fail2ban-client status
* IP-Adresse sperren: sudo fail2ban-client set sshd banip 192.168.1.100
* IP-Adresse entsperren: sudo fail2ban-client set sshd unbanip 192.168.1.100
* Alle gesperrten IP-Adressen anzeigen: sudo fail2ban-client status sshd
* Protokolldateien anzeigen: sudo less /var/log/fail2ban.log
Fazit
Fail2Ban ist ein leistungsfähiges Werkzeug, um SSH vor Brute-Force-Angriffen zu schützen. Durch die Überwachung von Logdateien und das Blockieren verdächtiger IP-Adressen hilft Fail2Ban, unautorisierte Zugriffe auf Ihr System zu verhindern.
Die Implementierung von Fail2Ban ist ein entscheidender Schritt zur Erhöhung der Sicherheit Ihrer SSH-Verbindungen. Es ist leicht zu konfigurieren und zu verwalten und bietet einen wirksamen Schutz gegen unbefugte Anmeldeversuche. In Verbindung mit einer starken Authentifizierung können Sie sicherstellen, dass Ihr SSH-Server gut geschützt ist.
Häufig gestellte Fragen (FAQ)
1. Worin besteht der Unterschied zwischen Fail2Ban und Firewalld?
Fail2Ban agiert als Intrusion Detection and Prevention System (IDS/IPS), das speziell auf die Analyse von Protokolldateien und die Blockierung von verdächtigen IP-Adressen ausgerichtet ist. Firewalld hingegen ist eine Firewall, die den ein- und ausgehenden Netzwerkverkehr auf einer niedrigeren Ebene reguliert.
2. Wie oft sollte die Fail2Ban-Konfiguration überprüft werden?
Es ist ratsam, die Fail2Ban-Konfiguration regelmäßig zu überprüfen, insbesondere nach Änderungen an Ihrem SSH-Server. Passen Sie die Einstellungen an Ihre spezifischen Sicherheitsanforderungen an.
3. Kann Fail2Ban auch andere Dienste außer SSH überwachen?
Ja, Fail2Ban kann für die Überwachung einer Vielzahl von Diensten wie FTP, SMTP und HTTP angepasst werden. Die Konfigurationen für diese Dienste finden Sie in separaten Abschnitten der Datei /etc/fail2ban/jail.conf
.
4. Wie wird die Fail2Ban-Konfiguration sicher gespeichert?
Die Fail2Ban-Konfiguration sollte geschützt gespeichert werden, um unautorisierte Änderungen zu vermeiden. Nutzen Sie ein Versionskontrollsystem wie Git oder speichern Sie die Konfigurationsdatei an einem sicheren Ort.
5. Was ist zu tun, wenn mein SSH-Server gesperrt wurde?
Wenn Fail2Ban Ihren SSH-Server gesperrt hat, können Sie die betreffende IP-Adresse mit dem Befehl fail2ban-client set sshd unbanip
entsperren. Überprüfen Sie zudem die Protokolldateien, um die Ursache der Sperrung zu klären.
6. Wie kann Fail2Ban debuggt werden?
Sie können Fail2Ban debuggen, indem Sie die Protokollebene auf DEBUG
setzen. Ändern Sie in der Datei /etc/fail2ban/fail2ban.conf
die Zeile logtarget = SYSLOG
in logtarget = SYSLOG, DEBUG
.
7. Wie kann Fail2Ban automatisch aktualisiert werden?
Die automatische Aktualisierung von Fail2Ban erfolgt mit dem Befehl sudo dnf update fail2ban
. Damit werden sowohl die Fail2Ban-Software als auch die Signaturen zur Erkennung von Brute-Force-Angriffen aktualisiert.
8. Wie wird die Fail2Ban-Sperrliste manuell bearbeitet?
Die Fail2Ban-Sperrliste lässt sich manuell bearbeiten, indem Sie die Datei /var/lib/fail2ban/fail2ban.d/ssh.conf
anpassen. Im Abschnitt iplist
können Sie IP-Adressen hinzufügen oder entfernen, um die Sperrliste zu verändern.