Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / Authentifizierung mit PAM

Authentifizierung mit PAM

Veröffentlicht: 12.12.2024
WAS?

In diesem Artikel werden das PAM-Konzept, die Struktur der PAM-Konfiguration und die Verwendung von Tools zur Konfiguration von PAM beschrieben.

WARUM?

Sie möchten wissen, wie Sie ein PAM-Modul festlegen und Ihr System für die Verwendung der U2F-Schlüssel konfigurieren.

AUFWAND

Es dauert etwa 20 Minuten, den Artikel zu lesen.

ANFORDERUNGEN
  • Zum Festlegen der Authentifizierung mit den U2F-Schlüsseln benötigen Sie entweder YubiKeys oder Security Keys.

1 Einführung in PAM

Häufig möchten Systemadministratoren und Programmierer den Zugriff auf bestimmte Teile des Systems einschränken oder die Nutzung bestimmter Funktionen einer Anwendung begrenzen. Ohne PAM müssen die Anwendungen bei jedem neu eingeführten Authentifizierungsmechanismus, wie LDAP, Samba oder Kerberos, angepasst werden. Dieser Prozess ist jedoch zeitaufwändig und fehleranfällig. Eine Möglichkeit, diese Nachteile zu vermeiden, ist eine Trennung zwischen den Anwendungen und dem Authentifizierungsmechanismus und das Delegieren der Authentifizierung an zentral verwaltete Module. Wenn ein neues Authentifizierungsschema erforderlich ist, genügt es, ein geeignetes PAM-Modul für die Verwendung durch das betreffende Programm anzupassen oder zu schreiben.

Das PAM-Konzept besteht aus:

  • PAM-Modulen, die eine Reihe freigegebener Bibliotheken für einen bestimmten Authentifizierungsmechanismus sind.

  • Einem Modulstapel mit einem oder mehreren PAM-Modulen.

  • Ein PAM-fähiger Dienst, der eine Authentifizierung mit Hilfe eines Modulstapels oder von PAM-Modulen benötigt. Normalerweise ist ein Dienst ein bekannter Name der entsprechenden Anwendung, wie login oder su. Der Dienstname other ist ein reserviertes Wort für Standardregeln.

  • Modulargumente, mit denen die Ausführung eines einzelnen PAM-Moduls beeinflusst werden kann.

  • Ein Mechanismus, der jedes Ergebnis der Ausführung eines einzelnen PAM-Moduls auswertet. Ein positiver Wert führt das nächste PAM-Modul aus. Die Art und Weise, wie ein negativer Wert behandelt wird, hängt von der Konfiguration ab: kein Einfluss, fortfahren bis hin zu sofort beenden und alles dazwischen sind gültige Optionen.

2 Struktur der PAM-Konfiguration

PAM unter SLE Micro verfügt über eine sogenannte verzeichnisbasierte Konfiguration. Die festgelegten Konfigurationsdateien werden in /etc/pam.d gespeichert. Jeder Dienst (oder jedes Programm), der/das sich auf den PAM-Mechanismus stützt, hat seine eigene Konfigurationsdatei in diesem Verzeichnis. Den Dienst für sshd finden Sie zum Beispiel in der Datei /etc/pam.d/sshd.

Anmerkung
Anmerkung: Dateibasierte Konfiguration (/etc/pam.conf) wird unter SLE Micro nicht verwendet

Die Konfiguration der einzelnen Dienste kann auch in /etc/pam.conf gespeichert werden. Dieses Konfigurationsschema wird jedoch aus Gründen der Wartung und der Benutzerfreundlichkeit nicht in SLE Micro verwendet.

Mit den Dateien unter /etc/pam.d/ werden die für die Authentifizierung verwendeten PAM-Module definiert. Jede Datei besteht aus Zeilen, die einen Dienst definieren, und jede Zeile besteht aus maximal vier Komponenten:

TYPE
CONTROL
MODULE_PATH
MODULE_ARGS

Die Komponenten haben die folgende Bedeutung:

TYPE

Deklariert den Typ des Dienstes. PAM-Module werden als Stapel verarbeitet. Verschiedene Arten von Modulen haben unterschiedliche Zwecke. Ein Modul prüft zum Beispiel das Passwort, ein anderes den Ort, von dem aus auf das System zugegriffen wird, und ein weiteres liest die benutzerspezifischen Einstellungen. PAM sind ungefähr vier verschiedene Modultypen bekannt:

