Authentifizierung mit USB-Stick
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Übersicht¶
PAM steht für Pluggable Authentication Modules. Durch die Nutzung von PAM-Modulen ist man in der Lage, verschiedene Authentifizierungsmechanismen unter Linux zu implementieren. Zum Beispiel: Kerberos, LDAP, Public-Key-Authentication oder Smartcards. Das hier vorgestellte PAM-Modul ermöglicht es dem Benutzer, sich mit einem handelsüblichen USB-Stick am System zu authentifizieren.
Wie funktioniert pamusb?¶
Für die Authentifizierung wird auf dem USB-Stick im Verzeichnis .pamusb der öffentliche Schlüssel "benutzer.pad" abgelegt. Im Homeverzeichnis des Benutzers liegt im versteckten Ordner .pamusb der private Schlüssel "MeinStick.pad".
Für den Zugang werden noch der Hersteller des Sticks sowie die Produktbezeichnung und Seriennummer hinzugezogen.
Hinweis:
Ein einfaches Kopieren des Schlüssels reicht also nicht aus, um Zugang zum System zu erhalten.
Das pamusb-Modul arbeitet mit Applikationen, die PAM unterstützen, zusammen z.B. sudo, Displaymanager wie GDM und KDM, etc.
Installation ab Gutsy¶
Seit Ubuntu 7.10 Gutsy Gibbon kann pamusb über die Paketverwaltung installiert werden [1]:
libpam-usb (universe, [6])
pamusb-tools (universe)
Installation unter Feisty¶
Für die Kompilierung von pamusb müssen folgende Pakete installiert [1] werden:
libncurses5-dev
libreadline5-dev
libssl-dev
libpam0g-dev
libxml2-dev
libhal-storage-dev
python-elementtree
Paketliste zum Kopieren:
sudo apt-get install libncurses5-dev libreadline5-dev libssl-dev libpam0g-dev libxml2-dev libhal-storage-dev python-elementtree
Die aktuelle Version von pamusb kann hier 🇬🇧 heruntergeladen werden. Nach dem Entpacken [5] von pamusb kann das Programm kompiliert [4] werden.
Konfiguration¶
Um nun mit der Konfiguration fortzufahren, ist es notwendig, den USB-Stick einzustecken und ein Terminal [2] zu öffnen.
USB-Stick hinzufügen¶
Mit pamusb-conf
kann nun der USB-Stick der /etc/pamusb.conf hinzugefügt werden. Dazu ist folgender Befehl notwendig:
sudo pamusb-conf --add-device MeinStick Please select the device you wish to add. * Using "Philips USB Flash Drive (1234567890123456)" (only option) Which volume would you like to use for storing data ? * Using "/dev/sdb1 (UUID: E8ED-3F91)" (only option) Name : MeinStick Vendor : Philips Model : USB Flash Drive Serial : 1234567890123456 UUID : E8ED-3F91 Save to /etc/pamusb.conf ? [Y/n] Y Done.
Die Frage, ob die Daten der /etc/pamusb.conf hinzugefügt werden sollen, bestätigt man mit Y . Um weitere USB-Sticks der Konfiguration hinzuzufügen, ist der Befehl zu wiederholen.
Benutzer hinzufügen¶
Mit pamusb-conf
kann nun der /etc/pamusb.conf ein Benutzer hinzugefügt werden.
sudo pamusb-conf --add-user benutzer Which device would you like to use for authentication ? * Using "MeinStick" (only option) User : benutzer Device : MeinStick Save to /etc/pamusb.conf ? [Y/n] Y Done.
Die Frage, ob der Benutzer der /etc/pamusb.conf hinzugefügt werden soll, bestätigt man mit Y . Um weitere USB-Sticks der Konfiguration hinzuzufügen ist der Befehl zu wiederholen.
Um zu prüfen, ob alles richtig angelegt wurde, nutzt man den Befehl pamusb-check
, der die Authentifizierung simuliert.
pamusb-check benutzer * Authentication request for user "benutzer" (pamusb-check) * Device "MeinStick" is connected (good). * Performing one time pad verification... * Verification match, updating one time pads... * Access granted.
Konfiguration der Authentifizierung¶
Um nun die Authentifizierung zu aktivieren, muss die Datei /etc/pam.d/common-auth angepasst werden. Dazu öffnet man die Datei mit Root-Rechten in einem Editor [3] und ändert den Inhalt der Datei
von:
auth required pam_unix.so nullok_secure
in:
auth required pam_usb.so auth required pam_unix.so nullok_secure
Ab jetzt ist eine Anmeldung am System nur noch mit dem Benutzer-Kennwort und dem USB-Stick möglich. Dies kann man in einem Terminal [2] testen:
sudo -i Password: root@bernie:~#
Nach der Eingabe des Passwortes ist man nun root.
Die Datei /var/log/auth.log zeigt die korrekte Authentifizierung mit dem Kennwort und dem USB-Stick an.
tail -n 5 /var/log/auth.log Jul 15 20:45:44 bernie pam_usb[6732]: pam_usb v0.4.1 Jul 15 20:45:44 bernie pam_usb[6732]: Authentication request for user "benutzer" (sudo) Jul 15 20:45:44 bernie pam_usb[6732]: Device "MeinStick" is connected (good). Jul 15 20:45:44 bernie pam_usb[6732]: Access granted. Jul 15 20:45:48 bernie sudo: benutzer : TTY=pts/0 ; PWD=/ ; USER=root ; COMMAND=/bin/bash
pamusb-agent¶
Der pamusb-agent ermöglicht das automatische Ausführen von Befehlen. Damit ist es z.B. möglich, den Bildschirm durch das Entfernen des USB-Sticks zu sperren.
Beispiel für das automatische Sperren des Bildschirms beim Entfernen des USB-Sticks: Hierfür wird die /etc/pamusb.conf in der Sektion "users" angepasst. Diese ist mit Root-Rechten in einem Editor [3] zu öffnen.
<user id="benutzer"> <!-- Der Benutzer für den die Einstellung gelten soll --> <device>MeinStick</device> <!-- Der USB-Stick der vom Benutzer genutzt wird --> <option name="quiet">true</option> <!-- kein ausführlicher Output --> <agent event="lock">gnome-screensaver-command --lock</agent> <!-- Sperren des Bildschirms --> <agent event="unlock">gnome-screensaver-command --deactivate</agent> <!-- Entsperren des Bildschirms --> </user>
Um nun den pamusb-agent auch unter GNOME nutzen zu können, muss dieser dem Autostart hinzugefügt werden.
Fehlermeldung beim Ausführen von pamusb-agent¶
Es kann beim Ausführen von pamusb-agent zu folgendem Fehler kommen:
Traceback (most recent call last): File "/usr/bin/pamusb-agent", line 30, in <module> import xml.elementtree.ElementTree as et ImportError: No module named elementtree.ElementTree
Sollte dies der Fall sein, muss die Datei /usr/bin/pamusb-agent gefixt werden. Dazu öffnet man sie mit Root-Rechten in einem Editor [3] und sucht nach folgender Zeile (laut Fehlertext Zeile 30):
import xml.elementtree.ElementTree as et
Diese ändert man in:
import xml.etree.ElementTree as et
Anschließend den pamusb-agent normal starten.
Weitere Einstellungen der /etc/pamusb.conf sind auf dieser Seite 🇬🇧 zu finden:
Achtung!
Anmeldung ohne USB-Stick:
Um sich wieder ohne USB-Stick am System anmelden zu können, entfernt man die Zeile
auth required pam_usb.so
aus der Datei /etc/pam.d/common-auth.
Links¶
Pamusb Quickstart 🇬🇧 - Kurzanleitung zur Einrichtung von pamusb