Kleine und große Linux AHAs
Beiträge getaggt mit login
SSH authorized_keys mal anders verwalten
15. Jun
Wir haben viele Admins, die sich über ihre SSH Schlüssel per root an unsere RHEL Server direkt anmelden wollen. Das root Passwort ist keinem bekannt. Durch geeignete Log Optionen in der sshd_config können finger prints der Schlüssel, die sich anmelden protokolliert werden.
Die Verwaltung der authorized_keys auf so vielen Servern war aber immer etwas mühselig, bis wir auf die Idee gekommen sind, das ganze per RPM verwalten zu lassen. Den öffentlichen Schlüsselteil verpacken wir in ein RPM mit sprechendem Namen und verteilen dieses auf die entsprechenden Systeme.
Das Verfahren hat folgende Vorteile:
- Wenn ein Admin einen neuen Schlüssel erzeugt (weil Passphrase vergessen, Schlüssel kompromittiert, …), ist die Verteilung des neuen Schlüssels durch ein neues RPM mit höherer Versionsnummer sehr einfach über die Standard System Update Mechanismen (Satellite usw.) zu realisieren.
- Wer direkten Root Zugriff hat ist leicht über die RPM Paketliste zu erkennen.
- Scheidet ein Kollege aus, muss nur sein RPM überall deinstalliert werden und schon hat er keinen root Zugriff mehr auf die Systeme.
So funktionierts:
Das Spec File für das ssh rootkey RPM findet ihr hier: ssh-rootkey-_USERNAME_.spec
Einfach überall _USERNAME_ in einen sprechenden Namen austauschen, z.B. ssh-rootkey-hsimpson.spec und die SSHKEY_-Variablen mit den Schlüsselinformationen bestücken und das Spec file ist fertig.
Ein rpm -bb erzeugt dann das entsprechende RPM. Ab ins System Management Tool, auf die Systeme installiert und schon hat der Admin mit seinem Schlüssel Zugriff auf das System.
pam_mount
30. Nov
Wie bereits geschrieben musste ich mir für die “komfortable” Nutzung meines verschlüsselten /home Verzeichnisses etwas neues einfallen lassen. Gesagt getan. Das PAM Modul pam_mount ist Dein Freund. Wenn ich mir das so recht ansehe, ist diese Lösung auch wirklich schön und ich bin ein wenig traurig, dass ich das nicht früher schon einmal gefunden habe – aber egal.
pam_mount ist ein PAM Modul, welches bei der Anmeldung ausgeführt wird. Man kann definieren, welcher Benutzer welches Verzeichnis bei der Anmeldung mountet. Das ganze funktioniert eben auch mit über cryptsetup angelegten Volumes, die mit dem bei der Anmeldung angegebenen Passwort dann auch gemountet werden (sofern das Passwort passt).
Die Einrichtung ist sehr einfach:
-
das Paket libpam-mount installieren
-
unter /etc/security/ die Datei pam_mount.conf.xml als root öffnen
-
nach der Zeile "<!-- Volume definitions -->" eine Definition wie z.B. "<volume fstype="crypt" path="/dev/sda7" mountpoint="/home" options="fsck" />" eintragen
Mit dieser Konfiguration wird bei einer Anmeldung versucht /home auf /dev/sda7 mit dem angegebenen Passwort (das Passwort des Benutzers) zu mounten. Eine Zeile wie
<volume user="testuser" fstype="crypt" path="/dev/sda7" mountpoint="/home/testuser" options="fsck" />
würde entsprechend das ganze nur versuchen, wenn der User testuser sich anmeldet und auch nur dessen Home mounten.
Wichtig zu wissen – für diverse Szenarien – ist, dass man für ein mit cryptsetup eingerichtetes Volume auch mehrere Passwörter vergeben kann. Damit ist es möglich die Konfiguration des ersten Beispiels für mehrere Benutzer einzurichten. Ebenfalls wichtig ist, dass wenn man das Passwort ändert, man ebenfalls das Passwort des verschlüsselten Laufwerks ändern muss (das geschieht über … addkey, … remove key).


