Kann PAM mit Postfix und Dovecot SASL verwendet werden?

Kann PAM mit Postfix und Dovecot SASL verwendet werden?

Ich habe eingerichtetPostfixbenutzenDovecot SASLmitPAMund Unix-Benutzer sowie Dovecot LDA (LMTP) für die lokale Postfachspeicherung. Nach einigen Tests stellt sich heraus, dass eingehende E-Mails mit folgender Begründung abgelehnt werden:

Fehler: Passdb-Suche für [Benutzer] fehlgeschlagen: Konfigurierte Passdbs unterstützen keine Anmeldeinformationssuche

Das ist sowohl lästig als auch beunruhigend – ich habe mich für die PAM-basierte Authentifizierung entschieden, weil alle Quellen, die ich gefunden habe, darauf hinwiesen, dass dies die einfachste und zuverlässigste Methode ist. Es fällt mir im Moment schwer, herauszufinden, was schief läuft – ich bin mir nicht sicher, ob es wirklich ein Problem mit PAM ist oder ob etwas mit meiner Konfiguration nicht stimmt.

Protokolle

Der doveadmNachschlagetest:

$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups

Dovecot-Debugprotokoll nach dem Lookup-Test:

$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS    1       [user]  service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL   1       reason=Configured passdbs don't support credentials lookups

Relevante Konfiguration

Die /etc/dovecot/conf.d/10-auth.confDatei:

auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext

Die /etc/dovecot/conf.d/auth-system.conf.extDatei:

passdb {
    driver = pam 
    args = session=yes failure_show_msg=yes dovecot
}
userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%n
}

Bei der /etc/pam.d/dovecotDatei handelt es sich um die Standarddatei, die mit dem Dovecot-Paket von Rocky Linux (das entspricht RHEL und ist dasselbe wie Fedora) geliefert wurde:

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      password-auth
account    include      password-auth
session    include      password-auth

Ich habe jedoch auch die Konfiguration ausprobiert, wie sie vom offiziellenDovecot PAM-Dokumentationund es hat keine anderen Ergebnisse gebracht. Ich bin zuversichtlich, was den Rest meiner Konfiguration angeht, da ich viel Zeit damit verbracht habe, die Optionen zu studieren, aber ich verstehe die PAM-Konfiguration immer noch kaum ...

Alle Protokolle deuten darauf hin, dass das Problem bei Dovecot SASL selbst liegt und nicht bei der Postfix- oder Dovecot-Konfiguration. Für Vorschläge bin ich sehr dankbar.

Antwort1

Ich habe keine Ahnung, ob dies die richtige Lösung für das Problem ist (komme jetzt zurück und leseKommentar von anxin meinem ursprünglichen Beitrag lässt mich fragen, ob das so ist), aber ich habe es geschafft, sowohl die Suche als auch die Authentifizierung zum Laufen zu bringen, indem ich einen zweiten passdbEintrag in die Konfiguration von Dovecot hinzugefügt habe.

In der Dovecot-Konfiguration habe ich demPAM-PasswortdatenbankEintrag mit einempasswdPasswort-DatenbankEintrag:

# e.g. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # This is not a typo
         # Passwd can be used both as a passdb and a userdb
    driver = passwd
}
passdb {
    driver = pam
    args = dovecot
}

Dadurch werden Benutzersuchen doveadm auth lookup [user]erfolgreich ausgeführt.passwdDatenbank kann nichtauthentifizierenBenutzer, da die Passwörter /etc/passwdauf Unix-Systemen nicht mehr in der Datei gespeichert werden. In diesem Fall wird die Suche mit der PAM-Passwortdatenbank fortgesetzt, die den Benutzer korrekt authentifiziert. Dies kann mit dem doveadm auth test [user]Befehl getestet werden.


Ich habe dies als akzeptierte Antwort hinzugefügt, da die Lösung/der Workaround derzeit für mich funktioniert hat. Wenn jemand Vorschläge hat oder weiß, wie dies besser gelöst werden könnte, nehme ich diese gerne an. Da nur die PAM-Datenbank die Standardkonfiguration aufRocky Linux(praktisch RHEL), es überrascht mich, dass es nicht sofort funktioniert.

verwandte Informationen