PAM: Auth: pam_unix(dovecot:auth): Authentifizierungsfehler;

PAM: Auth: pam_unix(dovecot:auth): Authentifizierungsfehler;

Wir haben Opnldap auf unserem Ubuntu-Server eingerichtet und erhielten diese Meldung für einen Benutzer:

 auth: pam_unix(dovecot:account): account has expired (account expired)
Sep  3 19:05:03  auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=XXXX rhost=::1  user=XXXX

Ich habe das Passwort mit ldappasswd erfolgreich geändert, aber der Fehler besteht weiterhin. Nach einigen Recherchen scheint es, dass shadowLastChange nicht aktualisiert wird.

Wie können wir das lösen?

/usr/share/slapd/slapd.conf

access to attrs=userPassword,shadowLastChange
        by dn="@ADMIN@" write
        by anonymous auth
        by self write
        by * none
access to dn.base="" by * read

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="@ADMIN@" write
        by * read

OK – das scheint ein PAM-Problem zu sein.

Wenn ich /etc/nsswitch.conf wie folgt bearbeite:

shadow: compat

Ich erhalte keine Meldung, dass der Account abgelaufen ist.

Wenn ich es ändere in:

shadow: files ldap

Das tue ich. Aber in beiden Fällen erhalte ich immer noch den Dovecot-Fehler.

Antwort1

ICHTunich hasse es, eine tote Frage wiederzubeleben, aber angesichts der Tatsache, dass dies das Top-Suchergebnis für „Dovecot PAM-Authentifizierungsfehler LDAP“ ist, möchte ich dieses zusätzliche Wissen hinzufügen:

Das einzige, was ich bei meinen Tests gesehen habe, das die shadowAccountAttribute aktualisiert, ist der passwdBefehl, wenn Sie das Passwort für einen Benutzer in LDAP ändern... Die meisten anderen Tools kümmern sich nicht viel um die shadowAccountKlasse und ihre Attribute und berühren sie nicht. Ich finde jedoch nur, dass shadowAccountKlassen zu Benutzern hinzugefügt werden müssenwenn sie sich beim Host anmelden, seitdemtutPflege. Wenn Sie nur etwas wie E-Mail-Authentifizierung (Dovecot) tun, dann ist es nicht viel Nutzen. IchkönnteIch kann mich hier vielleicht irren, aber ich habe bisher nichts anderes gesehen als eine Host-Anmeldung, bei der die shadowAccountAttribute für irgendetwas abgefragt wurden.

Wenn Sie Dovecot authentifizieren lassendurchPAM (was Sie vermutlich sind, da Dovecot es abfragt und Sie es ändern nsswitch), dann denken Sie bitte daran, dass PAM zwar diese zusätzlichen Attribute beachtet, Sie aber trotzdem die richtigen Tools benötigen, um sie zu ändern... was bedeutet, dass alles, was Benutzerpasswörter ändert, auch über PAM laufen muss. So unpopulär die Meinung auch sein mag, wenn Sie keine Host-Logins verlangen, sondern nur Dienste wie Dovecot oder andere, besteht keine Notwendigkeit, PAM einzubeziehen, da es viel mehr Dinge überprüft, die wahrscheinlich irrelevant sein werden. (Bestenfalls könnte es andere Dinge erzwingen, wie, ja, das Ablaufen von Passwörtern, aber persönlich würde ich solche Dinge nicht erzwingen, wenn der Dienst, bei dem Sie sich anmelden,keine Möglichkeit, ein Passwort zu ändernso) Auf lange Sicht ist es wahrscheinlich einfacher, wenn Nicht-Host/Shell-Login-Dienste LDAP selbst prüfen, was andere Dinge wie Suchfilter ermöglichtspezifisch für diesen Dienst.

JedochvorausgesetztSie haben Dovecot so eingerichtet, dass es LDAP selbst überprüft und sich nicht auf PAM verlässt. Am Ende von Dovecot 10-auth.confbefindet sich eine Liste von !includeZeilen für verschiedene Authentifizierungsmechanismen wie LDAP, SQL usw. Standardmäßig auth-system.conf.extist die Datei enthaltenVorandere Mechanismen, wie LDAP. Das bedeutet, dass Dovecot in meinen Tests diese überprüftin der Reihenfolge, in der sie bereitgestellt werden, Dovecot wird zunächst versuchen, den Benutzer mit PAM zu authentifizieren und dann, wenn dies fehlschlägt, mit LDAP zu authentifizieren. Ergo erhalten Sie einen PAM-Fehler, der besagt, ja, das authentication failure(sowie den ersten, der besagtWases ist ein Fehler). Wenn Sie diese Reihenfolge so ändern würden, dass die Methode mit der höchsten Erfolgswahrscheinlichkeit (LDAP, würde man annehmen) zuerst abgefragt wird, wäre keine Überprüfung bei PAM erforderlich und PAM würde daher auch keinen Fehler ausgeben.

Um dieses Problem zu lösen,könnteKommentieren Sie das aus !include auth-system.conf.ext, dies könnte jedoch potenziell dazu führen, dass Systembenutzer (wie rootoder postmaster) als nicht existent betrachtet werden, wenn Sie sie nicht in LDAP eingerichtet haben.

Meine persönliche Lösung hierfür bestand darin, diese Zeile auszuschneiden und an derunten, so was:

#!include auth-deny.conf.ext
#!include auth-master.conf.ext

!include auth-ldap.conf.ext

#!include auth-sql.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

!include auth-system.conf.ext

Das bedeutet, dass DovecotErsteLDAP konsultieren,Dannkonsultieren Sie PAM, wenn LDAP keine Ergebnisse geliefert hat, soweit meine Tests das gezeigt haben.

Antwort2

Ich habe meine eigene Frage noch nie wirklich beantwortet, aber ich wollte sie teilen, falls jemand anderes jemals darauf stößt. Es hatte damit zu tun, dass saslauthd nicht installiert, konfiguriert und ausgeführt wurde. Nachdem ich das getan hatte, verschwand der Fehler.

verwandte Informationen