[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