Files
thpeetz-notes/Quellen/IT/Yubikey anstelle von Passwörtern verwenden.md
T

9.8 KiB
Raw Blame History

title, source, tags
title source tags
Yubikey anstelle von Passwörtern verwenden Howto Wiki ubuntuusers.de https://wiki.ubuntuusers.de/Howto/Yubikey_anstelle_von_Passw%C3%B6rtern_verwenden/
IT/OS/Linux/Ubuntu
IT/Sicherheit
IT/OS/Linux

Yubikey anstelle von Passwörtern verwenden Howto Wiki ubuntuusers.de

Achtung!

Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.

Hinweis:

Diese Howto-Anleitung wurde zuletzt von Saptah am 05.12.2020 unter Ubuntu 18.04 mit einem Yubikey 5 NFC erfolgreich getestet.

Problembeschreibung

Mit Hilfe eines Yubikey ist es möglich sich ohne Passwort oder zusätzlich zum eigenen Passwort dem System zu authentifizieren. Der Yubikey wird wie ein USB-Stick angeschlossen und nach Gebrauch wie ein echter Schlüssel durch den Anwender verwahrt. Das eintippen eines Passwortes entfällt also. Diese Anleitung soll die Verwendung des Yubikey unter Ubuntu demonstrieren.

Anleitung

Zunächst muss libpam-u2f installiert werden:

  • libpam-u2f

Befehl zum Installieren der Pakete:

sudo apt-get install libpam-u2f

Oder mit apturl installieren, Link: apt://libpam-u2f

Yubikey dem System bekannt machen

Für jeden Yubikey müssen die entsprechenden Schlüssel im System angelegt werden. Hierzu ist ein Ordner "Yubico" im Home-Verzeichnis des Benutzers im Ordner .config zu erstellen.

Die Schlüssel werden mit dem Befehl pamu2fcfg exportiert. Im Folgenden ist "BENUTZER" durch den eigenen Benutzernamen zu ersetzen.

pamu2fcfg -P > /home/BENUTZER/.config/Yubico/u2f_keys

Der Yubikey blinkt nun und muss an der goldenen Fläche berührt werden.

Für weitere Yubikeys werden weitere Schlüssel angelegt und automatisch an die Datei "u2f_keys" angehängt mit:

pamu2fcfg -P >> /home/BENUTZER/.config/Yubico/u2f_keys

Das Argument "-P" ist optional. Durch dieses Argument kann (nicht muss) der Yubikey später ohne Berührung verwendet werden.

Hinweis:

unter "/lib/x86_64-linux-gnu/security" ist das Modul "pam_u2f.so" hinterlegt, welches gleich Verwendung findet.

Um die Schlüssel systemweit verfügbar zu machen, werden diese in das Verzeichnis "/root/.config/Yubikey" kopiert.

sudo cp /home/BENUTZER/.config/Yubikey/u2f_keys /root/.config/Yubikey/

Dort werden die Schlüssel wieder kopiert und auch für den Benutzer root angelegt. Dazu als root anmelden mit:

cd /root/.config/Yubikey/

cp u2f_keys u2f_keys_root

In der Datei u2f_keys_root den Benutzernamen durch „root“ ersetzen:

Konfiguration von pam

Nun können die einzelnen Module von PAM bearbeitet werden, die verschiedene Zugriffe erlauben.

Achtung!

UNBEDINGT ein zweites Terminal öffnen und als root-User anmelden. Im Falle einer Fehlkonfiguration kann es möglich sein, dass der Benutzer sich nicht mehr am System anmelden oder bestimmte Dateien bearbeiten kann um die Konfiguration rückgängig zu machen. Erst nach erfolgreichem Test, d.h. Authentifizierung mit Passwort und/oder Yubikey sollte das zweite Terminal erst wieder geschlossen werden!

Die einzelnen Zugriffe auf bestimmte Systemfunktionen werden durch Konfigurationsdateien im Ordner "/etc/pam.d" definiert. In den Konfigurationsdateien wird eine Zeile eingefügt, welche den Yubikey abfragt. Der Aufbau der Abfrage ist wie folgt (Beispiel):

auth sufficient pam_u2f.so authfile=/root/.config/Yubico/u2f_keys userpresence=0