auth

Sie überprüfen die Authentizität des Benutzers, traditionell durch Abfrage eines Passworts. Dies kann jedoch auch mit einer Chipkarte oder durch biometrische Daten (z. B. Fingerabdrücke oder Iris-Scan) erreicht werden.

account

Mit Modulen dieses Typs wird überprüft, ob der Benutzer allgemein zur Verwendung des angeforderten Dienstes berechtigt ist. Solch eine Prüfung sollte beispielsweise durchgeführt werden, um sicherzustellen, dass keine Anmeldung mit einem Benutzernamen eines nicht mehr gültigen Kontos erfolgen kann.

password

Mit diesem Modultyp kann die Änderung eines Authentifizierungs-Tokens aktiviert werden. Normalerweise ist dies ein Passwort.

session

Mit diesem Modultyp werden Benutzersitzungen verwaltet und konfiguriert. Sie werden vor und nach der Authentifizierung gestartet, um Anmeldeversuche zu protokollieren und die spezifische Umgebung des Benutzers zu konfigurieren.

CONTROL

Zeigt das Verhalten eines PAM-Moduls an. Jedes Modul kann die folgenden Kontrollflags haben:

required

Ein Modul mit dieser Flagge muss erfolgreich verarbeitet werden, damit die Authentifizierung fortgesetzt werden kann. Wenn ein Modul mit der Flagge required ausfällt, werden alle anderen Module mit derselben Flagge verarbeitet, bevor der Benutzer eine Meldung bezüglich des Fehlers beim Authentifizierungsversuch erhält.

requisite

Module mit dieser Flagge müssen ebenfalls erfolgreich verarbeitet werden, ähnlich wie Module mit der Flagge required. Falls jedoch ein Modul mit dieser Flagge ausfällt, erhält der Benutzer sofort eine entsprechende Rückmeldung und es werden keine weiteren Module verarbeitet. Bei einem erfolgreichen Vorgang werden die anderen Module nachfolgend verarbeitet genau wie alle Module mit der Flagge required. Die Flagge requisite kann als Basisfilter verwendet werden, um zu überprüfen, ob bestimmte Bedingungen erfüllt sind, die für die richtige Authentifizierung erforderlich sind.

sufficient

Wenn ein Modul mit dieser Flagge erfolgreich verarbeitet wurde, erhält die anfordernde Anwendung sofort eine Meldung bezüglich des erfolgreichen Vorgangs und keine weiteren Module werden verarbeitet, vorausgesetzt, es ist zuvor kein Fehler bei einem Modul mit der Flagge required aufgetreten. Ein Fehler eines Moduls mit der Flagge sufficient hat keine direkten Auswirkungen auf die Verarbeitung oder die Verarbeitungsreihenfolge nachfolgender Module.

optional

Ein Fehler oder die erfolgreiche Verarbeitung hat bei diesem Modul keine direkten Folgen. Dies kann für Module sinnvoll sein, die nur der Anzeige einer Meldung (beispielsweise um dem Benutzer mitzuteilen, dass er eine E-Mail erhalten hat) dienen, ohne weitere Aktionen auszuführen.

include

Wenn diese Flagge festgelegt ist, wird die als Argument angegebene Datei an dieser Stelle eingefügt.

MODULE_PATH

Enthält einen vollständigen Dateinamen eines PAM-Moduls. Es muss nicht explizit angegeben werden, wenn sich das Modul im Standardverzeichnis /lib/security befindet (für alle 64-Bit-Plattformen, die von SLE Micro unterstützt werden, ist das Verzeichnis /lib64/security).

MODULE_ARGS

Enthält eine durch Leerzeichen getrennte Liste von Optionen, mit denen Sie das Verhalten eines PAM-Moduls beeinflussen können, beispielsweise debug (aktiviert Debugging) oder nullok (erlaubt die Verwendung leerer Passwörter).

Darüber hinaus sind unter /etc/security globale Konfigurationsdateien für PAM-Module gespeichert, in denen die genaue Verhaltensweise der Module definiert ist (Beispiele pam_env.conf und time.conf). Jede Anwendung, die ein PAM-Modul verwendet, ruft eine Reihe von PAM-Funktionen auf, mit denen dann die Informationen in den Konfigurationsdateien verarbeitet und das Ergebnis an die anfordernde Anwendung zurückgegeben wird.

