• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Howto login mit dem Yubikey

stka

Guru
Ich will heute mal ein kleines Howto schreiben zum Thema Yubikey. Schon vor einiger Zeit habe ich mir einen Yubikey Serie 5 gekauft (eigentlich drei davon). Warum drei? Einer steckt am Desktop, der zweite ist mit unterwegs für's Notebook und einer ist sicher als Backup abgelegt, für den Fall, dass mal einer oder, im schlimmsten Fall, zwei. Auf jeden Fall solle man sich immer mindestens zwei zulegen, denn die Sticks lassen sich NICHT kopieren. Das würde auch gegen das Sicherheitskonzept gehen.
Der Serie 5 key kann sowohl OTP, als auch challage-response. Da der Key zwei Slots hat, kann man beide Verfahren auf ein und den selben Stick einrichten. Was ich auch gemacht habe. Warum und wieso? Da der Yubikey keine eigene Zeitquelle hat, klappt OTP nur über einen Server im Netz, für den man natürlich eine Netzwerkverbindung (wenn der yubikey-Server verwendet werden soll dann eine Internetverbindung). Also hat man, gerade mit einem Notebook das Problem, dass man mal kein Netz hat. Für den Fall kann man das Login als Fallback über challenge-response realisieren. Ich habe bei mir auch beides eingerichtet. Auch braucht man challage-response für die Anmeldung an der keepassxc-Datenbank. Denn dann braucht man auch kein Passwort mehr für die keepass-DB :). Ich bin alt,ich will mir keine Passwörter mehr merken müssen.
Also, los geht es:
1. Anpassen von udev:
von der Webseitehttps://support.yubico.com/support/solutions/articles/15000006449-using-your-u2f-yubikey-with-linux die Datei 70-u2f.rules herunterladen und ins Verzeichnis /etc/udev/rules.d/ kopieren und udev neustarten oder neu booten.
Jetzt kommt der Schritt der Distributionsabhängig ist. Ich verwende Ubuntu, für andere Distributionen müsst ihr mal sehen wie ihr an die Pakte kommt.
also erst das Repository installieren:
Code:
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install libpam-yubico yubikey-personalization-gui
Jetzt den yubikey in den USB-Port stecken und die Taste drücken. Dann kommt sowas:
Code:
 stefan > ccccccldrbkelerneubhlbiffnvjdkuhfgbvebrtcldk  
zsh: command not found: ccccccldrbkelerneubhlbiffnvjdkuhfgbvebrtcldk
im nächsten Schritt die ID festlegen mit der personalization-gui
- klick auf "Yubico OTP"
- Slot 1 auswählen und auf "write Configuration" klicken. Die Warnung kann einfach mit "yes" bestätigt werden.
- Configuration speichern
- Klick auf "Upload to yubico" sonst funktioniert OTP nicht!!!
- Nochmal auf einer Konsole den Knopf am yubikey betätigen und das OTP in die Webseite kopieren.
- Dann den key hochladen
- Auf der Testwebseite die Authentifizierung prüfen
- Public-ID aufschreiben
- Dann auf der Webseite https://upgrade.yubico.com/getapikey/ einen API-key anfordern
ID und secret speichern GAAAAAANZ wichtig!!!
- Auf Webseite https://developers.yubico.com/yubico-pam/ und zu "Central authorization mapping" gehen
- Datei "/etc/yubikey_mappings" erstellen und für jeden Benutzer mit seinen Schlüsseln (mindestens 2 ) eintragen
Die ID die dort eingetragen werden muss sind die ersten 12 Zeichen des OTP (Auch als "Public ID" bezeichnet)
stefan:abcdefhijkl:<zweite-id>
- Jetzt muss die Datei /etc/pam.d/common-auth angepasst werden. VORSICHT immer ein "root-Konsole" geöffnet lassen beim Ändern von PAM-Dateien!
Für jeden yubikey muss ein Zeile mit der ID eingetragen werden:
auth sufficient pam_yubico.so id=12345 authfile=/etc/yubikey_mappings
auth sufficient pam_yubico.so id=54321 authfile=/etc/yubikey_mappings
- Persönliche Anpassung in .yubicon/authorized_yubikeys
stefan:abcdefhijkl:<zweite-id>
- Jetzt auf eine Konsole mit strg+alt+F3 gehen und die Anmeldung testen
- Jetzt sollte auch bei der GUI Anmeldung der yubikey funktionieren
- Bis zu diesem Zeitpunkt geht noch die Anmeldung mit Passwort und yubikey
- In der Datei /etc/pam.d/common-auth die folgenden Zeile auskommentieren:
#auth [success=1 default=ignore] pam_unix.so nullok_secure
Dann ist die Anmeldung mit Passwort nicht mehr möglich
Ein "debug" am Ende der Zeile hilft bei der Fehlersuche

Wenn ihr auch ssh mit dem yubikey machen wollt dann noch in der /etc/ssh/sshd_config
Code:
 ChallengeResponseAuthentication no
setzen.
Jetzt noch challange-respons einrichten. Das geht am einfachsten mithilfe der Webseite https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html
Auch das hier lesen:
https://www.yubico.com/wp-content/uploads/2016/06/YubiKey_Identical_Credentials_ConfigGuide_en.pdf
Die GUI erst schließen wenn ihr alles eure yubikeys geschrieben habt, so könnt ihr alle keys identisch einrichten.
- In der personalization-gui auf "challange-Response" klicken und "HMAC-SHA1" auswählen
den zweiten Slot des yubikeys auswählen
auf "Generate" klicken
Die Auswahl ist wichtig für keepasscx!

Dann habt ihr mindestens zwei Keys eingerichtet. Einen wegschließen und einen nutzen :)

Jetzt noch zu keepasscx:

Dazu schaut ihr auf die Webseite https://keepassxc.org/docs/#faq-yubikey-2fa

Das war es schon.
Wollt ihr mehrere Rechner mit ein und dem selben Key nutzen, ist das recht einfach. Kopiert einfach alle im Howto erstellten Dateien auf den nächsten Rechner und das war es schon.
Die Anmeldung für Windows kann man mit der selben Konfiguration des Keys nutzen. Nur habe ich kein Windows und kann euch dazu nichts sagen :)

Ein Tipp noch. Seht zu, dass ihr in das GRUB-Bootmenü kommt um eventuell mit "init=/bin/bash" ohne Runlevel zu starten um im Notfall möglichst einfach in der pam-Datei die Yubikey-Authentifizierung zu deaktivieren. Wenn später alles läuft kann man den Bootmanger natürlich noch mit einem Passwort schützen, dass das nicht mehr so einfach möglich ist. Aber so habt ihr die Möglichkeit immer wieder zurück rudern zu können.

Viele Spaß mit der Umstellung. Ich kann nur sagen:Für mich hat es sich gelohnt. Kein Passwort mehr eingeben, weder für die Anmeldung noch für irgendwelche Webseiten.

Leider kann der gnome-keyring und die kwallet nicht damit entschlüsselt werden. Da ich aber keine Passwörter dort verwalte und auch im Browser keine Passwörter mehr gespeichert sind, ist das Passwort bei mir leer und somit kommt auch keine Abfrage.
 
Oben