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 doveadm
Nachschlagetest:
$ 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.conf
Datei:
auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext
Die /etc/dovecot/conf.d/auth-system.conf.ext
Datei:
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/dovecot
Datei 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 passdb
Eintrag 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/passwd
auf 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.