Zur Vereinfachung der Erstellung und Wartung von PAM-Modulen wurden gemeinsame Standardkonfigurationsdateien für die Typen auth, account, password sowie die session-Module eingeführt. Diese werden den PAM-Konfigurationen der einzelnen Anwendungen entnommen. Aktualisierungen der globalen PAM-Konfigurationsmodule in common-* werden daher auf alle PAM-Konfigurationsdateien übertragen. Die manuelle Aktualisierung jeder einzelnen PAM-Konfigurationsdatei durch den Administrator entfällt somit.

Die globalen PAM-Konfigurationsdateien werden mit dem Tool pam-config gewartet. Dieses Tool fügt der Konfiguration automatisch neue Module hinzu, ändert die Konfiguration vorhandener Module oder löscht einzelne Module oder Optionen aus den Konfigurationen. Manuelle Vorgänge bei der Verwaltung der PAM-Konfigurationen werden dadurch minimiert oder gar nicht mehr benötigt.

2.1 Ein Beispiel für eine PAM-Konfiguration

Zur Demonstration eines realen Anwendungsbeispiels für die PAM-Konfiguration wird in diesem Abschnitt die Konfiguration von sshd verwendet:

Beispiel 1: PAM-Konfiguration für sshd (/etc/pam.d/sshd)
#%PAM-1.0 1
auth     requisite      pam_nologin.so                              2
auth     include        common-auth                                 3
account  requisite      pam_nologin.so                              2
account  include        common-account                              3
password include        common-password                             3
session  required       pam_loginuid.so                             4
session  include        common-session                              3
session  optional       pam_lastlog.so   silent noupdate showfailed 5

1

Deklariert die Version dieser Konfigurationsdatei für PAM 1.0. Dies ist lediglich eine Konvention, könnte aber in Zukunft verwendet werden, um die Version zu überprüfen.

2

Überprüft, ob /etc/nologin vorhanden ist. Wenn dies der Fall ist, darf sich kein anderer Benutzer als root anmelden.

3

Bezieht sich auf die Konfigurationsdateien von vier Modultypen: common-auth, common-account, common-password und common-session. In diesen vier Dateien ist die Standardkonfiguration für die einzelnen Modultypen gespeichert.

4

Legt das UID-Prozessattribut zur Anmeldung für den Prozess fest, der authentifiziert wurde.

5

Zeigt Informationen über die letzte Anmeldung eines Benutzers an.

Durch die Einbindung der Konfigurationsdateien, anstatt jedes Modul separat zur jeweiligen PAM-Konfiguration hinzuzufügen, erhalten Sie automatisch eine aktualisierte PAM-Konfiguration, wenn ein Administrator die Standardeinstellungen ändert.

Die erste eingebundene Datei (common-auth) ruft Module des auth-Typs auf: pam_env.so, pam_gnome_keyring.so und pam_unix.so. Weitere Informationen hierzu finden Sie im Beispiel 2, „Standardkonfiguration für den auth-Abschnitt (common-auth)“. Beachten Sie, dass die Module je nach Ihrer Installation unterschiedlich sein können.

Beispiel 2: Standardkonfiguration für den auth-Abschnitt (common-auth)
auth  required  pam_env.so                   1
auth  optional  pam_gnome_keyring.so         2
auth  required  pam_unix.so  try_first_pass 3

1

pam_env.so lädt /etc/security/pam_env.conf, um die Umgebungsvariablen so festzulegen, wie sie in dieser Datei angegeben sind. Hiermit kann die Variable DISPLAY auf den richtigen Wert gesetzt werden, da dem Modul pam_env der Standort bekannt ist, an dem der Anmeldevorgang stattfindet.

2

pam_gnome_keyring.so prüft die Anmeldung und das Passwort des Benutzers mit dem GNOME-Schlüsselring

3

pam_unix prüft die Anmeldedaten und das Passwort des Benutzers gegen /etc/passwd und /etc/shadow.

Der ganze Stapel von auth-Modulen wird verarbeitet, bevor sshd Rückmeldungen darüber erhält, ob die Anmeldung erfolgreich war. Alle Module des Stapels, die die Kontrollflagge required haben, müssen erfolgreich verarbeitet werden, bevor sshd eine Meldung über das positive Ergebnis erhält. Falls bei einem der Module ein Fehler auftritt, wird der vollständige Modulstapel verarbeitet und erst dann wird sshd bezüglich des negativen Ergebnisses benachrichtigt.

