[[Getestet(gutsy,feisty)]]
[[Fortgeschritten]]
{{{#!Wissen
* [1]: [:Pakete installieren: Installation von Programmen]
* [2]: [:Terminal: Ein Terminal öffnen]
* [3]: [:Editor: Einen Editor öffnen]
* [4]: [:Programme kompilieren: Pakete aus dem Quellcode erstellen]
* [5]: [:Packprogramme: Archive entpacken]
* [6]: [:Paketquellen freischalten: Bearbeiten von Paketquellen]
}}}
[[TableOfContents(2)]]
= Übersicht =
[http://de.wikipedia.org/wiki/Pluggable_Authentication_Modules PAM] {de} 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:], [:Loginmanager:] wie [:GDM:] und [:KDM:], etc.
= Installation unter 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'''
[[Pakete(libncurses5-dev,libreadline5-dev,libssl-dev,libpam0g-dev,libxml2-dev,libhal-storage-dev,python-elementtree)]]
Die aktuelle Version von pamusb kann [http://www.pamusb.org/ hier] {en} 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:
{{{#!Befehl
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 [[Tasten(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.
{{{#!Befehl
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 [[Tasten(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.
{{{#!Befehl
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:
{{{#!Text
auth required pam_unix.so nullok_secure
}}}
in:
{{{#!Text
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:
{{{#!Befehl
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.
{{{#!Befehl
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.
{{{#!Text
MeinStickgnome-screensaver-command --lockgnome-screensaver-command --deactivate
}}}
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:
{{{#!Befehl
Traceback (most recent call last):
File "/usr/bin/pamusb-agent", line 30, in
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):
{{{#!Text
import xml.elementtree.ElementTree as et}}}
Diese ändert man in:
{{{#!Text
import xml.etree.ElementTree as et}}}
Anschließend den '''pamusb-agent''' normal starten.
Weitere Einstellungen der '''/etc/pamusb.conf''' sind [http://pamusb.org/doc/configuration auf dieser Seite] {en} zu finden:
{{{#!Warnung
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 =
* [http://pamusb.org/ Homepage von Pamusb] {en}
* [http://www.pamusb.org/doc/quickstart Pamusb Quickstart] {en} - Kurzanleitung zur Einrichtung von pamusb
----
* [:Kategorie/Sicherheit:]
* [:Kategorie/System:]
* [:Kategorie/Hardware:]