Aufgabe 05 - Schlüssel statt Passwort
Aufgabe 05 - Schlüssel statt Passwort
Abschnitt betitelt „Aufgabe 05 - Schlüssel statt Passwort“Worum geht es?
Abschnitt betitelt „Worum geht es?“Sie schließen den Zugang zu Ihrem Server: Anmeldung nur noch über Schlüssel, keine Passwörter, kein root von außen (siehe Kapitel Server aufsetzen und härten). Der lehrreiche Teil ist nicht das Ändern der Konfiguration, sondern der Nachweis, dass sie tatsächlich wirkt. Die häufigste Härtung dieses Kapitels ist eine, die auf dem Papier steht und nichts bewirkt.
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel Server aufsetzen und härten, Abschnitte Zugang über SSH und SSH abschließen.
- Ihren Server aus Aufgabe 04, ein Terminal und das Repository aus Aufgabe 03.
- Den Zugang zur Notfallkonsole Ihres Anbieters. Suchen Sie ihn heraus, bevor Sie beginnen.
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie erzeugen ein SSH-Schlüsselpaar, hinterlegen den öffentlichen Teil und prüfen den Fingerprint des Servers.
- Sie härten den SSH-Zugang und weisen die Wirkung jeder Maßnahme mit einer Gegenprobe nach.
- Sie unterscheiden den beabsichtigten Zustand einer Konfiguration vom tatsächlich wirksamen.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: Schlüssel erzeugen, hinterlegen und die Konfiguration nach Vorlage anpassen (Teil A).
- Reorganisation und Transfer: die Härtung durchführen, ohne sich dabei auszusperren (Teil B).
- Reflexion, Problemlösung und Urteilsbildung: die Wirkung belegen und Maßnahmen bewerten (Teil C).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei Stunden ausgelegt.
Teil A - Schlüssel und Identität
Abschnitt betitelt „Teil A - Schlüssel und Identität“-
Erzeugen Sie auf Ihrem eigenen Rechner ein Schlüsselpaar mit
ssh-keygen -t ed25519 -C "<YOUR_EMAIL@ADDRESS>"und vergeben Sie eine Passphrase. Notieren Sie die Namen der beiden entstandenen Dateien und dahinter, welche davon Ihren Rechner niemals verlässt. -
Erklären Sie in drei bis vier Sätzen, wogegen die Passphrase schützt. Gehen Sie dabei von diesem Fall aus: Jemand nimmt Ihr Notebook an sich und liest die Datei mit dem privaten Schlüssel. Nennen Sie am Ende einen Fall, gegen den die Passphrase nichts ausrichtet.
-
Bringen Sie den öffentlichen Schlüssel mit
ssh-copy-idauf den Server. Sehen Sie sich danach auf dem Server die Datei~/.ssh/authorized_keysan und notieren Sie mitls -ladie Rechte der Datei und des Verzeichnisses~/.ssh. -
Vergleichen Sie den Fingerprint, den SSH beim ersten Verbindungsaufbau anzeigt, mit dem in der Cloud-Oberfläche Ihres Anbieters. Notieren Sie beide und erklären Sie in zwei Sätzen, wogegen diese Prüfung schützt.
-
Legen Sie in
~/.ssh/configeinen Eintrag an, sodassssh <name>für die Verbindung genügt. Notieren Sie den Eintrag mit allen vier Zeilen.
Teil B - Den Zugang abschließen
Abschnitt betitelt „Teil B - Den Zugang abschließen“-
Legen Sie einen Snapshot Ihres Servers an. Notieren Sie Datum und Bezeichnung in
docs/betrieb.md. -
Legen Sie eine Arbeitskennung an und geben Sie ihr
sudo-Rechte:Terminal-Fenster sudo adduser deploysudo usermod -aG sudo deployHinterlegen Sie Ihren öffentlichen Schlüssel auch für diese Kennung und melden Sie sich damit testweise an. Gehen Sie erst weiter, wenn das funktioniert.
-
Sichern Sie den Ausgangszustand mit diesem Befehl und heben Sie die Ausgabe auf. Sie ist das „Vorher” Ihres Nachweises und lässt sich später nicht rekonstruieren:
Terminal-Fenster sudo sshd -T | grep -Ei "permitrootlogin|passwordauth|kbdinteractive" -
Setzen Sie in
/etc/ssh/sshd_configdiese fünf Einstellungen:PermitRootLogin no,PasswordAuthentication no,KbdInteractiveAuthentication no,PubkeyAuthentication yesundAllowUsers deploy. -
Sehen Sie in das Verzeichnis
/etc/ssh/sshd_config.d/. Auf Cloud-Images von Ubuntu liegt dort oft eine Datei wie50-cloud-init.conf, diePasswordAuthentication yesenthält und die Hauptdatei überstimmt. Notieren Sie, ob es eine solche Datei gibt, was darin steht und wie Sie damit umgegangen sind. -
Prüfen und übernehmen Sie die Konfiguration in einem Zug mit
sudo sshd -t && sudo systemctl reload ssh. Melden Sie sich danach im zweiten Fenster neu an. Erst wenn das gelingt, schließen Sie die erste Sitzung.
Teil C - Nachweisen und bewerten
Abschnitt betitelt „Teil C - Nachweisen und bewerten“-
Rufen Sie den Befehl aus Teil B Punkt 3 erneut auf. Diese Ausgabe ist das „Nachher”.
-
Führen Sie drei Gegenproben durch und notieren Sie zu jeder den Befehl und die vollständige Antwort des Servers:
- Passwortanmeldung erzwingen:
ssh -o PubkeyAuthentication=no deploy@<server> - Anmeldung als
root:ssh root@<server> - Anmeldung unter einer Kennung, die nicht in
AllowUserssteht.
- Passwortanmeldung erzwingen:
-
Schreiben Sie den Eintrag in
docs/haertung.mdnach dem Muster des Kapitels, mit Überschrift, Datum, Vorher, Maßnahme, Nachher und Gegenprobe. -
Erklären Sie in drei bis vier Sätzen den Unterschied zwischen der Ausgabe von
sshd -Tund dem Inhalt vonsshd_config. Beantworten Sie dabei, warum nur die erste als Nachweis taugt. -
Kopieren Sie die geänderten Dateien aus
/etc/ssh/ins Repository und committen Sie sie. -
Sehen Sie nach 24 Betriebsstunden ins Log. Notieren Sie aus
sudo journalctl -u ssh --since "24 hours ago" | grep -i failedundsudo lastb | head -20die Anzahl der Versuche und die fünf am häufigsten probierten Kennungen. -
Beurteilen Sie in fünf bis sechs Sätzen, was die abgeschaltete Passwortanmeldung an diesen Zahlen ändert und was sie am Risiko ändert. Die beiden Antworten fallen unterschiedlich aus.
-
Ein häufiger Rat lautet, den SSH-Port von 22 auf einen anderen zu legen. Beurteilen Sie diesen Rat in drei bis vier Sätzen: Was ändert sich messbar an Ihrem Log, was ändert sich am Aufwand für einen Angreifer, und wie müssten Sie die Maßnahme in
docs/haertung.mdbenennen, damit die Beschreibung ehrlich ist?
Wissenscheck
Abschnitt betitelt „Wissenscheck“- Welcher Teil des Schlüsselpaars liegt wo, und warum darf der private Teil den eigenen Rechner nie verlassen?
- Wozu fragt SSH beim ersten Verbindungsaufbau nach dem Fingerprint, und was bewirkt ein unbesehenes „yes”?
- Warum reicht
PasswordAuthentication noallein nicht aus? - Warum können Dateien in
sshd_config.d/die Hauptkonfiguration aushebeln? - Was zeigt
sshd -T, wassshd_confignicht zeigt? - Warum ist
PermitRootLogin noauch dann sinnvoll, wenn ohnehin nur Schlüssel erlaubt sind? - Warum ist eine Härtungsmaßnahme ohne Gegenprobe im Zweifel nicht vorhanden?
Der Server ist ausschließlich per Schlüssel unter der Arbeitskennung erreichbar. In docs/haertung.md steht der vollständige Eintrag mit Vorher, Maßnahme, Nachher und den drei Gegenproben. In docs/betrieb.md stehen der Snapshot und alle Eingriffe dieser Übung. Die geänderten Dateien aus /etc/ssh/ liegen im Repository. Die Logzahlen und die Beurteilungen aus Teil C stehen in protokoll.md.