Wenn alle Module des Typs auth erfolgreich verarbeitet wurden, wird eine weitere include-Anweisung verarbeitet, in diesem Fall die in Beispiel 3, „Standardkonfiguration für den account-Abschnitt (common-account)“. common-account enthält nur ein Modul, pam_unix. Wenn pam_unix das Ergebnis zurückgibt, dass der Benutzer vorhanden ist, erhält sshd eine Meldung, die diesen Erfolg ankündigt, und der nächste Stapel von Modulen (password) wird verarbeitet, wie in gezeigt.

Beispiel 3: Standardkonfiguration für den account-Abschnitt (common-account)
account  required  pam_unix.so  try_first_pass

Auch hier beinhaltet die PAM-Konfiguration von sshd nur eine include-Anweisung, die sich auf die Standardkonfiguration für password-Module in der Datei common-password bezieht. Diese Module müssen erfolgreich abgeschlossen werden (Kontrollflaggen requisite und required), wenn die Anwendung die Änderung eines Authentifizierungs-Tokens anfordert.

Für die Änderung eines Passworts oder eines anderen Authentifizierungs-Token ist eine Sicherheitsprüfung erforderlich. Dies wird mit dem Modul pam_cracklib erreicht. Das anschließend verwendete Modul pam_unix überträgt alle alten und neuen Passwörter von pam_cracklib, sodass der Benutzer die Authentifizierung nach dem Ändern des Passworts nicht erneut ausführen muss. Bei dieser Vorgehensweise ist es zudem unmöglich, die von pam_cracklib durchgeführten Prüfungen zu umgehen. Immer, wenn der account- oder der auth-Typ so konfiguriert sind, dass sie abgelaufene Passwörter melden, müssen auch die password-Module verwendet werden.

Im letzten Schritt werden die Module vom Typ session (in der Datei common-session gebündelt) aufgerufen, um die Sitzung gemäß den Einstellungen für den betreffenden Benutzer zu konfigurieren. Das Modul pam_limits lädt die Datei /etc/security/limits.conf, die die Nutzung bestimmter Systemressourcen einschränken kann. Das Modul pam_unix wird erneut verarbeitet. Das Modul pam_umask kann zur Festlegung der Dateimoduserstellungsmaske verwendet werden. Da dieses Modul mit der Flagge optional versehen ist, wirkt sich ein Fehler in diesem Modul nicht auf die erfolgreiche Ausführung des gesamten Sitzungsmodulstapels aus. Die session-Module werden beim Abmelden des Benutzers ein zweites Mal aufgerufen.

3 Konfiguration von PAM-Modulen

Einige PAM-Module sind konfigurierbar. Die Konfigurationsdateien befinden sich in /etc/security. In diesem Abschnitt werden die für das sshd-Beispiel relevanten Konfigurationsdateien kurz beschrieben: pam_env.conf und limits.conf.

3.1 pam_env.conf

pam_env.conf kann verwendet werden, um eine standardisierte Umgebung für Benutzer zu definieren, die beim Aufrufen des pam_env-Moduls festgelegt wird. Hiermit legen Sie Umgebungsvariablen mit folgender Syntax fest:

VARIABLE  [DEFAULT=VALUE]  [OVERRIDE=VALUE]
VARIABLE

Name der festzulegenden Umgebungsvariablen.

[DEFAULT=<value>]

Standard-VALUE, den der Administrator festlegen möchte.

[OVERRIDE=<value>]

Werte, die von pam_env abgefragt und festgelegt werden können und die den Standardwert außer Kraft setzen.

Ein typisches Beispiel für eine Verwendungsmöglichkeit von pam_env ist die Anpassung der Variable DISPLAY, die immer dann geändert wird, wenn eine entfernte Anmeldung stattfindet. Dies ist in Beispiel 4, „pam_env.conf“ dargestellt.

Beispiel 4: pam_env.conf
REMOTEHOST  DEFAULT=localhost          OVERRIDE=@{PAM_RHOST}
DISPLAY     DEFAULT=${REMOTEHOST}:0.0  OVERRIDE=${DISPLAY}

In der ersten Zeile wird der Wert der Variable REMOTEHOST auf localhost festgelegt, der immer dann verwendet wird, wenn mit pam_env kein anderer Wert bestimmt werden kann. Die Variable DISPLAY hingegen enthält den Wert REMOTEHOST. Weitere Informationen finden Sie in den Kommentaren in /etc/security/pam_env.conf.

