[Postfixbuch-users] sasl2 und Postfix die hunderste...

thomas polnik thomas.polnik at idpraxis.de
Fr Mär 21 15:20:32 CET 2003


Hallo,
ich will cyrus-sasl-2.1.12 bei postfix 2.0.6 für smtp-auth nutzen. 

Postfix ist korrekt gegen sasl2 kompiliert worden:
hera:/usr/lib # ldd /usr/sbin/postfix
        liblber.so.2 => /usr/lib/liblber.so.2 (0x4001b000)
        libpcre.so.0 => /usr/lib/libpcre.so.0 (0x40025000)
=>      libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x4002e000)
        libssl.so.0.9.6 => /usr/lib/libssl.so.0.9.6 (0x40042000)
        libcrypto.so.0.9.6 => /usr/lib/libcrypto.so.0.9.6 (0x40071000)
        libmysqlclient.so.10 => /usr/lib/libmysqlclient.so.10
(0x40141000)
        libdb-4.0.so => /usr/lib/libdb-4.0.so (0x40173000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x4020b000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x40221000)
        libc.so.6 => /lib/libc.so.6 (0x40232000)
        libdl.so.2 => /lib/libdl.so.2 (0x4035b000)
        libz.so.1 => /lib/libz.so.1 (0x4035f000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x4036e000)
        libm.so.6 => /lib/libm.so.6 (0x403a1000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Ein telnet auf localhost 25 ergibt folgendes:
hera:/usr/lib # telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 hera.example.test ESMTP Postfix on SuSE Linux 8.0 (i386) (2.0.6)
EHLO de.example.org
250-hera.example.test
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME

Damit sollte postfix grunsätzlich bereits sein, smtp-auth zu nutzen.

Folgendes habe ich zum Thema sasl in der main.cf zu stehen.
smtpd_sasl_auth_enable= yes
smtpd_sasl_security_options=noanonymous
broken_sasl_auth_clients= yes
smtpd_recipient_restrictions=permit_sasl_authenticated,reject

cyrus-sasl2 habe ich wie folgt kompiliert:
./configure  --prefix=/usr/local/sasl2 --with-configdir=/etc/sasl2
--disable-krb4 --with-mysql --enable-login --enable-plain --disable-otp
--with-plugindir=/usr/lib/sasl2

Nach dem 'make install' und 'ln -s /usr/local/lib/sasl2
/usr/lib/sasl2'habe ich die Datei smtpd.conf mit folgendem Inhalt
angelegt:
pwcheck_method: mysql
sasl_mysqluser:postfix
sasl_mysqlpasswd:geheim
sasl_mysqlhost:localhost
sasl_mysqldatabase:maildb
sasl_mysqltable:user
sasl_mysqluidcol:user
sasl_mysqlpwcol:clearpw

Der Benutzer postfix hat nur SELECT-Zugriff auf die Datenbank maildb,
das sollte aber für die Authentifizierung vollkommen reichen. In der
Spalte clearpw steht das Passwort im Klartext.

Folgende (Fehler)meldung bekomme ich (hera.log ist das Logfile der
Datenbank):

Mar 21 13:30:09 hera postfix/smtpd[3938]: connection established
Mar 21 13:30:09 hera postfix/smtpd[3938]: master_notify: status 0
Mar 21 13:30:09 hera postfix/smtpd[3938]: name_mask: resource
Mar 21 13:30:09 hera postfix/smtpd[3938]: name_mask: software
Mar 21 13:30:09 hera postfix/smtpd[3938]: connect from
unknown[10.10.10.40]
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]: 220
hera.example.test ESMTP Postfix on SuSE Linux 8.0 (i386) (2.0.6)
Mar 21 13:30:09 hera postfix/smtpd[3938]: watchdog_pat: 0x80864b0
Mar 21 13:30:09 hera postfix/smtpd[3938]: < unknown[10.10.10.40]: EHLO
menelaos
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-hera.example.test
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-PIPELINING
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-SIZE 10240000
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-VRFY
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-ETRN
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
Mar 21 13:30:09 hera postfix/smtpd[3938]: match_hostname: unknown ~?
127.0.0.0/8
Mar 21 13:30:09 hera postfix/smtpd[3938]: match_hostaddr: 10.10.10.40 ~?
127.0.0.0/8
Mar 21 13:30:09 hera postfix/smtpd[3938]: match_hostname: unknown ~?
10.10.10.0/24
Mar 21 13:30:09 hera postfix/smtpd[3938]: match_hostaddr: 10.10.10.40 ~?
10.10.10.0/24
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]:
250-XVERP
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]: 250
8BITMIME
Mar 21 13:30:09 hera postfix/smtpd[3938]: watchdog_pat: 0x80864b0
Mar 21 13:30:09 hera postfix/smtpd[3938]: < unknown[10.10.10.40]: AUTH
LOGIN
Mar 21 13:30:09 hera postfix/smtpd[3938]: smtpd_sasl_authenticate:
sasl_method LOGIN
Mar 21 13:30:09 hera postfix/smtpd[3938]: smtpd_sasl_authenticate:
uncoded challenge: Username:
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]: 334
VXNlcm5hbWU6
Mar 21 13:30:09 hera postfix/smtpd[3938]: < unknown[10.10.10.40]:
MTAwMDA=
Mar 21 13:30:09 hera postfix/smtpd[3938]: smtpd_sasl_authenticate:
decoded response: 10000
Mar 21 13:30:09 hera postfix/smtpd[3938]: smtpd_sasl_authenticate:
uncoded challenge: Password:
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]: 334
UGFzc3dvcmQ6
Mar 21 13:30:09 hera postfix/smtpd[3938]: < unknown[10.10.10.40]:
cGF1bGU=
Mar 21 13:30:09 hera postfix/smtpd[3938]: smtpd_sasl_authenticate:
decoded response: paule
Mar 21 13:30:09 hera postfix/smtpd[3938]: warning: SASL authentication
problem: unable to open Berkeley db /etc/sasldb2: No such file or
directory
Mar 21 13:30:09 hera postfix/smtpd[3938]: warning: SASL authentication
problem: unable to open Berkeley db /etc/sasldb2: No such file or
directory
Mar 21 13:30:09 hera postfix/smtpd[3938]: warning: unknown[10.10.10.40]:
SASL LOGIN authentication failed
Mar 21 13:30:09 hera postfix/smtpd[3938]: > unknown[10.10.10.40]: 435
Error: authentication failed

