Die Kerberos-Authentifizierung schlägt mit erzwungener Kennwortänderung fehl

7

Ich habe die PAM-Authentifizierung für die Verwendung von Kerberos konfiguriert und kann mich bei meinen Principals mithilfe ihrer Kerberos-Anmeldeinformationen korrekt authentifizieren.

Ich hatte Probleme, als ich versuchte, einen Principal mit einem abgelaufenen Passwort zu erstellen:

kadmin: addprinc +needchange test_principal

Als ich versuchte, mich anzumelden (entweder von einem VT oder dem grafischen Begrüßer), erhielt ich nach korrekter Eingabe des Kennworts die erwartete Meldung, dass das Kennwort abgelaufen ist, und das System forderte mich auf, ein neues zu erstellen. Nachdem ich das getan hatte, schlug die Authentifizierung mit dem folgenden Fehler fehl kdc.log:

krb5kdc[...](info): TGS_REQ (4 etypes {18 17 16 23}) 192.168.0.200: NO PREAUTH: authtime 0, [email protected] for host/[email protected], Generic error (see e-text)

und der folgende (nicht so überraschende) Fehler in /var/log/auth.log:

pam_krb5(gdm3:auth): (user test_principal) credential verfication failed: KDC returned error string: NO PREAUTH

Einige Notizen

  • Das Auflisten der Attribute des Principals (via getprincin kadmin.local) zeigt 0 fehlgeschlagene Anmeldeversuche an
  • Wenn ich das Konto ohne +needchangeFlag erstelle , kann ich mich korrekt authentifizieren.
  • Wenn ich das +needchangeFlag (via modprincin kadmin.local) hinzufüge, nachdem sich der Benutzer einmal erfolgreich authentifiziert hat, erhalte ich das erwartete Verhalten. Der Benutzer wird nämlich aufgefordert, sein Kennwort zu ändern, und dann ist seine Authentifizierung erfolgreich.
  • Dieser Principal hat keinen entsprechenden Eintrag in /etc/passwd, wird jedoch durch einen LDAP-Eintrag gesichert.
  • Wie an anderer Stelle vorgeschlagen, habe ich versucht, mein Prinzip wie folgt zu erstellen:

    kadmin: addprinc -requires_preauth +needchange test_principal
    

    Das machte keinen Unterschied.

Mein Anwendungsfall

Ich migriere von einem alten NIS-System und möchte meinen Benutzern Kontinuität bieten. Ich möchte, dass sie ihre alten Passwörter eingeben, aber dann gezwungen werden, sie zu ändern, um den strengeren Regeln für Passwortrichtlinien zu entsprechen, die ich über Kerberos durchsetzen möchte.

Ich verwende MIT Kerberos V auf Debian Wheezy.

Joseph R.
quelle

Antworten:

2

Ich habe die Antwort gefunden und es ist eine sehr seltsame!

Ich habe den getprincBefehl innerhalb verwendet kadmin, um die Attribute sowohl des Problemprinzips als auch eines Principals zu erhalten, der ohne erstellt wurde +needchangeund der sich korrekt authentifizierte.

Der Unterschied bestand darin, dass für die Authentifizierung des Principals das REQUIRES_PRE_AUTHAttribut korrekt festgelegt wurde, während es für den problematischen Principal nicht vorhanden war. Die Lösung besteht also darin, den Principal auf folgende Weise zu erstellen:

kadmin: addprinc +needchange +requires_preauth test_principal
Joseph R.
quelle