Ubuntu Server absichern: SSH-Port ändern und fail2ban einrichten
Zwei schnelle Massnahmen, um einen frisch installierten Ubuntu-Server gegen automatisierte Angriffe abzusichern: den SSH-Port verschieben und mit fail2ban Brute-Force-Versuche automatisch sperren.
Ein direkt aus dem Internet erreichbarer Ubuntu-Server wird innerhalb weniger Minuten zum Ziel automatisierter Anmeldeversuche. Mit zwei einfachen Massnahmen lässt sich die Angriffsfläche deutlich verkleinern: den SSH-Port vom Standard wegbewegen und mit fail2ban wiederholte Fehlversuche automatisch sperren. Diese Anleitung führt beide Schritte durch und funktioniert auf jeder gängigen Ubuntu-Server-Installation.
1. SSH-Port ändern
Standardmässig läuft SSH auf Port 22. Wird ein Server mit diesem Port ans Internet angebunden, zeigen die SSH-Logs schon nach kurzer Zeit zahlreiche fehlgeschlagene Anmeldeversuche. Ein abweichender Port hält zwar keinen gezielten Angreifer auf, reduziert aber das Grundrauschen der automatisierten Scans erheblich.
Schritt 1. SSH-Konfigurationsdatei öffnen. Im Beispiel wird der Editor Nano verwendet:
1sudo nano /etc/ssh/sshd_config
Schritt 2. In der Datei die auskommentierte Zeile mit der Port-Angabe aktivieren (das vorangestellte # entfernen) und 22 durch den gewünschten Port ersetzen. Empfehlenswert ist ein Port zwischen 30000 und 65000.
1Port 1337
Schritt 3. Datei speichern, den Editor verlassen und den SSH-Dienst neu starten, damit die Änderung wirksam wird:
1sudo service ssh restart
Die bestehende SSH-Sitzung bleibt nach dem Neustart geöffnet. Melden Sie sich für die nächste Verbindung über den neuen Port an (im Beispiel Port 1337) statt über Port 22.
2. fail2ban einrichten
fail2ban schützt den Server vor Brute-Force-Attacken und anderen automatisierten Angriffen, indem es die Dienstprotokolle auf verdächtige Aktivitäten überwacht. Einträge, die auf hinterlegte Muster passen, werden gezählt. Überschreitet ihre Anzahl einen definierten Schwellenwert, sperrt fail2ban die angreifende IP-Adresse über die Systemfirewall für eine festgelegte Zeit. Nach Ablauf der Sperrfrist wird die IP wieder aus der Sperrliste entfernt.
Installation
Zuerst die Paketquellen aktualisieren und fail2ban installieren:
1sudo apt update2sudo apt install fail2ban
Anschliessend den Status prüfen. fail2ban startet nach der Installation automatisch und wird auch bei einem Systemneustart wieder gestartet:
1sudo systemctl status fail2ban
Konfiguration
Die Konfiguration erfolgt nicht direkt in jail.conf, da diese Datei bei Updates überschrieben werden kann. Stattdessen wird eine Kopie als jail.local angelegt und dort angepasst:
1sudo cp /etc/fail2ban/jail.{conf,local}
Danach die jail.local mit einem Editor öffnen:
1sudo nano /etc/fail2ban/jail.local
Im Abschnitt [DEFAULT] lassen sich die wichtigsten Sperrbedingungen über drei Werte steuern:
bantime: Dauer, für die eine IP gesperrt wird. Ohne Suffix wird der Wert in Sekunden interpretiert. Der Standardwert beträgt 10 Minuten; eine längere Sperrzeit ist empfehlenswert.
findtime: Zeitfenster, innerhalb dessen die Fehlversuche auftreten müssen, damit eine Sperre verhängt wird. Ist fail2ban etwa so eingestellt, dass eine IP nach fünf Fehlversuchen gesperrt wird, müssen diese fünf Versuche innerhalb von findtime liegen.
maxretry: Anzahl der Fehlversuche, bevor eine IP gesperrt wird. Der Standardwert ist 5 und reicht für die meisten Einsätze aus.
Nach dem Anpassen die Datei speichern und den Editor schliessen. Anschliessend fail2ban neu starten, damit die Konfiguration übernommen wird.
Test mit mehrfachen Fehlanmeldungen
Zur Kontrolle lassen sich absichtlich mehrere fehlerhafte Anmeldungen ausführen. Wird der Schwellenwert (maxretry) innerhalb von findtime überschritten, sperrt fail2ban die eigene IP für die Dauer von bantime. Bei den Standardwerten sind das 10 Minuten, in denen keine weiteren Anmeldeversuche möglich sind.
Fazit
Mit einem verschobenen SSH-Port und einer fail2ban-Konfiguration ist ein Ubuntu-Server bereits deutlich besser gegen automatisierte Angriffe geschützt. Beide Massnahmen sind in wenigen Minuten umgesetzt und bilden eine solide Grundlage, auf der sich weitere Härtungsschritte wie schlüsselbasierte SSH-Anmeldung oder eine restriktive Firewall aufbauen lassen.