"auth" bedeutet Authentifizierung des Nutzer "sufficient" erlaubt den Yubikey anstelle eines Passwortes OPTIONAL zu verwenden, d.h. falls der Yubikey nicht verfügbar ist und nicht erkannt werden kann, kann notfalls durch den Nutzer immer noch das Passwort verwendet werden. Möchte man diese Option nicht, kann auch eine echte 2-Faktor-Authentifizierung mittels "required" statt "sufficient" verwendet werden. "pam_u2f.so" ist das verwendete Modul, welches installiert wurde und den Yubikey abfragt. Durch das Argument "authfile=" wird der Pfad der Schlüssel angegeben, dieser Pfad kann sich je nach Modul ändern (s.u.). Mit userpresence=0 wird festgelegt, dass der Nutzer den Yubikey nicht bei jeder Abfrage berühren muss. Auf Wunsch kann dieser Wert auf "1" gesetzt werden, wenn eine Berührung erforderlich sein soll.

sudo

Die Datei /etc/pam.d/sudo regelt die Authentifizierung des Nutzers wenn ein Befehl mit vorangestelltem "sudo" ausgeführt wird. Um den Yubikey hierzu zu nutzen muss die Datei wie folgt modifiziert werden. Zur Änderung der Datei sind root-Rechte erforderlich.

session required pam_env.so readenv=1 user_readenv=0
session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
auth sufficient pam_u2f.so authfile=/root/.config/Yubico/u2f_keys userpresence=0
@include common-account
@include common-session-noninteractive

su

Die Datei /etc/pam.d/su regelt die Authentifizierung des Nutzers wenn man sich als root-user anmelden will. Um den Yubikey hierzu zu nutzen muss die Datei wie folgt modifiziert werden. Zur Änderung der Datei sind root-Rechte erforderlich.

auth sufficient pam_rootok.so
auth sufficient pam_u2f.so authfile=/root/.config/Yubico/u2f_keys_root userpresence=0
session required pam_env.so readenv=1
session required pam_env.so readenv=1 envfile=/etc/default/locale
session required pam_env.so readenv=1
session required pam_env.so readenv=1 envfile=/etc/default/locale
session optional pam_mail.so nopen
session required pam_limits.so
@include common-auth
@include common-account
@include common-session

Hinweis:

Vorhandene Kommentare in der Datei können stehen bleiben

login

Die Datei /etc/pam.d/login regelt die Authentifizierung des Nutzers wenn man sich am System anmelden will (in der Regel beim Start des Systems). Um den Yubikey hierzu zu nutzen muss die Datei wie folgt modifiziert werden. Zur Änderung der Datei sind root-Rechte erforderlich.

vergrößern

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so
auth requisite pam_nologin.so
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session required pam_loginuid.so
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
session required pam_env.so readenv=1
session required pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
auth sufficient pam_u2f.so authfile=/root/.config/Yubico/u2f_keys userpresence=0
auth optional pam_group.so
session required pam_limits.so
session optional pam_lastlog.so
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
session required pam_limits.so
session optional pam_lastlog.so
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
session optional pam_mail.so standard
session optional pam_keyinit.so force revoke
@include common-account
@include common-session
@include common-password

Hinweis:

Vorhandene Kommentare in der Datei können stehen bleiben

Login-Manager

Die Datei /etc/pam.d/gdm-password regelt die Authentifizierung des Nutzers an der grafischen Oberfläche des Login-Managers (in der Regel beim Start des Systems). Um den Yubikey hierzu zu nutzen muss die Datei wie folgt modifiziert werden. Zur Änderung der Datei sind root-Rechte erforderlich. Vor der ersten Zeile wird folgende Zeile eingefügt:

auth sufficient pam_u2f.so authfile=/root/.config/Yubico/u2f_keys userpresence=0

Bildschirmsperre

Sollte eine Bildschirmsperre aktiv werden, kann durch anstecken den Yubikeys und Bewegen der Maus der Rechner wieder entsperrt werden. Hierzu muss die Datei des entsprechenden Bildschirmschoners bearbeitet werden. Hier gezeigt am Beispiel des "cinnamon-screensaver". Vor der ersten Zeile wird folgende Zeile eingefügt:

auth sufficient pam_u2f.so authfile=/home/BENUTZER/.config/Yubico/u2f_keys userpresence=0

Hinweis:

WICHTIG: Bei der Bildschirmsperre auf den Speicherort der Schlüssel im Home-Verzeichnis des Nutzers verweisen

Diese Revision wurde am 16. Januar 2021 17:50 von noisefloor erstellt. Die folgenden Schlagworte wurden dem Artikel zugewiesen: Howto