Desktop-Anmeldung und Linux-Benutzerauthentifizierung#
✓ |
✓ |
✓ |
✓ |
⨯ |
⨯ |
⨯ |
✓ |
Einführung#
This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f
and Nitrokey FIDO2.
Wenn Sie sich mit Nitrokey Pro 2 an Ihrem Computer anmelden möchten, Nitrokey Storage 2 und Nitrokey Start können Sie die Anleitungen besuchen, die hier verfügbar sind.
Anforderungen#
Ubuntu 20.04 mit Gnome Display Manager.
Nitrokey FIDO2 konfiguriert nach diese Anweisungen.
Anweisungen#
GUI-Methode#
Klicken Sie in der unteren linken Ecke auf
Show Applications
und geben Sie in der Suchleiste folgende Einstellungen ein:Runterblättern in der rechten Leiste bis
Users
In der linken Ecke klicken Sie auf
Unlock
und werden dann zur Eingabe Ihres Passworts aufgefordertWählen Sie
Administrator
und geben Sie den Benutzernamen und das Passwort Ihrer WahlSobald Sie Schritt 4 beendet haben, sollten Sie fertig sein
CLI-Methode#
Erstellen Sie einen Backup-Benutzer und geben Sie ihm Root-Rechte
Sie können dies mit den folgenden Befehlen tun:
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Falls Sie es vorziehen, U2F für einen einzelnen Benutzer einzurichten, und aus Ihrer Benutzersitzung ausgesperrt werden, können Sie sich trotzdem mit dem
<backup_user>
anmelden und mit der Wartung fortfahren.Warnung
Die folgende Anleitung kann Sie möglicherweise von Ihrem Computer aussperren. Sie sollten sich dieser Risiken bewusst sein, denn es wird empfohlen, die folgenden Anweisungen zuerst auf einem zweiten Computer oder nach einer vollständigen Sicherung anzuwenden.
Nach der Konfiguration der PAM-Module verlieren Sie möglicherweise den Zugriff auf Ihre Daten.
Einstellen des
rules
zur Erkennung des Nitrokey FIDO2Unter
/etc/udev/rules.d
laden Sie41-nitrokey.rules
herunter$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
Und starten Sie den
udev
-Dienst neu$ sudo systemctl restart udev
Install
libpam-u2f
Unter Ubuntu 20.04 ist es möglich, direkt
libpam-u2f
aus den offiziellen Repos herunterzuladen$ sudo apt install libpam-u2f
Bemerkung
Klicken Sie für weitere Optionen
Alternativ können Sie
libpam-u2f
aus Git erstellen.Um zu überprüfen, ob die Bibliothek richtig installiert ist, geben Sie den folgenden Befehl ein:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Die Ausgabe sollte in etwa wie folgt aussehen:
/lib/x86_64-linux-gnu/security/pam_u2f.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),\ dynamically linked, BuildID[sha1]=1d55e1b11a97be2038c6a139579f6c0d91caedb1, stripped
Vorbereiten des Verzeichnisses
Erstellen Sie
.config/Nitrokey/
unter Ihrem Home-Verzeichnis$ mkdir ~/.config/Nitrokey
Und schließen Sie Ihren Nitrokey FIDO2 an.
Sobald wir mit den Vorbereitungen fertig sind, können wir damit beginnen, den Computer so zu konfigurieren, dass er Nitrokey FIDO2 für die 2nd-Factor-Authentifizierung beim Login und
sudo
verwendet.Generieren Sie die U2F-Konfigurationsdatei
Um die Konfigurationsdatei zu erzeugen, verwenden wir das
pamu2fcfg
-Dienstprogramm, das mit derlibpam-u2f
mitgeliefert wird. Der Einfachheit halber werden wir die Ausgabe des Dienstprogramms direkt in die Dateiu2f_keys
unter.config/Nitrokey
schreiben. Schließen Sie zunächst Ihren Nitrokey FIDO2 an (falls noch nicht geschehen), und geben Sie den folgenden Befehl ein:$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
Sobald Sie den obigen Befehl ausführen, müssen Sie die Taste berühren, während sie blinkt. Sobald dies geschehen ist, wird
pamu2fcfg
seine Ausgabe an dieu2f_keys
im folgenden Format anhängen:<username>:Zx...mw,04...0a
Beachten Sie, dass die Ausgabe viel länger sein wird, aber sensible Teile wurden hier entfernt. Zur besseren Sicherheit und nachdem die Konfigurationsdatei erzeugt wurde, verschieben wir mit diesem Befehl das Verzeichnis
.config/Nitrokey
unter das Verzeichnisetc/
:$ sudo mv ~/.config/Nitrokey /etc
Tipp
Die Datei unter
.config/Nitrokey
muß den Namenu2f_keys
tragenEs wird empfohlen, die Anweisungen zunächst mit einem einzelnen Benutzer zu testen. Zu diesem Zweck nimmt der vorherige Befehl die Option
-u
, um einen Benutzer anzugeben, wie im folgenden Beispiel:$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
Für eine individuelle Benutzerkonfiguration sollten Sie im nächsten Schritt auf das Home-Verzeichnis verweisen, oder die Option
authfile
nicht in die PAM-Konfiguration aufnehmen.
Backup
Dieser Schritt ist optional, es wird jedoch empfohlen, einen Backup-Nitrokey für den Fall des Verlusts, Diebstahls oder der Zerstörung Ihres Nitrokey FIDO zu haben.
Um einen Backup-Schlüssel einzurichten, wiederholen Sie die obige Prozedur und verwenden
pamu2fcfg -n
. Dadurch wird das Feld<Benutzername>
weggelassen, und die Ausgabe kann wie folgt an die Zeile mit Ihrem<Benutzername>
angehängt werden:<username>:Zx...mw,04...0a:xB...fw,04...3f
Modifizieren Sie das steckbare Authentifizierungsmodul
PAM
Der letzte Schritt ist die Konfiguration der PAM-Modul-Dateien unter
/etc/pam.d/
. In dieser Anleitung werden wir die Dateicommon-auth
modifizieren, da sie die Authentifizierungseinstellungen verwaltet, die für alle Dienste gleich sind, aber andere Optionen sind möglich. Sie können die Datei mit dem folgenden Befehl ändern:$ cd /etc/pam.d $ sudo $editor common-auth
Fügen Sie die folgenden Zeilen am Anfang der Datei ein:
#Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue prompt nouserok
Tipp
Da wir das Central Authentication Mapping verwenden, müssen wir
pam_u2f
den Ort der zu verwendenden Datei mit der Optionauthfile
mitteilen.Wenn Sie oft vergessen, den Schlüssel einzulegen, können Sie mit der Option
prompt
den AusdruckInsert your U2F device, then press ENTER
verwenden, um Ihnen die Möglichkeit zu geben, den Nitrokey einzulegen.Wenn Sie dazu aufgefordert werden möchten, den Nitrokey zu berühren, bewirkt die Option
cue
, daßpam_u2f
die MeldungBitte berühren Sie das Gerät
ausgibt.nouserok“ stellt sicher, dass Sie sich weiterhin mit dem Benutzernamen und dem Passwort anmelden können. Vielleicht möchten Sie diese Option irgendwann entfernen, wenn die Einrichtung funktioniert und Sie sich nicht mehr regelmäßig mit Benutzernamen und Passwort anmelden möchten.
Nachdem wir die
common-auth
modifiziert haben, können wir die Datei speichern und beenden.Sie können die Konfiguration testen, indem Sie
sudo ls
im Terminal eingeben. Sie sollten die MeldungBitte berühren Sie das Gerät.
erhalten und eine ähnliche Ausgabe im Terminal haben:nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
Sie können Ihre Konfiguration auch testen, indem Sie sich von der Benutzersitzung abmelden und wieder anmelden. Ein ähnlicher Bildschirm sollte angezeigt werden, wenn Sie Ihren Nitrokey FIDO2 aus- und wieder einstecken und Ihr Passwort eingeben:
Verwendung#
Nach der Änderung des PAM-Moduls können Sie Ihre Konfiguration sofort testen, es wird jedoch empfohlen, den Computer neu zu starten und den Nitrokey FIDO2 auszustecken/anzustecken.
Wenn Sie die Anweisungen in dieser Anleitung ordnungsgemäß getestet (und ein Backup eingerichtet) haben, wird empfohlen, entweder das Steuerflag required
oder das Steuerflag requisite
anstelle von sufficient
zu verwenden.
Die Flags required
und requisite
sorgen für eine strengere Zugriffskontrolle und machen den Nitrokey FIDO2 notwendig, um sich anzumelden und/oder den konfigurierten Dienst zu nutzen.
Wenn Sie weitere Informationen über Kontrol-Flags in der PAM
-Konfigurationszeile benötigen, können Sie den letzten Abschnitt dieses Leitfadens lesen, um den Unterschied und die Auswirkungen der Verwendung der einzelnen Flags zu verstehen.
PAM-Module#
Es gibt mehrere PAM-Modul-Dateien, die Sie nach Ihren Bedürfnissen anpassen können:
Wenn Sie die Datei
/etc/pam.d/common-auth
modifizieren, können Sie Ihren Nitrokey FIDO für die Authentifizierung mit dem zweiten Faktor für die grafische Anmeldung undsudo
verwenden. Anmerkung:common-auth
sollte modifiziert werden, indem die zusätzliche Konfigurationszeile am Ende der Datei hinzugefügt wird.If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the
/etc/pam.d/gdm-password
Alternativ können Sie auch einfach die Datei
/etc/pam.d/sudo
modifizieren, wenn Sie FIDO U2F bei der Verwendung dessudo
-Befehls verwenden möchten.
Kontrollflaggen#
In Schritt 7 haben wir das Steuerflag sufficient
verwendet, um das Verhalten des PAM-Moduls zu bestimmen, wenn der Nitrokey eingesteckt ist oder nicht. Es ist jedoch möglich, dieses Verhalten durch Verwendung der folgenden Kontrollflags zu ändern:
required
: Dies ist das kritischste Flag. Das Modulergebnis muss erfolgreich sein, damit die Authentifizierung fortgesetzt werden kann. Dieses Flag kann Sie von Ihrem Computer aussperren, wenn Sie keinen Zugriff auf den Nitrokey haben.requisite
: Ähnlich wierequired
, jedoch wird in dem Fall, dass ein bestimmtes Modul einen Fehler zurückgibt, die Kontrolle direkt an die Anwendung oder an den übergeordneten PAM-Stack zurückgegeben. Dieses Flag kann Sie auch aus Ihrem Computer aussperren, wenn Sie keinen Zugriff auf den Nitrokey haben.sufficient
: Das Modulergebnis wird ignoriert, wenn es fehlschlägt. Dassufficient
-Flag gilt als sicher für Testzwecke.optional
: Der Erfolg oder Misserfolg dieses Moduls ist nur dann wichtig, wenn es das einzige Modul im Stack ist, das mit diesem Service+Typ verbunden ist. Dasoptional
-Flag wird als sicher für Testzwecke angesehen.
Warnung
Wenn
required
oderrequisite
gesetzt ist, führt das Scheitern der U2F-Authentifizierung zu einem Scheitern der gesamten Authentifizierung. Der Fehler tritt auf, wenn der konfigurierte Nitrokey FIDO nicht eingesteckt, verloren oder zerstört ist.Sie werden den Zugriff auf Ihren Computer verlieren, wenn Sie das PAM-Modul falsch konfiguriert und die Flags
required
oderrequisite
verwendet haben.Sie werden auch die Möglichkeit verlieren,
sudo
zu benutzen, wenn Sie das Central Authentication Mapping einrichten und die Flagsrequired
oderrequisite
benutzen.