Über das PAM USB Modul kann die Anmeldung am Linux-Computer entweder bequemer oder sicherer gestaltet werden: Bequemer, wenn ein USB-Stick als real existierender „Schlüssel“ zur Anmeldung genügen soll, sicherer, indem neben einem Passwort auch der Besitz eines bestimmten Sticks nachgewiesen werden muss. Die Authentifizierung funktioniert systemweit – also wohl auf dem Anmeldebildschirm als auch in der Konsole z.B. beim Einsatz von „sudo“.
Im folgenden wird die Einrichtung unter Arch Linux erklärt. Der Ablauf ist bei anderen Distributionen sehr ähnlich, daher kann diese Anleitung auch mit anderen Linux Betriebssystemen genutzt werden.
PAM_USB installieren
Das USB PAM Modul ist nicht im offiziellen Arch Repository verfügbar und muss aus dem AUR installiert werden. Ein fertig eingerichtetes Yaourt ist Voraussetzung. Für andere Linux-Distributionen lautet der Paketname ähnlich (Unter Ubuntu Trusty: „libpam-usb“)
yaourt -S pam_usb
Neuen USB Stick konfigurieren
Die Konfiguration kann entweder manuell in der Datei „/etc/pamusb.conf“ vorgenommen werden oder über ein kleines Helferprogramm „pamusb-conf“. Verbindet euren „Schlüssel-Stick“ mit dem Rechner und registriert ihn im System. Gebt ihm eine Bezeichnung wie z.B. „meinstick“.
sudo pamusb-conf --add-device=meinstick
Möglicherweise werdet ihr gefragt, welchen Stick oder welche Partition auf dem USB Stick ihr zur Authentifizierung nutzen wollt. Wählt über die Eingabe der entsprechenden Zahl die gewünschte Partition aus. Bestätigt das Speichern nach /etc/pamusb.conf. Der Stick ist nun registriert und kann mit einem Benutzer („benutzername“) verbunden werden.
sudo pamusb-conf --add-user=benutzername
Wenn ihr bisher nur einen USB Stick registriert habt, habt ihr an dieser Stelle keine weitere Auswahlmöglichkeit – ansonsten könnt ihr hier wählen, welcher Stick zur Anmeldung benutzt werden soll (deshalb wurden für die Sticks Namen vergeben! ;) )
Bestätigt wieder das Speichern in die Konfigurationsdatei.
PAM_USB aktivieren
Damit eine Anmeldung über das USB PAM Modul möglich ist, muss dieses erst aktiviert werden. Öffnet dazu unter Arch Linux die Datei /etc/pam.d/system-auth (auf anderen Systemen evtl. „common-auth“).
sudo nano /etc/pam.d/system-auth
Über der Zeile
auth required pam_unix.so [...]
wird diese neue Zeile eingefügt:
auth sufficient pam_usb.so
Das „sufficient“ bedeutet, dass eine USB-Authentifizierung ausreicht und nicht mehr nach dem Passwort gefragt werden soll. Wer lieber eine zwei-Faktor-Authentifizierung haben will, stellt hier „required“ ein, sodass beides – USB Stick UND Passwort – zur Anmeldung angegeben muss.
Funktion testen
Um die Funktion zu testen, genügt es, das aktuelle Terminal zu schließen, ein neues zu öffnen, und den „sudo -i“ Befehl zu nutzen. Normalerweise wird an dieser Stelle ein Passwort abgefragt. Wenn der Stick verbunden ist, sollte das nun nicht mehr der Fall sein. Der Stick wird erkannt und der Zugang freigegeben „Access granted.“
Der Stick funktioniert sowohl bei der Anmeldung am Computer (z.B. GDM oder Lightdm) als auch bei sudo-Kommandos. Leider unterstützt beispielsweise der Gnome-Keyring keine USB-Authentifizierung, sodass es sein kann, dass man nach dem Login am System weiterhin nach einem Passwort für alle weiteren Schlüssel im Schlüsselbund gefragt wird. Das lässt sich zwar abschalten, indem ein leeres Passwort für den Schlüsselring gesetzt wird, jedoch werden die Passwörter dann nicht mehr verschlüsselt auf der Festplatte abgelegt, was insbesondere auf unverschlüsselten Festplatten ein Problem darstellen kann.
Benutzer oder USB-Stick abmelden
Wenn die PAM-Authentifizierung nicht mehr genutzt werden soll, kann die entsprechende Zeile in der Konfiguration der PAM Module entfernt werden (/etc/pam.d/system-auth bzw. common-auth). Einzelne Sticks oder Benutzer können außerdem aus der Konfigurationsdatei /etc/pamusb.conf entfernt werden (XML-Syntax!). Danach ist für die betroffenen Nutzer keine Anmeldung über USB-Stick mehr möglich.
Noch ein Hinweis zum Schluss:
… weil ich gerade in den Kommentaren daran erinnert wurde: Die beste PAM Authentifizierung nützt im Extremfall nichts, wenn die Festplatte unverschlüsselt ist. Persönliche Daten bzw. die ganze Festplatte sollten vor allem auf mobilen Geräten verschlüsselt sein! Über den Boot von einem Livemedium (physischer Zugriff zum Gerät) kann die PAM Authentifizierung sehr einfach umgangen werden.
http://senderx.de
Hallo Thomas,
toller Post. Bin am überlegen, sowas für meinen Laptop einzusetzen.
Warscheinlich würde ich mir dann gleich ein Image des Sticks mit dd erstellen. Oder was passiert, wenn der Stick mal kaputt/verloren geht?
Toll finde ich aber auch Token Lösung, wie Google Authenticator
https://de.wikipedia.org/wiki/Google_Authenticator
Ich glaube das kann man frei implementieren. Z.B. bietet inwx.de das seinen Kunden zum Login auch an. Und sowas sollte doch auch am Rechner lokal zu hause funktionieren
sonnigen Sonntag wünscht DxU
https://legacy.thomas-leister.de
Ein Backup ist auf alle Fälle vernünftig wenn man ohne nicht mehr reinkommen würde ;)
Wenn du die Einstellung auf „sufficient“ lässt kommst du aber nach wie vor mit Passwort rein – auch wenn der Stick gerade nicht da ist.
Ich hätte eine Frage zum USB-Stick. Was genau benutzt er zur Authentifizierung? (Dateien auf den Stick?) Ist er rein passiv und liest irgendwelche IDs oder schreibt er selbst einen Schlüssel auf den Stick?
https://legacy.thomas-leister.de
Auf dem Stick wird ein versteckter Ordner .pamusb angelegt, in dem eine Datei..pad liegt. Was in der Datei steht, kann ich leider nicht auslesen.
LG Thomas
http://www.quintilianus.eu
Ein Hinweis darauf, dass jede noch so ausgefeilte PAM-Authentifizierung natürlich nicht gegen den physischen Zugriff auf den Datenträger hilft, fehlt noch (Live-USB-Stick dran und fertig, im Extremfall Festplatte ausbauen). Ansonsten ist der Artikel sehr informativ, danke dafür.
Vale,
Quintus
Ist diese Art von Authentifizierung auch mit einer sd card möglich? Bzw kombinierbar mit USB und sd card? Und wie wäre eine live Entschlüsselung denkbar für die Zukunft?
https://legacy.thomas-leister.de
Mit einer SD Karte habe ich es noch nicht versucht, aber ich gehe davon aus, dass das auch mit einer solchen Karte funktioniert. „Einfach ausprobieren“ würde ich sagen ;) Wie man USB und SD kombinieren soll, wüsste ich nicht.
Eine einfache Verschlüsselung (z.B. des Home-Verzeichnisses) ist mit encfs möglich. Wenn es eine richtige Festplattenverschlüsselung sein soll, nutzt man am besten dm-crypt mit LUKS und LVM.
LG Thomas
Ich danke Ihnen für die Antwort. Doch sehe ich bei den Verschlüsselung Methoden keine live encryption ist dies denn überhaupt möglich? Eine Kombination aus sd und USB wäre wirklich interessant auch im Bezug auf die Entschlüsselung sensibler Daten für Journalisten wie es der Herr snowden bereits angesprochen hatte vor wenigen Tagen. Vielleicht wäre es ja möglich etwas technisch tiefer in eine Diskussion zu kommen ich finde dieses Thema sehr interessant. Grüße.
https://legacy.thomas-leister.de
Ein Festplattenverschlüsselung mit dm-crypt und LUKS ist doch eine Live-Verschlüsselung?
Wie dieser Beitrag zeigt, kann man auch LUKS mit einem USB Stick oder einer SD Karte kombinieren: http://possiblelossofprecision.net/?p=300
LG Thomas
Hi. Noch eine kurze Anmerkung.
Niemals das terminal Fenster in dem man noch root rechte hat schließen wenn man an der pam Konfiguration herum spielt. Lieber ein neues Fenster öffnen und dort testen. So kann man wenigstens die Änderung die man gemacht hat ohne große Umwege zurück nehmen. Funktioniert das login nicht mehr und man hat keinen Zugriff mehr wird es schwierig(er) das wieder ans laufen zu bekommen
Hallo Thomas,
ist zwar jetzt Off-Topic, aber für’s Studium kann ich dir auch den Bachelor Internet Computing in Passau empfehlen.
https://www.uni-passau.de/bachelor-internet-computing/
https://legacy.thomas-leister.de
Hi,
danke für deine Anregung. Hab mich aber schon für eine andere Hochschule entschieden ;)
LG Thomas
https://blog.mcdope.org/
Danke für den Tipp!
Unter Ubuntu Trusty hatte ich das Problem das es mit meinem Stick partout nicht funktionieren wollte. Ursache war das der Stick, warum keine Ahnung, ohne Serial reported wurde. Habe dann einen anderen Stick, der mit Serial gemeldet wird, genommen und es klappte.
https://firefoxosundich.wordpress.com
Wenn schon nano, dann bitte richtig!
sudo nano -w /etc/pam.d/system-auth
Andernfalls kann dir Line-Wrapping deine Configs zerschießen.
Würde bei vim natürlich nicht passieren :D
https://legacy.thomas-leister.de
„nowrap“ ist doch default? Zumindest hab ich noch nie was anderes gesehen…
Sehe daher keinen Grund, nochmal extra zwei Zeichen zu tippen :P
LG Thomas
Hey Danke für den Tip!
Kleine Anmerkungen noch: der unter Mint und Manjaro Linux per default genutzte Display Manager MDM, kann pam_usb scheinbar nicht. Ich bin deswegen unter Manjaro auf LightDM umgestiegen. Hier gibts eine Anleitung wie das geht:
Manjaro: Install Display Managers
Weiterhin erscheint es mir sinnvoll automatisch den Login zu überspringen, wenn der USB Stick angesteckt ist, damit gar nicht erst noch auf Login geklickt werden muss. Wie das geht ist unter
highmem.blogspot.de
beschrieben. Im Grunde muss die Datei /etc/pam.d/-autologin in einer Zeile angepasst werden.
Grüße,
tuxflo