==> /var/log/warn <==
Mar 21 13:30:09 hera postfix/smtpd[3938]: mysql plugin couldnt connect
to any host
Mar 21 13:30:09 hera postfix/smtpd[3938]: mysql plugin couldnt connect
to any host
Mar 21 13:30:09 hera postfix/smtpd[3938]: warning: SASL authentication
problem: unable to open Berkeley db /etc/sasldb2: No such file or
directory
Mar 21 13:30:09 hera postfix/smtpd[3938]: warning: SASL authentication
problem: unable to open Berkeley db /etc/sasldb2: No such file or
directory
Mar 21 13:30:09 hera postfix/smtpd[3938]: mysql plugin couldnt connect
to any host
Mar 21 13:30:09 hera postfix/smtpd[3938]: mysql plugin couldnt connect
to any host
Mar 21 13:30:09 hera postfix/smtpd[3938]: warning: unknown[10.10.10.40]:
SASL LOGIN authentication failed

==> /var/lib/mysql/hera.log <==
030321 13:30:09      37 Connect     Access denied for user:
'postfix at localhost' (Using password: YES)
                     38 Connect     Access denied for user:
'postfix at localhost' (Using password: YES)
                     39 Connect     Access denied for user:
'postfix at localhost' (Using password: YES)
                     40 Connect     Access denied for user:
'postfix at localhost' (Using password: YES)

==> /var/log/mail <==
Mar 21 13:30:10 hera postfix/smtpd[3938]: watchdog_pat: 0x80864b0
Mar 21 13:30:10 hera postfix/smtpd[3938]: smtp_get: EOF
Mar 21 13:30:10 hera postfix/smtpd[3938]: lost connection after AUTH
from unknown[10.10.10.40]
Mar 21 13:30:10 hera postfix/smtpd[3938]: disconnect from
unknown[10.10.10.40]
Mar 21 13:30:10 hera postfix/smtpd[3938]: master_notify: status 1
Mar 21 13:30:10 hera postfix/smtpd[3938]: connection closed
Mar 21 13:30:10 hera postfix/smtpd[3938]: watchdog_stop: 0x80864b0
Mar 21 13:30:10 hera postfix/smtpd[3938]: watchdog_start: 0x80864b0

zur Information:
Postfix und die Datenbank zur Verwaltung der virtuellen Domains arbeiten
ohne sasl2 wunderbar zusammen.

Für Hinweise, wo der Fehler stecken könnte, wäre ich dankbar. 

Was ich z.B. nicht verstehe, ist diese Zeile aus dem Datenbank-Logfile:

38 Connect     Access denied for user: 'postfix at localhost' (Using
password: YES)

Egal welchen Benutzer ich in die /usr/lib/sasl2/smtpd.conf eintrage,
wird versucht, sich mit dem Benutzer postfix an der Datenbank
anzumelden.
Ich gehe daher davon aus, daß die Informationen zur Verbindung mit der
Datenbank gar nicht ausgelesen werden, sondern daß versucht wird, sich
mit dem Systembenutzer postfix an der Datenbank anzumelden, was dann
natürlich schief geht. Gibt es hier eine Möglichkeit, sasl ein wenig
mehr auf die Finger zu schauen? 

Ziel der ganzen Aktion ist, smtp-Auth direkt an die Datenbank zu leiten,
ohne die PAM o.ä. zu nutzen, was u.U. Zugang zum System gewähren könnte.
(Dies ist sicherlich alles eine Sache der Konfiguration, aber warum
Löcher aufreißen wo keine sein müssen :-) )

Falls weitere Infos gebraucht werden, gebe ich diese natürlich gern.

Vielen Dank und viele Grüße
thomas Polnik


Mehr Informationen über die Mailingliste Postfixbuch-users