Yubikey_with_RFID_in_black

Yubikey

Mit dem Yubikey kann man nicht nur seine Webaccounts, auch der Linux-Login lässt sich absichern.
Der Yubikey ist ein OTP-Token der Firma Yubico, falls ihr das Teil noch nicht kennt.
Beim Login muss der/einer der Yubikeys eingesteckt sein, sonst schlägt der Login trotz richtigem Passwort fehl.
Auch die Plattenverschlüsselung lässt sich einbinden, dazu aber mehr in einem anderen Beitrag.

Um den Yubikey für den Login zu benutzen muss man einige Vorbereitungen treffen.

Dazu brauchts als erstes mal das PAM Yubikey Modul (libpam-yubico).
Ohne das Modul lässt sich der Yubikey nicht in die allgemeine PAM Rotuine einbinden. Das Modul ist aber in so ziemlich jeder Distribution direkt verfügbar.
Befindet man sich auf einem debianiden System geht dies folgendermaßen:

apt-get install libpam-yubikey

Man kann jetzt entscheiden, ob man beim Login die OTP-Funktion nutzt. Dann muss allerdings immer eine Netzverbindung verfügbar sein, um die Yubikey-Server zu erreichen. Da dies ja nicht immer der Fall sein muss, habe ich mich für die Variante entschieden, bei der ein Challenge-Response Verfahren genutzt wird. Dieses muss im zweiten Slot des Yubikeys verankert werden. Slot 1 beherbergt das OTP-Verfahren, Slot 2 ist im Auslieferungszustnad frei.
Also erstmal den zweiten Slot auf Challenge-Response einstellen:


ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible

Um die Challenge Files ablegen zu können, brauchen wir einen entsprechenden Folder:


$ mkdir /var/yubico
$ chmod +t /var/yubico
$ chmod 777 /var/yubico

Jetzt wäre das benötigte Modul schonmal da, jetzt heisst es das Challenge File für den User anzulegen.


ykpamcfg -2 -v -p /var/yubico

Somit wäre die Zuordnung der Tokens fest abgelegt.
Jetzt muss das ganze noch passend in der PAM verankert werden. In einer debianiden Umgebung muss in die /etc/pam.d/common-auth folgende Zeile hinzugefügt werden:

auth required pam_yubico.so debug mode=challenge-response chalresp_path=/var/yubico
Der „debug“ Part muss nicht unbedingt rein, ist aber am Anfang zum testen sehr hilfreich. Dazu sollte man in /var/run ein File anlegen, damit der Output abgelegt werden kann.

touch /var/run/pam-debug.log
chmod go+w >/var/run/pam-debug.log

Danach noch ein PAM-Update durchführen um das yubico Modul zu aktivieren.


$ sudo pam-auth-update

Während der ganzen Konfiguration ist es sehr sinnvoll immer mindestens eine root-shell offen zu haben, falls die Konfiguration einen Fehler hat.