Saslauthd pam_authenticate failed

Das Problem ist etwas komplizierter. :wink:

Der saslauthd verwendet PAM:

[code]auth sufficient pam_unix.so
auth requisite pam_univentionmailcyrus.so ldap_host=master401.deadlock40.intranet ldap_base=dc=deadlock40,dc=intranet from_attr=mailPrimaryAddress to_attr=uid binddn=cn=master401,cn=dc,cn=computers,dc=deadlock40,dc=intranet pwfile=/etc/machine.secret ldap_port=7389

auth sufficient pam_ldap.so use_first_pass
auth required pam_krb5.so use_first_pass

account sufficient pam_unix.so
account required pam_ldap.so
[/code]
Die Reihenfolge ist jetzt folgende, zuerst wird pam_unix verwendet, also Authentifizierung via libnss-Datenbanken. Danach wird der Benutzername von einer Mailadresse auf einen Benutzernamen gewandelt und anschließend wird LDAP oder Kerberos geprüft.

Auf einem Standard-UCS ist pam_unix erfolgreich, auch für LDAP Benutzer, da diese inkl. Passwort Hash via getent shadow aufgelöst werden können. Wird UCS Mitglied in einer AD Domäne oder ist ein Samba 4 installiert und das Passwort wurde im Samba 4 geändert, so ist der Passwort Hash nicht via getent shadow gelistet und die pam_unix Authentifizierung scheitert.

Durch requisite pam_univentionmailcyrus.so scheitert dann die Umwandlung der Mailadresse in den Benutzernamen. Ursprünglich wurde für die SMTP Authentifizierung immer nur die E-Mail Adresse verwendet.

Lösungsansätze:

  • E-Mail-Adresse für die Authentifizierung verwenden
  • In der Datei /etc/univention/templates/files/etc/pam.d/smtp requisite pam_univentionmailcyrus.so auf optional pam_univentionmailcyrus.so ändern, danach “ucr commit /etc/pam.d/smtp” und den saslauthd neu starten
  • Bug anlegen

Hoffe das hilft weiter.