3.2 limits.conf

Systemgrenzen können auf Benutzer- oder Gruppenbasis in limits.conf festgelegt werden, die vom Modul pam_limits gelesen wird. In der Datei können Sie Festgrenzen, die nicht überschritten werden dürfen, und Softgrenzen festlegen, die vorübergehend überschritten werden können. Weitere Informationen zur Syntax und zu den Optionen finden Sie in den Kommentaren unter /etc/security/limits.conf.

4 Konfigurieren von PAM mit pam-config

Das Tool pam-config unterstützt Sie bei der Konfiguration der globalen PAM-Konfigurationsdateien (/etc/pam.d/common-*) und einiger ausgewählter Anwendungskonfigurationen. Eine Liste der unterstützten Module erhalten Sie mit dem Kommando pam-config --list-modules. Mit dem Kommando pam-config können Sie Ihre PAM-Konfigurationsdateien verwalten. Sie können Ihren PAM-Konfigurationen neue Module hinzufügen oder Module löschen und die Optionen einzelner Module ändern. Wenn Sie die globalen PAM-Konfigurationsdateien ändern, ist keine Bearbeitung des PAM-Setups für einzelne Anwendungen erforderlich.

Ein einfacher Anwendungsfall für pam-config ist der folgende:

  1. Automatische Generierung einer neuen PAM-Konfiguration für Unix.  Erstellen Sie mit pam-config eine möglichst einfache Konfiguration, die Sie später erweitern können. Mit dem Kommando pam-config --create erstellen Sie eine einfache Unix-Authentifizierungskonfiguration. Vorhandene Konfigurationsdateien, die nicht von pam-config verwaltet werden, werden überschrieben, aber Sicherungskopien werden als *.pam-config-backup beibehalten.

  2. Hinzufügen einer neuen Authentifizierungsmethode.  Zum Hinzufügen einer neuen Authentifizierungsmethode (z. B. LDAP) zu Ihrem PAM-Modulstapel benötigen Sie lediglich das Kommando pam-config --add --ldap. Die LDAP-Authentifizierungsmethode wird allen common-*-pc-PAM-Konfigurationsdateien hinzugefügt, auf die diese Methode anwendbar ist.

  3. Aktivieren der Debug-Funktion für Testzwecke.  Um sicherzustellen, dass die neue Authentifizierungsmethode wie geplant funktioniert, aktivieren Sie die Debug-Funktion für alle PAM-Vorgänge. Mit pam-config --add --ldap-debug wird das Debugging für LDAP-bezogene PAM-Operationen eingeschaltet.

  4. Abfragen der Konfiguration.  Bevor Sie die neue PAM-Konfiguration anwenden, sollten Sie sicherstellen, dass sie alle gewünschten Optionen enthält. Mit dem Kommando pam-config --query --MODULE werden sowohl der Typ als auch die Optionen für das abgefragte PAM-Modul aufgelistet.

  5. Entfernen der Debug-Optionen.  Wenn Sie mit Ihrer neuen Konfiguration zufrieden sind, entfernen Sie die Debug-Optionen. Mit dem Kommando pam-config --delete --ldap-debug schalten Sie das Debugging für die LDAP-Authentifizierung aus. Falls Sie auch für andere Module Debug-Optionen hinzugefügt haben, deaktivieren Sie diese mit den betreffenden Kommandos.

Weitere Informationen über das Kommando pam-config und die verfügbaren Optionen finden Sie auf der Handbuchseite von pam-config(8).

5 Manuelle Konfiguration von PAM

Wenn Sie die Konfigurationsdateien für PAM lieber manuell erstellen oder verwalten möchten, sollten Sie die Option pam-config für diese Dateien deaktivieren.

Wenn Sie Ihre PAM-Konfigurationsdateien mit dem Kommando pam-config --create völlig neu erstellen, werden symbolische Links zwischen den common-*-Dateien und den common-*-pc-Dateien erstellt. pam-config ändert nur die common-*-pc-Konfigurationsdateien. Falls Sie diese symbolischen Links entfernen, setzen Sie pam-config praktisch außer Kraft, da pam-config nur die common-*-pc-Dateien bearbeitet, diese aber ohne die symbolischen Links nicht verwendet werden können.

Warnung
Warnung: Nehmen Sie pam_systemd.so in die Konfiguration auf.

