Wer einen Ubuntu-Server per Netzwerk verwaltet, sollte das Thema SSH Hardening sehr ernst nehmen. Der SSH-Dienst ist oft das wichtigste Tor zur Linux-Administration. Genau deshalb ist er auch ein beliebtes Ziel für automatisierte Angriffe, Brute-Force-Versuche und Fehlkonfigurationen. Viele Einsteiger installieren OpenSSH, öffnen Port 22 und arbeiten dann mit den Standardwerten weiter. Für Testsysteme mag das anfangs funktionieren, für eine professionelle und sichere Umgebung reicht das aber nicht aus. SSH Hardening unter Ubuntu bedeutet, den Fernzugriff gezielt abzusichern, unnötige Risiken zu entfernen und nur die wirklich nötigen Funktionen aktiv zu lassen. In diesem Tutorial lernen Sie Schritt für Schritt, wie Sie SSH unter Ubuntu professionell härten, welche Einstellungen besonders wichtig sind und wie Sie typische Fehler vermeiden. Die Erklärungen bleiben bewusst klar und leicht verständlich, damit auch Anfänger, IT-Studenten und Linux-Lernende ein solides und sicheres SSH-Konzept aufbauen können.
Was bedeutet SSH Hardening unter Ubuntu?
SSH Hardening bedeutet, den SSH-Zugang eines Ubuntu-Systems gezielt sicherer zu machen. Ziel ist es, die Angriffsfläche zu verkleinern, nur nötige Zugänge zu erlauben und unsichere Standards durch bessere Einstellungen zu ersetzen. Dabei geht es nicht nur um eine einzelne Option, sondern um ein ganzes Sicherheitskonzept.
Ein professionell gehärteter SSH-Server verwendet zum Beispiel keine unsicheren Passwort-Logins, erlaubt keinen direkten Root-Zugriff, begrenzt Benutzer sauber und wird durch Firewall und Log-Überwachung ergänzt. Genau diese Kombination macht den Unterschied zwischen einem einfachen SSH-Setup und einer wirklich professionellen Linux-Sicherheit.
- SSH Hardening reduziert Sicherheitsrisiken.
- Nur notwendige Funktionen bleiben aktiv.
- Benutzerrechte werden klar eingeschränkt.
- Angriffe auf den Server werden erschwert.
- Die Fernwartung bleibt sicher und kontrollierbar.
Warum SSH ein häufiges Angriffsziel ist
Ein Server mit offenem SSH-Port wird oft sehr schnell von Bots und Scannern gefunden. Diese Systeme prüfen automatisch, ob bekannte Benutzernamen wie root, admin oder test existieren. Danach folgen oft Passwortversuche oder andere Tests auf schwache Einstellungen. Gerade bei Internet-Servern ist das Alltag.
Das bedeutet nicht, dass SSH unsicher ist. Im Gegenteil: OpenSSH ist ein sehr solides Werkzeug. Unsicher wird es meist erst durch schlechte Konfiguration. Genau deshalb ist SSH Hardening unter Ubuntu so wichtig. Mit den richtigen Maßnahmen bleibt SSH ein sicherer und professioneller Fernzugang.
Typische Risiken bei schlecht gesichertem SSH
- Direkter Root-Login über das Netzwerk
- Schwache oder wiederverwendete Passwörter
- Zu viele Benutzer mit SSH-Zugang
- Fehlende Begrenzung von Login-Versuchen
- Keine Überwachung von Logs und Anmeldeversuchen
OpenSSH Server unter Ubuntu prüfen und installieren
Bevor Sie SSH härten, sollten Sie zuerst prüfen, ob der OpenSSH-Server installiert und aktiv ist. Auf vielen Ubuntu-Servern ist der Dienst bereits vorhanden. Auf Desktop-Systemen muss er oft erst nachinstalliert werden.
Status des SSH-Dienstes prüfen
systemctl status ssh
Wenn der Dienst nicht installiert ist, richten Sie ihn so ein:
sudo apt update
sudo apt install openssh-server -y
Danach aktivieren und starten Sie den Dienst:
sudo systemctl enable ssh
sudo systemctl start ssh
Prüfen, ob SSH auf dem System lauscht
sudo ss -tulpen | grep ssh
Damit sehen Sie, ob der Dienst auf dem erwarteten Port aktiv ist.
Die zentrale Konfigurationsdatei kennen
Die wichtigste Datei für SSH Hardening unter Ubuntu ist:
/etc/ssh/sshd_config
Hier legen Sie fest, welche Benutzer sich anmelden dürfen, welche Authentifizierungsmethoden aktiv sind und wie sich der SSH-Server im Detail verhält. Bevor Sie Änderungen vornehmen, sollten Sie die Datei immer sichern.
Backup der SSH-Konfiguration anlegen
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Danach können Sie die Datei mit einem Editor öffnen:
sudo nano /etc/ssh/sshd_config
Syntax der SSH-Konfiguration prüfen
sudo sshd -t
Dieser Test ist extrem wichtig. Ein Fehler in der Konfiguration kann dazu führen, dass SSH nicht mehr richtig startet oder Sie sich aussperren.
Direkten Root-Login deaktivieren
Eine der wichtigsten Maßnahmen beim SSH Hardening ist das Abschalten des direkten Root-Logins. Der Benutzer root hat uneingeschränkte Rechte im System. Wenn ein Angreifer sich direkt als root anmelden kann, ist der Schaden oft sofort maximal. Sicherer ist es, sich mit einem normalen Benutzer anzumelden und nur bei Bedarf sudo zu nutzen.
Root-Login in sshd_config deaktivieren
PermitRootLogin no
Falls die Zeile noch auskommentiert ist, entfernen Sie das #. Falls sie fehlt, fügen Sie sie manuell hinzu.
Warum diese Einstellung so wichtig ist
- Angriffe auf den bekannten Benutzernamen root werden blockiert.
- Administrative Arbeit läuft kontrollierter über sudo.
- Fehler und Aktionen bleiben benutzerbezogen nachvollziehbar.
- Der wichtigste Account wird nicht direkt aus dem Netz erreichbar gemacht.
Mit einem normalen Admin-Benutzer arbeiten
Bevor Sie den Root-Login deaktivieren, sollten Sie einen normalen Benutzer mit administrativen Rechten haben. So stellen Sie sicher, dass Sie den Server weiterhin verwalten können.
Neuen Benutzer anlegen
sudo adduser adminuser
Benutzer zur sudo-Gruppe hinzufügen
sudo usermod -aG sudo adminuser
Danach testen Sie die Anmeldung mit diesem Benutzer und prüfen, ob sudo korrekt funktioniert:
su - adminuser
sudo whoami
Wenn als Ergebnis root erscheint, funktioniert die Rechtevergabe korrekt.
Passwort-Login deaktivieren und SSH-Schlüssel verwenden
Eine der stärksten Maßnahmen für sicheres SSH unter Ubuntu ist die Anmeldung per Schlüssel statt Passwort. Passwörter können erraten, geleakt oder wiederverwendet werden. SSH-Schlüssel sind deutlich robuster, besonders wenn sie mit einer Passphrase geschützt sind.
SSH-Schlüssel auf dem Client erstellen
ssh-keygen -t ed25519 -C "ubuntu-ssh-zugang"
Der Algorithmus ed25519 gilt als modern, schnell und sicher. Während der Erstellung sollten Sie eine starke Passphrase setzen.
Öffentlichen Schlüssel auf den Server kopieren
ssh-copy-id adminuser@server-ip
Danach testen Sie die Anmeldung:
ssh adminuser@server-ip
Erst wenn die Anmeldung per Schlüssel sicher funktioniert, sollten Sie Passwort-Logins deaktivieren.
Passwort-Authentifizierung in sshd_config ausschalten
PasswordAuthentication no
Zusätzlich ist oft sinnvoll:
ChallengeResponseAuthentication no
Die Anmeldung per öffentlichem Schlüssel sollte aktiv sein:
PubkeyAuthentication yes
Warum SSH-Schlüssel sicherer sind
- Schlüssel sind nicht einfach zu erraten.
- Brute-Force-Angriffe auf Passwörter verlieren an Wirkung.
- Mit Passphrase ist auch der private Schlüssel geschützt.
- Die Anmeldung ist gleichzeitig sicher und komfortabel.
Nur bestimmte Benutzer für SSH zulassen
Ein häufiger Fehler ist, allen lokalen Benutzern indirekt auch SSH-Zugang zu erlauben. Professionelles SSH Hardening unter Ubuntu begrenzt klar, welche Konten sich überhaupt per SSH anmelden dürfen.
Nur bestimmte Benutzer erlauben
AllowUsers adminuser max
Alternativ können Sie mit Gruppen arbeiten:
AllowGroups sshusers
Wenn Sie Gruppen nutzen möchten, legen Sie diese an und fügen passende Benutzer hinzu:
sudo groupadd sshusers
sudo usermod -aG sshusers adminuser
Warum diese Einschränkung sinnvoll ist
- Nicht jeder lokale Benutzer darf sich automatisch remote anmelden.
- Die Angriffsfläche wird kleiner.
- Die Verwaltung bleibt klarer und professioneller.
Den SSH-Port ändern: sinnvoll, aber nur Zusatzschutz
Viele Administratoren ändern den Standardport 22 auf einen anderen Wert. Das kann automatische Massenangriffe reduzieren, weil viele Bots zuerst nur den Standardport prüfen. Trotzdem ist das keine echte Hauptsicherheitsmaßnahme. Ein anderer Port ersetzt niemals Schlüssel-Login, Firewall oder Benutzerhärtung.
SSH-Port in der Konfiguration ändern
Port 2222
Danach verbinden Sie sich so:
ssh -p 2222 adminuser@server-ip
Worauf Sie bei einer Portänderung achten müssen
- Die Firewall muss den neuen Port erlauben.
- Skripte und Automatisierungen müssen angepasst werden.
- Monitoring und Dokumentation sollten aktualisiert werden.
Für Anfänger ist wichtig: Ein anderer Port ist hilfreich, aber nur ergänzend. Die wichtigen Schutzmaßnahmen bleiben Schlüssel, kein Root-Login und klare Benutzerregeln.
Firewall für SSH sauber einrichten
Zur professionellen SSH-Härtung gehört immer eine passende Firewall. Unter Ubuntu ist ufw oft die einfachste Lösung. Damit legen Sie fest, welche Ports erreichbar sind.
Firewall-Status prüfen
sudo ufw status
SSH freigeben
Wenn Sie den Standardport nutzen:
sudo ufw allow OpenSSH
Wenn Sie einen eigenen Port wie 2222 nutzen:
sudo ufw allow 2222/tcp
Firewall aktivieren
sudo ufw enable
Ganz wichtig: Aktivieren Sie die Firewall erst dann, wenn die SSH-Regel korrekt gesetzt ist. Sonst sperren Sie sich unter Umständen selbst aus.
Aktive Regeln anzeigen
sudo ufw status numbered
Fail2ban gegen Brute-Force-Angriffe einsetzen
Fail2ban ist ein sehr wichtiges Werkzeug, wenn Sie SSH Hardening unter Ubuntu professionell umsetzen möchten. Das Programm überwacht Logdateien und sperrt IP-Adressen, wenn zu viele fehlgeschlagene Anmeldeversuche erkannt werden. Das schützt sehr gut gegen automatische Passwortangriffe.
Fail2ban installieren
sudo apt update
sudo apt install fail2ban -y
Lokale Konfiguration anlegen
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Öffnen Sie danach die lokale Datei:
sudo nano /etc/fail2ban/jail.local
SSH-Schutz aktivieren
[sshd]
enabled = true
Typische zusätzliche Werte sind:
bantime = 1h
findtime = 10m
maxretry = 5
Danach starten Sie Fail2ban neu:
sudo systemctl restart fail2ban
Status von Fail2ban prüfen
sudo fail2ban-client status
sudo fail2ban-client status sshd
Leerlauf-Sitzungen automatisch beenden
Offene SSH-Sitzungen können ein Sicherheitsproblem sein, wenn ein Terminal unbeaufsichtigt bleibt oder eine Verbindung vergessen wird. Deshalb ist es sinnvoll, Leerlauf-Sitzungen automatisch zu beenden.
Leerlauf in sshd_config begrenzen
ClientAliveInterval 300
ClientAliveCountMax 2
Diese Werte sorgen dafür, dass inaktive Sitzungen nach einer gewissen Zeit getrennt werden, wenn der Client nicht mehr reagiert.
Vorteile dieser Einstellung
- Vergessene SSH-Sitzungen bleiben nicht ewig offen.
- Die Sicherheit bei unbeaufsichtigten Terminals steigt.
- Die Zahl alter und ungenutzter Sessions wird reduziert.
Unnötige Funktionen abschalten
Ein wichtiger Grundsatz beim Hardening lautet: Nur aktivieren, was wirklich gebraucht wird. Jede unnötige Funktion vergrößert die Angriffsfläche. Wenn Sie bestimmte SSH-Features nicht benötigen, sollten Sie sie deaktivieren.
X11-Forwarding deaktivieren
X11Forwarding no
Tunneling nur bei Bedarf erlauben
Wenn Port-Forwarding nicht gebraucht wird, kann eine Einschränkung sinnvoll sein:
AllowTcpForwarding no
Agent Forwarding nur bei Bedarf zulassen
AllowAgentForwarding no
Diese Optionen sollten bewusst gesetzt werden. In manchen Umgebungen werden sie benötigt, in vielen Standard-Servern aber nicht.
SSH-Logs regelmäßig prüfen
SSH Hardening endet nicht bei der Konfiguration. Auch die Überwachung gehört dazu. Nur wenn Sie Logins, Fehler und verdächtige Aktivitäten kontrollieren, erkennen Sie Probleme rechtzeitig.
SSH-Logs mit journalctl anzeigen
sudo journalctl -u ssh
Nur die neuesten Einträge:
sudo journalctl -u ssh -n 50
Fehlgeschlagene Login-Versuche prüfen
sudo grep "Failed password" /var/log/auth.log
Erfolgreiche SSH-Anmeldungen suchen
sudo grep "Accepted" /var/log/auth.log
Warum Log-Kontrolle wichtig ist
- Angriffsversuche werden schneller sichtbar.
- Fehlkonfigurationen fallen eher auf.
- Ungewöhnliche Logins können untersucht werden.
- Die Sicherheitslage bleibt nachvollziehbar.
Starke Berechtigungen für SSH-Dateien setzen
Auch die Dateirechte rund um SSH sind wichtig. Wenn private Schlüssel oder SSH-Konfigurationsdateien zu offen gesetzt sind, kann das ein Sicherheitsproblem sein. Vor allem im Home-Verzeichnis des Benutzers sollten die Rechte sauber stimmen.
.ssh-Verzeichnis absichern
chmod 700 ~/.ssh
authorized_keys absichern
chmod 600 ~/.ssh/authorized_keys
Privaten Schlüssel auf dem Client absichern
chmod 600 ~/.ssh/id_ed25519
Diese Rechte stellen sicher, dass nur der jeweilige Benutzer Zugriff auf sensible SSH-Dateien hat.
Nur moderne Schlüssel und sichere Standards verwenden
Professionelles SSH Hardening unter Ubuntu bedeutet auch, keine veralteten Verfahren bewusst wieder zu aktivieren. Moderne OpenSSH-Versionen sind bereits recht vernünftig vorkonfiguriert. Alte Tutorials enthalten aber oft unsichere Empfehlungen oder veraltete Algorithmen.
Sichere Schlüsselart erzeugen
ssh-keygen -t ed25519 -C "secure-admin-access"
Was Sie vermeiden sollten
- Alte und schwache kryptografische Verfahren aus alten Anleitungen übernehmen
- Unsichere Kompatibilitätsoptionen ohne klaren Grund aktivieren
- Veraltete SSH-Konfigurationsbeispiele blind kopieren
Wer mit aktuellen Ubuntu-Versionen arbeitet, sollte sich möglichst eng an moderne OpenSSH-Standards halten und unnötige Altlasten vermeiden.
Änderungen immer sicher testen
Ein klassischer Fehler beim SSH Hardening ist das gleichzeitige Ändern vieler Einstellungen ohne Test. Das kann dazu führen, dass die Anmeldung plötzlich nicht mehr funktioniert. Arbeiten Sie deshalb immer Schritt für Schritt und testen Sie jede wichtige Änderung einzeln.
Vor dem Reload immer Syntax prüfen
sudo sshd -t
SSH-Konfiguration neu laden
sudo systemctl reload ssh
Falls nötig, können Sie auch neu starten:
sudo systemctl restart ssh
Wichtige Praxisregel
- Eine bestehende SSH-Sitzung immer offen lassen.
- Neue Einstellungen in einer zweiten Sitzung testen.
- Erst danach die alte Sitzung schließen.
- Nie mehrere kritische Änderungen blind gleichzeitig machen.
Ein sinnvolles Basisbeispiel für sshd_config
Für viele Ubuntu-Server ist eine kompakte, sichere Grundkonfiguration ein guter Start. Die genauen Werte hängen immer vom Einsatzzweck ab, aber dieses Beispiel zeigt eine solide Richtung für SSH Hardening.
Beispiel wichtiger Einstellungen
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
X11Forwarding no
AllowUsers adminuser
ClientAliveInterval 300
ClientAliveCountMax 2
Wenn Sie zusätzlich einen anderen SSH-Port, eine Firewall und Fail2ban nutzen, haben Sie bereits ein deutlich besser geschütztes System als mit den Standardwerten.
Typische Fehler beim SSH Hardening unter Ubuntu vermeiden
Gerade Anfänger machen oft ähnliche Fehler. Diese Fehler sind nicht kompliziert, können aber große Folgen haben. Wer sie kennt, arbeitet sicherer und professioneller.
Häufige Fehler
- Passwort-Login deaktivieren, bevor der SSH-Schlüssel getestet wurde
- Root-Login sperren, ohne einen funktionierenden sudo-Benutzer zu haben
- Firewall aktivieren, ohne SSH-Regeln korrekt zu setzen
- Port ändern, aber die neue Verbindung nicht testen
- Konfiguration ändern, ohne sshd -t auszuführen
- Veraltete Tipps aus alten Tutorials kopieren
Wichtiger Arbeitsstil für sichere Änderungen
Gehen Sie bei SSH Hardening immer kontrolliert vor. Erst Benutzer vorbereiten, dann Schlüssel testen, danach Passwort-Login deaktivieren, anschließend Root-Login sperren und erst dann weitere Härtung wie Portänderung oder spezielle Einschränkungen vornehmen.
Praktischer Ablauf für professionelles SSH Hardening
Ein sauberer Ablauf hilft dabei, Fehler zu vermeiden. Gerade bei entfernten Servern ist diese Reihenfolge sinnvoll.
Empfohlene Reihenfolge
- OpenSSH installieren und Status prüfen
- Admin-Benutzer mit sudo anlegen
- SSH-Schlüssel erstellen und testen
- Passwort-Login deaktivieren
- Root-Login deaktivieren
- Benutzerzugriff begrenzen
- Firewall passend konfigurieren
- Fail2ban einrichten
- Logs regelmäßig überwachen
Mit diesem Vorgehen setzen Sie SSH Hardening unter Ubuntu nicht nur technisch, sondern auch organisatorisch sauber um.
Hilfreiche Befehle für die tägliche Praxis
Bei der Absicherung von SSH tauchen einige Befehle immer wieder auf. Diese Kommandos sollten Sie sicher kennen.
OpenSSH installieren
sudo apt install openssh-server -y
Status prüfen
systemctl status ssh
SSH-Schlüssel erzeugen
ssh-keygen -t ed25519 -C "ubuntu-admin"
Schlüssel kopieren
ssh-copy-id adminuser@server-ip
SSH-Konfiguration testen
sudo sshd -t
SSH neu laden
sudo systemctl reload ssh
Firewall-Regel setzen
sudo ufw allow OpenSSH
Fail2ban installieren
sudo apt install fail2ban -y
SSH-Logs prüfen
sudo journalctl -u ssh
Autorisierte Schlüssel kontrollieren
cat ~/.ssh/authorized_keys
Wenn Sie diese Schritte sauber umsetzen, erhalten Sie ein deutlich sichereres SSH-Setup unter Ubuntu. Genau diese Mischung aus Schlüssel-Login, deaktiviertem Root-Zugang, klaren Benutzerregeln, Firewall, Log-Kontrolle und zusätzlichem Schutz durch Fail2ban gehört zu den wichtigsten Maßnahmen, um SSH Hardening unter Ubuntu professionell umzusetzen.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.