pam_tally2 in Kombination mit Nitrokey: Linux Nutzer-Authentifikation

Ich habe auf meinem Arbeitsrechner (Notebook) Folgendes konfiguriert:

  • Anmeldung am System nur mit eingestecktem Nitrokey (Pro) via RSA-Keys + PIN (Anleitung dazu wird demnächst folgen)
  • Als Fallback (Stick nicht vorhanden) ist auch die Eingabe einer Passphrase möglich (50 stellig)

Zusätzlich wollte ich nun via PAM konfigurieren, dass ein Account (auch Root-Konto) nach 3 Falscheingaben des Passworts für 30 Minuten gesperrt wird. Dazu habe ich auf meinem Debian Buster System wie folgt konfiguriert:

nano /etc/pam.d/common-auth
# Nitrokey auth
auth sufficient pam_poldi.so
# here are the per-package modules (the "Primary" block)
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600
auth [success=1 default=ignore] pam_unix.so nullok_secure
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth optional pam_cap.so
# end of pam-auth-update config

Das entscheidende ist die Zeile:

auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600

Erfolgt keine Authentifizierung über die Smartcard, erfolgt nach 3x falscher Passworteingabe eine 30 Minunten Login-Sperre – auch für den Root-User aktiv.

Das Problem ist nun: Erfolgt die Authentifizierung über die Smartcard wertet pam_tally2 das als »Falscheingabe« und zählt intern einen Counter hoch. Sobald ich dann die Smartcard abziehe (und mich mehr als dreimal angemeldet habe) und möchte mich authentifizieren, ist das Konto zunächst für 30 Minuten gesperrt. Nun stellt sich die Frage, ob und wie man PAM bzw. pam_tally2 konfigurieren muss, damit eine Co-Existenz möglich ist.

Anyone?

Update – Ein Einsender meint:

auth [success=3 default=ignore] pam_poldi.so 
auth [success=2 default=ignore] pam_unix.so nullok_secure 
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 aud... 
auth requisite pam_deny.so

Das sorgt dafür, dass nach erfolgreicher Authentifizierung mittels pam_poldi die nächsten drei Schritte übersprungen werden. Falls nicht, wird mit dem nächsten (pam_unix) weitergemacht: Erfolgreich: Nächste zwei Schritte überspringen. Erst wenn auch dass nicht erfolgreich war, wird pam_tally aktiviert, das den Counter für die fehlgeschlagenen Authentifizierung. hochzählt.

Hilf mit die Spendenziele zu erreichen! Mitmachen ➡