[Postfixbuch-users] SASL Problem
Patrick Ben Koetter
p at state-of-mind.de
Do Jul 14 01:51:27 CEST 2005
* test <m.lindemann at helimail.de>:
> Hallo NG
>
> Ich habe ein Problem mit der sasl authorisierung
>
> saslauthd -a pam -O localhost
Die option "-O localhost" macht keinen Sinn in Verbindung mit pam.
> saslfinger -s sagt mir
> fuckup:/tmp # saslfinger -s
> saslfinger - postfix Cyrus sasl configuration Wed Jul 13 15:54:41 CEST 2005
> version: 0.9.9.1
> mode: server-side SMTP AUTH
>
> -- basics --
> Postfix: 2.0.16-20031022
> System:
> Welcome to SuSE Linux 9.0 (i586) - Kernel \r (\l).
>
> -- smtpd is linked to --
> libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x40094000)
>
> -- active SMTP AUTH and TLS parameters for smtpd --
> broken_sasl_auth_clients = yes
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_local_domain =
> smtpd_sasl_security_options = noanonymous
>
>
> -- listing of /usr/lib/sasl2 --
> total 209
> drwxr-xr-x 2 root root 552 Jul 13 15:33 .
> drwxr-xr-x 91 root root 32512 Jul 13 15:25 ..
> -rwxr-xr-x 1 root root 712 Oct 3 2003 libanonymous.la
> -rwxr-xr-x 1 root root 15091 Oct 3 2003 libanonymous.so
> -rwxr-xr-x 1 root root 15091 Oct 3 2003 libanonymous.so.2
> -rwxr-xr-x 1 root root 15091 Oct 3 2003 libanonymous.so.2.0.15
> -rwxr-xr-x 1 root root 696 Oct 3 2003 liblogin.la
> -rwxr-xr-x 1 root root 15643 Oct 3 2003 liblogin.so
> -rwxr-xr-x 1 root root 15643 Oct 3 2003 liblogin.so.2
> -rwxr-xr-x 1 root root 15643 Oct 3 2003 liblogin.so.2.0.15
> -rwxr-xr-x 1 root root 721 Oct 3 2003 libsasldb.la
> -rwxr-xr-x 1 root root 18856 Oct 3 2003 libsasldb.so
> -rwxr-xr-x 1 root root 18856 Oct 3 2003 libsasldb.so.2
> -rwxr-xr-x 1 root root 18856 Oct 3 2003 libsasldb.so.2.0.15
> drwxr-xr-x 2 root root 1008 May 29 12:34 sasl2
> -rw------- 1 root root 26 Jul 13 15:33 smtpd.conf
> -rw------- 1 root root 62 Jul 13 15:33 smtpd.conf~
Dieses Verzeichnis und die smtpd.conf ignoriert Dein Postfix.
> -- listing of /usr/local/lib/sasl2 --
> total 1493
> drwxr-xr-x 2 root root 1008 May 29 12:34 .
> drwxr-xr-x 4 root root 440 Jul 13 14:49 ..
> -rwxr-xr-x 1 root root 730 May 29 12:34 libanonymous.la
> -rwxr-xr-x 1 root root 44219 May 29 12:34 libanonymous.so
> -rwxr-xr-x 1 root root 44219 May 29 12:34 libanonymous.so.2
> -rwxr-xr-x 1 root root 44219 May 29 12:34 libanonymous.so.2.0.15
> -rwxr-xr-x 1 root root 718 May 29 12:05 libcrammd5.la
> -rwxr-xr-x 1 root root 49271 May 29 12:05 libcrammd5.so
> -rwxr-xr-x 1 root root 49271 May 29 12:05 libcrammd5.so.2
> -rwxr-xr-x 1 root root 49271 May 29 12:05 libcrammd5.so.2.0.15
> -rwxr-xr-x 1 root root 748 May 29 12:05 libdigestmd5.la
> -rwxr-xr-x 1 root root 96737 May 29 12:05 libdigestmd5.so
> -rwxr-xr-x 1 root root 96737 May 29 12:05 libdigestmd5.so.2
> -rwxr-xr-x 1 root root 96737 May 29 12:05 libdigestmd5.so.2.0.15
> -rwxr-xr-x 1 root root 714 May 29 12:34 liblogin.la
> -rwxr-xr-x 1 root root 45147 May 29 12:34 liblogin.so
> -rwxr-xr-x 1 root root 45147 May 29 12:34 liblogin.so.2
> -rwxr-xr-x 1 root root 45147 May 29 12:34 liblogin.so.2.0.15
> -rwxr-xr-x 1 root root 742 May 29 12:05 libotp.la
> -rwxr-xr-x 1 root root 132361 May 29 12:05 libotp.so
> -rwxr-xr-x 1 root root 132361 May 29 12:05 libotp.so.2
> -rwxr-xr-x 1 root root 132361 May 29 12:05 libotp.so.2.0.15
> -rwxr-xr-x 1 root root 714 May 29 12:34 libplain.la
> -rwxr-xr-x 1 root root 44901 May 29 12:34 libplain.so
> -rwxr-xr-x 1 root root 44901 May 29 12:34 libplain.so.2
> -rwxr-xr-x 1 root root 44901 May 29 12:34 libplain.so.2.0.15
> -rwxr-xr-x 1 root root 751 May 29 12:34 libsasldb.la
> -rwxr-xr-x 1 root root 71779 May 29 12:34 libsasldb.so
> -rwxr-xr-x 1 root root 71779 May 29 12:34 libsasldb.so.2
> -rwxr-xr-x 1 root root 71779 May 29 12:34 libsasldb.so.2.0.15
>
Dieses Verzeichnis nutzt Dein Postfix.
> -- content of /usr/lib/sasl2/smtpd.conf --
> pwcheck_method: saslauthd
Verschiebe /usr/lib/sasl2/smtpd.conf nach /usr/local/lib/sasl2/smtpd.conf.
Dann ändere die Config in smtpd.conf wie folgt:
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
>
> -- active services in /etc/postfix/master.cf --
> # service type private unpriv chroot wakeup maxproc command + args
> # (yes) (yes) (yes) (never) (100)
> sms unix - n n - - pipe
> flags=Rq user=nobody argv=/test/email.pl ${user} ${sender}
>
>
> smtp inet n - n - - smtpd
> 127.0.0.1:10025 inet n - n - - smtpd -o content_filter=
>
> pickup fifo n - n 60 1 pickup
> cleanup unix n - n - 0 cleanup
> qmgr fifo n - n 300 1 qmgr
> rewrite unix - - n - - trivial-rewrite
> bounce unix - - n - 0 bounce
> defer unix - - n - 0 bounce
> flush unix n - n 1000? 0 flush
> proxymap unix - - n - - proxymap
> smtp unix - - n - - smtp
> relay unix - - n - - smtp
> showq unix n - n - - showq
> error unix - - n - - error
> local unix - n n - - local
> virtual unix - n n - - virtual
> lmtp unix - - n - - lmtp
> maildrop unix - n n - - pipe
> flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
> old-cyrus unix - n n - - pipe
> flags=R user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -m ${extension} ${user}
>
>
>
> cyrus unix - n n - - pipe
> user=cyrus argv=/usr/lib//cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
>
> uucp unix - n n - - pipe
> flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
> ifmail unix - n n - - pipe
> flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
> bsmtp unix - n n - - pipe
> flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
>
> vscan unix - n n - 4 pipe
> user=vscan argv=/usr/sbin/amavis $sender $recipient
>
> trace unix - - n - 0 bounce
> verify unix - - n - 1 verify
> anvil unix - - n - 1 anvil
> scache unix - - n - 1 scache
> discard unix - - n - - discard
> tlsmgr unix - - n 1000? 1 tlsmgr
>
> -- mechanisms on localhost --
> 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN OTP
> 250-AUTH=CRAM-MD5 DIGEST-MD5 LOGIN PLAIN OTP
Dein Postfix listet alle Mechanismen aus /usr/local/lib/sasl2, die es finden
kann. saslauthd kann aber nur PLAIN und LOGIN. Wenn Du die smtpd.conf, wie
oben erwähnt, um den mech_list-Parameter samt den Werten PLAIN und LOGIN
ergänzt, sollte Postfix nur noch das anbieten:
-- mechanisms on localhost --
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
> testsaslauthd -u marcus -p xxxxxxx
> 0: OK "Success."
>
>
> Und wenn ich mit meinem Mailclient eine versenden möchte, so bekomme ich
> folgende Meldung in der allmessages
>
>
> Jul 13 15:55:35 fuckup postfix/smtpd[23035]: connect from sandra.lm.hn.org[10.0.0.220]
> Jul 13 15:55:35 fuckup postfix/smtpd[23035]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Invalid argument
> Jul 13 15:55:35 fuckup postfix/smtpd[23035]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Invalid argument
> Jul 13 15:55:35 fuckup postfix/smtpd[23035]: warning: sandra.lm.hn.org[10.0.0.220]: SASL LOGIN authentication failed
> Jul 13 15:55:36 fuckup postfix/smtpd[23035]: lost connection after AUTH from sandra.lm.hn.org[10.0.0.220]
> Jul 13 15:55:36 fuckup postfix/smtpd[23035]: disconnect from sandra.lm.hn.org[10.0.0.220]
Es kann gut sein, dass Dein Client (welchen hast Du denn benützt?) einen
Mechanismus gewählt hat, den saslauthd nicht unterstützt. SASL sucht dann nach
einem anderen password verification service, z.B. auxprop, und weil der nicht
konfiguriert ist und damit auch nicht festgelegt ist, welches authentication
backend auxprop nutzen soll, fällt SASL auf den default (sasldb) zurück. Das
geht natürlich schief und im Log steht dann: "unable to open Berkeley db
/etc/sasldb2). Für die Fehlermeldung sollte man denen echt mal einen Orden
verleihen.
> Ich bin mit meinem Latain am Ende.
>
> Vieleicht habt ihr einen tipp für mich.
Klar: Latein schreibt man mit "e"... SCNR ;)
p at rick
--
The Book of Postfix
<http://www.postfix-book.com>
SMTP AUTH debug utility:
<http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>
Mehr Informationen über die Mailingliste Postfixbuch-users