Wenn Sie Ihre eigene PAM-Konfiguration erstellen, stellen Sie sicher, dass Sie pam_systemd.so als session optional konfiguriert einschließen. Wenn Sie das pam_systemd.so nicht einbeziehen, kann es zu Problemen mit systemd-Aufgabengrenzen kommen. Details hierzu finden Sie auf der man-Seite zu pam_systemd.so.

6 Konfigurieren von SLE Micro zur Verwendung von U2F-Schlüsseln für die lokale Anmeldung

Für mehr Sicherheit bei der lokalen Anmeldung bei SLE Micro können Sie die Zwei-Faktor-Authentifizierung mithilfe des pam-u2f-Frameworks und der U2F-Funktion auf YubiKeys und Security Keys konfigurieren.

Wenn Sie U2F auf Ihrem SLE Micro-System festlegen möchten, müssen Sie Ihren Schlüssel mit Ihrem Konto auf SLE Micro verknüpfen. Danach konfigurieren Sie Ihr System für die Verwendung des Schlüssels. Die Vorgehensweise wird in den folgenden Abschnitten beschrieben.

6.1 Verknüpfen des U2F-Schlüssels mit Ihrem Konto

Gehen Sie wie folgt vor, um Ihren U2F-Schlüssel mit Ihrem Konto zu verknüpfen:

  1. Melden Sie sich auf dem Rechner an.

  2. Geben Sie Ihren U2F-Schlüssel ein.

  3. Erstellen Sie ein Verzeichnis für die U2F-Schlüsselkonfiguration:

    > sudo mkdir -p ~/.config/Yubico
  4. Führen Sie das Kommando pamu2fcfg aus, das die Konfigurationszeilen ausgibt:

    > sudo pamu2fcfg > ~/.config/Yubico/u2f_keys
  5. Wenn Ihr Gerät zu blinken beginnt, berühren Sie den Metallkontakt, um die Verknüpfung zu bestätigen.

Wir empfehlen die Verwendung eines U2F-Sicherungsgeräts, das Sie mit den folgenden Kommandos festlegen können:

  1. Führen Sie den folgenden Befehl aus:

    > sudo pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
  2. Wenn Ihr Gerät zu blinken beginnt, berühren Sie den Metallkontakt, um die Verknüpfung zu bestätigen.

Sie können die Ausgabedatei vom Standardspeicherort in ein Verzeichnis verschieben, das die sudo-Berechtigung zum Ändern der Datei erfordert, um die Sicherheit zu erhöhen. Verschieben Sie sie beispielsweise in das Verzeichnis /etc. Gehen Sie dazu wie folgt vor:

  1. Erstellen Sie ein Verzeichnis in /etc:

    > sudo mkdir /etc/Yubico
  2. Verschieben Sie die erstellte Datei:

    > sudo mv ~/.config/Yubico/u2f_keys /etc/Yubico/u2f_keys
Anmerkung
Anmerkung: Platzieren der u2f_keys an einem nicht standardmäßigen Ort

Wenn Sie die Ausgabedatei in ein anderes Verzeichnis als das Standardverzeichnis ($HOME/.config/Yubico/u2f_keys) verschieben, müssen Sie den Pfad zur Datei /etc/pam.d/login hinzufügen, wie in Abschnitt 6.2, „Aktualisieren der PAM-Konfiguration“ beschrieben.

6.2 Aktualisieren der PAM-Konfiguration

Nachdem Sie die Konfiguration der U2F-Schlüssel erstellt haben, müssen Sie die PAM-Konfiguration auf Ihrem System anpassen.

  1. Öffnen Sie die Datei /etc/pam.d/login.

  2. Fügen Sie die Zeile auth required pam_u2f.so wie folgt in die Datei ein:

    #%PAM-1.0
    auth      include    common-auth
    auth      required   pam_u2f.so
    account   include    common-account
    password  include    common-password
    session   optional   pam_keyinit.so revoke
    session   include    common-session
    #session  optional   pam_xauth.so
  3. Wenn Sie die Datei u2f_keys an einem anderen Ort als $HOME/.config/Yubico/u2f_keys abgelegt haben, müssen Sie die Option authfile in der /etc/pam.d/login-PAM-Datei wie folgt verwenden:

    #%PAM-1.0 
    auth     requisite pam_nologin.so 
    auth     include   common-auth
    auth  required pam_u2f.so authfile=<PATH_TO_u2f_keys>
    ...

    wobei <PATH_TO_u2f_keys> der absolute Pfad zur Datei u2f_keys ist.