Dieses Modul kostenlos auf echter VM üben
Kostenlos registrierenSSH-Hardening
Du härtest die SSH-Konfiguration deiner Server-VM gegen die häufigsten Angriffsvektoren — Root-Login sperren, Passwort-Auth abschalten, Login-Versuche begrenzen, tote Verbindungen per Keep-Alive erkennen. 7 Aufgaben, ca. 60 Minuten.
SSH-Konfiguration absichern
Was ist SSH — und warum „Hardening"?
SSH (Secure Shell) ist das Standard-Protokoll, um sich verschlüsselt auf einem entfernten Server anzumelden und ihn über die Kommandozeile zu verwalten. Der SSH-Dienst heißt sshd und lauscht standardmäßig auf Port 22.
Weil SSH der Haupt-Zugang zum Server ist, ist er das beliebteste Angriffsziel: Bots probieren rund um die Uhr automatisch Benutzernamen und Passwörter durch — das nennt man Brute-Force. Hardening (Härtung) bedeutet, den Dienst so einzustellen, dass solche Angriffe ins Leere laufen.
Wo wird konfiguriert?
Alle Einstellungen stehen in der Datei /etc/ssh/sshd_config. Nach jeder Änderung musst du den Dienst neu laden, damit sie greift:
sudo systemctl reload sshDein Ziel in dieser Lektion
Du härtest die SSH-Konfiguration gegen die häufigsten Angriffe: Root-Login sperren, Passwort-Anmeldung abschalten, Login-Versuche begrenzen, tote Verbindungen erkennen, den Zugang auf erlaubte Benutzer beschränken und ein Login-Banner setzen.
Aufgaben
1. Root-Login deaktivieren
Begriff: Root-Login.
rootist der Administrator-Account mit unbegrenzten Rechten. Darf sichrootdirekt per SSH anmelden, ist das ein „Game-Over"-Risiko: Wer das Passwort errät, übernimmt sofort den ganzen Server. Sichere Server verbieten den direkten Root-Login — man meldet sich als normaler Benutzer an und nutzt bei Bedarfsudo.Öffne die Konfiguration mit
sudo nano /etc/ssh/sshd_config, suche die ZeilePermitRootLoginund setze sie auf:PermitRootLogin noSpeichern mit
Strg+O,Enter, schließen mitStrg+X. Danach den Dienst neu laden:sudo systemctl reload sshKontrolle:
sudo sshd -T | grep permitrootloginmusspermitrootlogin noausgeben.2. Passwort-Authentifizierung abschalten
Begriff: Public-Key- statt Passwort-Anmeldung. Bei der Passwort-Anmeldung tippt man ein Passwort — das können Bots per Brute-Force erraten. Bei der Public-Key-Authentifizierung besitzt der Nutzer einen privaten Schlüssel, der Server kennt nur den passenden öffentlichen Schlüssel. Ohne den privaten Schlüssel kommt niemand rein — das ist um Größenordnungen sicherer und kann nicht erraten werden.
Schalte die Passwort-Anmeldung in
/etc/ssh/sshd_configab:PasswordAuthentication noDanach neu laden:
sudo systemctl reload sshDein bestehender Public-Key-Zugang bleibt davon unberührt — du sperrst dich also nicht aus.
Kontrolle:
sudo sshd -T | grep passwordauthenticationmusspasswordauthentication nozeigen.3. Login-Versuche auf 3 begrenzen
Begriff:
MaxAuthTries. Diese Direktive begrenzt, wie viele Anmelde-Versuche pro Verbindung erlaubt sind. Der Standard ist6— das gibt Brute-Force-Tools unnötig viele Versuche. Mit nur drei Versuchen schließt der Server die Verbindung früher, und Schutz-Tools wie fail2ban greifen schneller.Setze in
/etc/ssh/sshd_config:MaxAuthTries ____Danach neu laden:
sudo systemctl reload sshKontrolle:
sudo sshd -T | grep maxauthtriesmuss den neuen Wert zeigen.4. Tote SSH-Verbindungen erkennen (Keep-Alive alle 5 Minuten)
Begriff: Keep-Alive. Bricht eine Verbindung weg (WLAN aus, Laptop zugeklappt), merkt der Server das oft lange nicht — die tote Sitzung bleibt offen.
ClientAliveIntervallegt fest, nach wie vielen Sekunden ohne Daten vom Client der Server verschlüsselt nachfragt, ob die Gegenseite noch da ist. Bleibt die AntwortClientAliveCountMax-mal aus (Standard: 3), trennt er die Verbindung. Ein Client, der antwortet, bleibt verbunden — auch wenn niemand tippt. Es ist also keine Abmeldung bei Untätigkeit. Der Wert wird in Sekunden angegeben.Setze in
/etc/ssh/sshd_config:ClientAliveInterval ____Danach neu laden:
sudo systemctl reload sshKontrolle:
sudo sshd -T | grep clientaliveintervalmuss den neuen Wert in Sekunden zeigen.5. SSH nur für student-User erlauben
Begriff: Whitelist mit
AllowUsers. Statt allen Benutzern den SSH-Zugang zu erlauben und einzelne zu sperren (Blacklist), erlaubst du nur ausdrücklich genannte Benutzer (Whitelist) — das ist deutlich sicherer.Trage in
/etc/ssh/sshd_configdie erlaubten Benutzer ein:AllowUsers ____ ssh-validatorDanach neu laden:
sudo systemctl reload ssh⚠️ Wichtig:
ssh-validatormuss mit in die Liste — sonst sperrst du den Plattform-Prüfer aus und die Aufgabe kann nicht bestanden werden.Kontrolle:
sudo sshd -T | grep allowusersmuss deinen eigenen Benutzer undssh-validatorenthalten.6. Login-Banner aktivieren
Begriff: Login-Banner. Ein Banner ist ein Hinweistext, der vor der Anmeldung angezeigt wird. Er dient rechtlich als Warnung („nur autorisierter Zugriff") und schreckt Angreifer ab.
Erstelle zuerst den Warntext und verweise dann in der SSH-Konfiguration darauf.
Banner-Datei anlegen:
echo 'Authorized access only. All activity is monitored.' | sudo tee /etc/issue.netIn
/etc/ssh/sshd_configdie Banner-Zeile setzen:____ /etc/issue.netDanach neu laden:
sudo systemctl reload sshKontrolle:
sudo sshd -T | grep bannermuss/etc/issue.netzeigen.7. sshd reloaden und Public-Key-Auth verifizieren
Begriff: Wirksam vs. nur konfiguriert. Änderungen an
sshd_configwirken erst nachsystemctl reload ssh.sudo sshd -Tzeigt die wirksame Konfiguration: alle Dateien zusammen (auchsshd_config.d/) samt Standardwerten — und bricht bei einem Tippfehler mit Datei und Zeile ab. Es liest die Dateien, nicht den laufenden Dienst: Ob der Reload geklappt hat, zeigtsystemctl status ssh.Stelle sicher, dass Public-Key-Authentifizierung aktiv ist, lade den Dienst neu und prüfe das Ergebnis in der wirksamen Konfiguration.
sudo systemctl reload ssh sudo sshd -T | grep -i pubkeyauthenticationSie muss
pubkeyauthentication yesenthalten.Kontrolle: Der Prüfer schaut, ob der SSH-Dienst läuft und ob
pubkeyauthentication yesin der wirksamen Konfiguration steht. Ob du neu geladen hast, sieht er nicht — das ist dein Teil.
Wissens-Check: SSH-Hardening
Ohne VM, ca. 3 Minuten. Du rufst ab, was du im Modul geübt hast – falsche Antworten kommen am Ende noch einmal.
Verwandte Kurse
Jetzt selbst üben
Lesen ist gut – selbst machen ist besser. Übe dieses Modul an einer echten Linux-VM, direkt im Browser. Ein kostenloses Konto genügt.
Kostenlos startenLab-Inhalte unter CC BY 4.0 – frei nutzbar mit Namensnennung (© TechLogia).
