[Postfixbuch-users] Postfix mit SMTP-AUTH klappt nicht.
Patrick Ben Koetter
p at state-of-mind.de
Di Mai 23 00:26:00 CEST 2006
* Marcus Frings <iam-est-hora-surgere at despammed.com>:
> Hallo,
>
> gegeben ist ein Debian Sarge System mit postfix (2.1.5) und sasl
> (2.1.19), bei dem ich schon seit Tagen versuche, SMTP-AUTH mit sasldb
> als Backend für eingehende Mails einzurichten. Ich habe mich dabei an
> Patricks und Ralfs Buch bzw. an Patricks HOWTO gehalten:
>
> ,----[ /etc/postfix/main.cf ]
> | smtpd_sasl_auth_enable = yes
> | smtpd_sasl_security_options = noanonymous
> | # smtpd_sasl_local_domain = $myhostname
> | smtpd_sasl_local_domain =
> | broken_sasl_auth_clients = yes
> |
> | smtpd_recipient_restrictions =
> | permit_sasl_authenticated,
> | permit_mynetworks,
> | check_relay_domains
> `----
>
> ,----[ /etc/postfix/sasl/smtpd.conf ]
> | pwcheck_method: auxprop
Füg mal noch hinzu:
auxprop_plugin: sasldb
> | mech_list: plain login digest-md5 cram-md5
> `----
>
> /etc/sasldb2, nach Erstellen der User-Einträge, habe ich in
> /var/spool/postfix/etc/ hineinkopiert:
Hmmm, gefällt mir nicht, das gleich so komplex zu machen. Hast Du es mal ohne
den smtpd im chroot zu haben und mit sasldb an der default location probiert?
> ,----[ /var/spool/postfix/etc/ ]
> | -rw-rw---- 1 root sasl 12288 May 22 22:17 sasldb2
> `----
>
> Der Benutzer postfix ist ebenfalls Mitglied der Gruppe sasl.
>
> Ich gebe zu, dass mir die ganze Geschichte mit REALM nicht ganz klar
> ist, deshalb habe ich testweise drei User auf unterschiedliche Arten
> angelegt:
>
> 1) saslpasswd2 -c -u `postconf -h myhostname` -a smtpauth test1
Nee...
> 2) saslpasswd2 -c -u `postconf -h myhostname` test2
Hmmm, das ist ja in Deinem Fall NULL
> 3) saslpasswd2 -c test3
Das wird sein, was der HOSTNAME Deines Servers ist.
> Nach erneutem Einlesen der Konfiguration mache ich remote ein telnet auf
> den Mailserver und nach Senden des EHLO bekomme ich:
>
> ,----
> | 250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
> | 250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5
> `----
>
> Scheint also schon einmal zu funktionieren.
Kann auch nur zufällig eine Liste aller vier installierten Mechanismen sein.
Nimm einen Mech in /etc/postfix/sasl/smtpd.conf raus und wenn Du recht hast,
dann fehlt der nach einem Reload bei einem telnet.
> Anschließend tippe ich
>
> AUTH PLAIN $BASE64-PASSWORT
>
> und in allen Fällen erhalte ich:
>
> ,----
> | 535 Error: authentication failed
> `----
>
> Hier mal die Logs:
>
> ,----[ mail.info ]
> | postfix/smtpd[31516]: smtpd_sasl_authenticate: sasl_method PLAIN, init_response $BASE64-PASSWORT
> | postfix/smtpd[31516]: smtpd_sasl_authenticate: decoded initial response test2
Hier fehlt ein @ und ein REALM...
Setz als REALM mal das ein, was Du durch ein sasldblistusers2 als "domain"
erhältst und achte beim erstellen des BASE64 Strings darauf, das @ zu escapen.
Failproof ist <http://www.jetmore.org/john/code/#gen-auth> zum Generieren von
Strings.
> | postfix/smtpd[31516]: warning: SASL authentication failure: Password verification failed
> | postfix/smtpd[31516]: warning: p5089D0FA.dip.t-dialin.net[80.137.208.250]: SASL PLAIN authentication failed
> | postfix/smtpd[31516]: > p5089D0FA.dip.t-dialin.net[80.137.208.250]: 535 Error: authentication failed
> `----
>
> Diese Meldung ist für alle drei Testbenutzer gleich. Dasselbe kommt
> übrigens heraus, wenn ich "smtpd_sasl_local_domain = $myhostname" gegen
> "smtpd_sasl_local_domain =" austausche
Die Frage ist, ob $myhostname == HOSTNAME ist...
> ,----[ mail.warn ]
> | postfix/smtpd[31516]: warning: SASL authentication failure: Password verification failed
> | postfix/smtpd[31516]: warning: localhost[127.0.0.1]: SASL PLAIn authentication failed
> `----
>
> ,----[ auth.log ]
> | saslpasswd2: setpass succeeded for test2
> | saslpasswd2: error deleting entry from sasldb: DB_NOTFOUND: No matching key/data pair found
> `----
>
> Zu der Meldung aus dem auth.log habe ich Google befragt und zwar auch
> einige Einträge gefunden, aber irgendwie nichts, was mir weiterhilft.
Das würde ich im Moment einfach mal ignorieren. Konzentrier Dich mal darauf
+ smtpd aus dem chroot und sasldb nach /etc
+ testuser mit sasldblistuser2 auslesen
+ domainwert von testuser als REALM bei der AUTH anhängen
Idealerweise hättest Du dafür die SASL sample/... Tools, aber die sind bei
Debian AFAIK nirgends dabei. :(
> Hat jemand eine Idee? Ich hoffe, ich habe direkt genügend Informationen
> geliefert.
Ja, viele. Du kannst auch "saslfinger -s" nutzen. Das zeigt andere, auch
wichtige Dinge.
p at rick
--
Das Postfix-Buch
<http://www.postfix-buch.com>
saslfinger (debugging SMTP AUTH):
<http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>
Mehr Informationen über die Mailingliste Postfixbuch-users