L | F | D | W |
|
|---|---|
|
Yubikeys und Login in Fedora Linux Eine Möglichkeit 2FA zu verwenden sind FIDO2-Hardwaretoken. Neben anderen Anbietern gibt es von Yubico, einem schwedischen Startup, Token - die Yubikeys. Fedora unterstützt diese und man kann das benötigte PAM-Plugin direkt installieren. Auch die Konfiguration ist nicht sonderlich aufwendig. Um solche Token einzusetzen, gibt es viele Möglichkeiten. Einige möchte ich hier zeigen. Aber ein Wort der Warnung sollte angebracht sein. Man sollte immer einen Useraccount ohne zusätzlichen Aufwand einer 2FA bereitstellen. Ein Konfigurationsfehler, Updates oder andere Umstände und man kommt auf seinen eigenen PC nicht mehr. Dabei hilft natürlich, dass mit PAM die einzelnen LOGIN-Methoden einzeln für 2FA eingerichtet werden müssen. Es ist daher zu überlegen, wofür man den Token einsetzt, und wo nicht. Nun, jetzt erstmal zum Token. Dieser ist ein USB-A Connector der an jeden handelsüblichen Anschluss passt. Ein Bild findet ihr über die Website von Yubico (https://www.yubico.com/). Zur Installation Hier werden wir drei Pakete installieren, von denen wir später noch Gebrach machen werden. Dabei ist pam_yubico das eigentliche PAM-Module und die beiden anderen zum Erstellen und Exportieren von Verschlüsselungen des Yubikeys. $ sudo dnf install ykclient* ykpers* pam_yubico* FÜr alle die SE-Linux verwenden muss noch die Registrierung gesetzt werden. $ setsebool -P authlogin_yubikey 1 Als Nächstes müssen wir uns aussuchen, wo wir den Token jetzt verwenden wollen. Da können wir zunächst das Konsolen-Login (F1-F6) verwenden. Das wäre dann /etc/pam.d/login. In den beschriebenen Konfigurationen werde ich immer das PAM-Module login verwenden. Jedoch ist die Konfiguration für alle anderen Module sehr ähnlich. Wenn es Unterschiede gibt, weise ich darauf hin. Der erste Hinweis ist der Speicherort der Konfiguration. Es ist möglich userbezogen im Home-Verzeichnis oder systemweit eine Konfiguration vorzunehmen. Manche PAM-Module setzen dabei eine Konfiguration im Home-Verzeichnis voraus, andere wieder systemweit oder auch beides. Das muss im Bedarfsfall recherchiert werden. Wie bereits geschrieben sollte immer eine zweite Loginmethode ohne 2FA vorhanden sein. Wenn wir das Module login konfigurieren, sollte z.B. eine GUI mit Login noch vorhanden sein, oder eine andere Konsole F1-F6 in der man sich bereits angemeldet hat und es auch bleibt. Sonst kann man sich komplett aussperren. Also fangen wir mal an. 1. Login mit OTA (One-Time-Passwords) Die Konfiguration des Pam-Moduls sollte wie folgt aussehen. #auth required pam_yubico.so debug id=1 authfile=/etc/yubikeys Wie oben bereits eingetragen, muss die Zeile an der ersten Position eingefügt werden. Dabei ist id=1 ein Standardeintrag, gefolgt von einer Datei, die unseren Benutzer und die dazugehörige ID enthält. Dazu später. Zusätzlich gibt es noch debug. Damit können wir während des Loginvorgangs uns detaillierte Informationen ausgeben lassen. In der Konfigurationsphase ist das ganz nützlich. Das können wir nachher wieder entfernen, also debug wieder aus der Datei löschen. Wie kommen wir zu ID des Tokens? Der steht nicht auf der Verpackung, daher müssen wir ihn auslesen. Da kommt der Debug-Mode in der PAM Konfiguration zum Einsatz. Es gibt mehrere Methoden jetzt an die ID zu gelangen. Hier habe ich die einfachste gewählt und die war auch sehr erfolgreich. Wir Öffnen eine Konsole, stecken den Token in den USB-Slot und wenn das kleine Y-Symbol leuchtet, einen OTP generieren. Dann sollte auf der Konsole ein Eintrag wie den folgenden zu finden sein. $ cccccbdrtiufikefvnictrljbflrkrijelvgjijuugkh Die Zahlenfolge besteht aus 44 Zeichen, von denen die erste 12 Zeichen die Token-ID bilden. Diese müssen wir nun in der Konfigurationsdatei /etc/yubikeys mit einem Benutzer verknüpfen. Der Inhalt ist einfach aufgebaut User:Token-ID. $ vim /etc/yubikeys Mit haben einen User mit der ID verknüpft. Um jetzt noch zu verhindern, dass Unbefugte die Datei auslesen können, setzen wir mit chmod 0400 auf die Datei den Lesezugriff nur für Root. Damit können wir schon einmal versuchen, uns an der Console anzumelden. Fedora Linux 36 ( Workstation Edition) Anschließend steht eine neue Information: Yubikey for test. Jetzt ist nur noch ein Auslösen eines OTPs am Token erforderlich und man ist eingeloggt. Natürlich kann man zusätzlich noch die normale Passwortabfrage hinzu konfigurieren, sodass man mit Token und Passwort sich anmelden muss. Dazu wird in der PAM-Datei sufficient durch required ersetzt. Ein auskommentierter Eintrag ist oben eingetragen. 2. Mode=Client, 2FA mit Yubicloud Eine weitere Möglichkeit ist die zusätzliche Onlineüberprüfung gegen einen Online-Service. Die Yubicloud bietet es an, einen API Key zu registrieren. Dazu geht man auf folgende Seite https://upgrade.yubico.com/getapikey/. Dort trägt man eine E-Mailadresse ein und einen OTP seines Yubikeys ein und man erhält danach eine ID und eine API-Key. Beides benötigen wir nun. In der PAM-Konfigdatei muss die folgende Zeile an erster Position stehen. auth sufficient pam_yubico.so id=73488 key=a4XEk6k7SBMk8675TzZff4345677Io= authfile=/etc/yubikeys debug debug_file=/var/log/yubikey-auth.log Wer SELinux verwendet muss noch das Modul um die Yubicloud zu verwenden registrieren. sudo setsebool -P allow_ypbind=1 Im PAM-Modul kann man zusätzlich debug einschaltet und ein entsprechendes Logfile definieren, um die LOGIN-Informationen zu speichern und zu prüfen, ob alles funktioniert oder Fehler auftreten. Damit wird bei jedem Login gegen das Service von Yubicloud authentifiziert. Da dies eine Onlineauthentifizierung darstellt, ist ein permanenter Internetzugang erforderlich. Da das nicht immer möglich oder gewünscht ist, wäre die nächste Möglichkeit besser geeignet. 3. Mode Challenge-Request Authentification Das ist eine Offline-Authentifizierung, bei der mit dem HMAC-SHA1-Algorithmus eine Yubikey Konfiguration auf dem SLOT 2 des Yubikeys gesetzt wird. Zunächst prüfen wir, ob eine Yubikey im USB-Slot steckt und gelesen werden kann. Wenn das fehlschlägt, kommt eine Meldung Yubikey core error: no yubikey present. $ ykinfo -v Jetzt können wir auf dem Slot 2 eine Konfiguration schreiben. ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible Um eine Authentifizierung durchführen zu können, schreiben wir die erstellte Konfiguration in das Homeverzeichnis des Benutzers. ykpamcfg -2 -v Als Letztes noch das PAM-Modul konfigurieren mit folgender Zeile an erster Position. auth required pam_yubico.so mode=challenge-response Damit wären wir fertig. Wenn der Yubikey im USB-Slot steckt, kann abhängig ob required oder sufficient im PAM-Modul steht, ist mit Passwort oder passwortlos eine Anmeldung möglich. SELInux benötigt jetzt noch eine Registrierung. $ setsebool -P authlogin_yubikey 1 Das wär es von meiner Seite. Fehler und spezifische Konfigurationsanforderungen müsssen selbst in Erfahrung gebracht werden. Bei mir zumindest hat das hier zum Erfolg geführt. Weitere Quellen und Suchbegriffe: yubikey, 2FA, pam_yubico, selinux,(https://www.yubico.com/). geändert, 18. Nov 2022, 23:51 Copyright © 2025 by Philipp |
|