[Postfixbuch-users] Probleme mit Auth über SASL

postfix at 3-freun.de postfix at 3-freun.de
Sa Okt 21 13:57:31 CEST 2006


Hallo Community,

ich bekomme die Authentifikation von Postfix gegen SASL über PAM -> MySQL 
nicht ans laufen. Ich bin jedoch nach nun mehr als zwei Tagen ratlos, zig Mal 
mit der Dokumentationen belesen und einfach am Ende ;-(

Hier ein paar Systeminfos:

- Debian etch (testing) 

- Installierte Pakete und Versionen dpkg -l |egrep '(sasl|postfix|cyrus)':

ii  cyrus21-admin               2.1.18-4        
ii  cyrus21-clients             2.1.18-4        
ii  cyrus21-common              2.1.18-4        
ii  cyrus21-doc                 2.1.18-4        
ii  cyrus21-imapd               2.1.18-4        
ii  cyrus21-pop3d               2.1.18-4        
ii  gsasl                       0.2.12-1+b1     
ii  libauthen-sasl-cyrus-perl   0.13-server-1   
ii  libauthen-sasl-perl         2.10-1          
ii  libcyrus-imap-perl21        2.1.18-4        
ii  libgsasl7                   0.2.12-1+b1     
ii  libsasl2                    2.1.19.dfsg1-0.5
ii  libsasl2-dev                2.1.19.dfsg1-0.5
ii  libsasl2-krb4-mit           2.1.19.dfsg1-1  
ii  libsasl2-modules            2.1.19.dfsg1-0.5
ii  libsasl2-modules-sql        2.1.19.dfsg1-0.5
ii  postfix                     2.3.3-1         
ii  postfix-dev                 2.3.3-1         
ii  postfix-doc                 2.3.3-1         
ii  postfix-mysql               2.3.3-1         
ii  postfix-pcre                2.3.3-1         
ii  sasl2-bin                   2.1.19.dfsg1-0.5

Konfiguration(en):

- postconf -a 
cyrus
dovecot

- postconf -n (vom Default abweichende Parameter)
config_directory = /etc/postfix
default_rbl_reply = $rbl_code RBLTRAP: We don't accept Mail from you!!!
hash_queue_depth = 2
hash_queue_names = defer,incoming,active,bounce,flush,deferred
inet_interfaces = all
mailbox_command = 
mailbox_transport = cyrus
mime_header_checks = pcre:/etc/postfix/body_check
mydestination = $myhostname,   mysql:/etc/postfix/mysql/mysql-mydestination.cf
mynetworks_style = host
recipient_delimiter = +
sender_canonical_maps = hash:/etc/postfix/canonical
smtpd_client_restrictions = permit_mynetworks
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,   reject_invalid_helo_hostname
smtpd_recipient_restrictions = permit_sasl_authenticated,   permit_mynetworks,   
reject_invalid_hostname,   reject_non_fqdn_hostname,   
reject_non_fqdn_sender,   reject_non_fqdn_recipient,   
reject_unknown_sender_domain,   reject_unknown_recipient_domain,   
reject_unauth_pipelining,   reject_unauth_destination,   
check_recipient_access hash:/etc/postfix/recipient,   check_client_access 
hash:/etc/postfix/access,   check_policy_service inet:127.0.0.1:60000,   
reject_rbl_client zombie.dnsbl.sorbs.net,   reject_rbl_client 
relays.ordb.org,   reject_rbl_client opm.blitzed.org,   reject_rbl_client 
list.dsbl.org,   reject_rbl_client sbl.spamhaus.org,   reject_rbl_client 
blackholes.easynet.nl,   reject_rbl_client unconfirmed.dsbl.org,   
reject_rbl_client dynablock.njabl.org,   reject_rbl_client 
dialup.blacklist.jippg.org,   reject_rbl_client cbl.abuseat.org,   permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = 
smtpd_sasl_path = /usr/lib/sasl2/smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
smtpd_sender_restrictions = check_sender_access 
hash:/etc/postfix/access,reject_non_fqdn_sender,reject_unknown_sender_domain
strict_rfc821_envelopes = yes
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual,   
mysql:/etc/postfix/mysql/mysql-virtual.cf


Folgendes funktioniert:

- Authentifikation an Cyrus gegen die PAM Module an MySQL
- Übergabe einer eMail an den Mailserver (z.B. per Telnet) und Zustellung ins 
richtige Postfach was zeigt das die MySQL Konfiguration korrekt ist
- Authentifikation von Benutzer/Passwort über > testsaslauthd < sowohl im 
Debugmodus von > saslauthd -a pam -d < als auch im normalen Modus. Das ganze 
als Root und als Benutzer Postfix (also mit der chroot Umgebung kann es nicht 
zusammen hängen). 

Ich habe das Gefühl, dass Postfix die smtpd.conf nicht findet und vor allem 
nicht interpretiert. Die Rechte der Datei sind OK. Wenn ich den Parameter 
saslauthd_path entferne oder den Parameter smtpd_sasl_path auf "smtpd" 
ändere, geht es dennoch nicht. 

Im Logfile erhalte ich lediglich folgenden Fehler(meldungen):


Sofern ich Postfix komplett aus der chroot Umgebung herausgenommen habe: 

--snip--

Oct 21 13:42:54 mail postfix/smtpd[8523]: vstream_buf_get_ready: fd 10 got 25
Oct 21 13:42:54 mail postfix/smtpd[8523]: < 3-freun.de[195.238.146.53]: EHLO 
test.domain.de
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-mail.meinedomain.de
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-PIPELINING
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-SIZE 10240000
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-VRFY
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-ETRN
Oct 21 13:42:54 mail postfix/smtpd[8523]: match_list_match: 3-freun.de: no 
match
Oct 21 13:42:54 mail postfix/smtpd[8523]: match_list_match: 195.238.146.53: no 
match
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-AUTH PLAIN NTLM LOGIN CRAM-MD5 DIGEST-MD5
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-ENHANCEDSTATUSCODES
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 
250-8BITMIME
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 250 
DSN
Oct 21 13:42:54 mail postfix/smtpd[8523]: watchdog_pat: 0x808e678
Oct 21 13:42:54 mail postfix/smtpd[8523]: vstream_fflush_some: fd 10 flush 177
Oct 21 13:42:54 mail postfix/smtpd[8523]: vstream_buf_get_ready: fd 10 got 32
Oct 21 13:42:54 mail postfix/smtpd[8523]: < 3-freun.de[195.238.146.53]: AUTH 
LOGIN
Oct 21 13:42:54 mail postfix/smtpd[8523]: xsasl_cyrus_server_first: 
sasl_method LOGIN
Oct 21 13:42:54 mail postfix/smtpd[8523]: xsasl_cyrus_server_auth_response: 
uncoded server challenge: Username:
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 334 
VXNlcm5hbWU6
Oct 21 13:42:54 mail postfix/smtpd[8523]: < 3-freun.de[195.238.146.53]: 
d2ViN3A0
Oct 21 13:42:54 mail postfix/smtpd[8523]: xsasl_cyrus_server_next: decoded 
response: web7p4
Oct 21 13:42:54 mail postfix/smtpd[8523]: xsasl_cyrus_server_auth_response: 
uncoded server challenge: Password:
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 334 
UGFzc3dvcmQ6
Oct 21 13:42:54 mail postfix/smtpd[8523]: < 3-freun.de[195.238.146.53]: 
YW5lNTMw
Oct 21 13:42:54 mail postfix/smtpd[8523]: xsasl_cyrus_server_next: decoded 
response: ane530
Oct 21 13:42:54 mail postfix/smtpd[8523]: warning: SASL authentication 
problem: unable to open Berkeley db /etc/sasldb2: Permission denied
Oct 21 13:42:54 mail postfix/smtpd[8523]: warning: SASL authentication 
problem: unable to open Berkeley db /etc/sasldb2: Permission denied
Oct 21 13:42:54 mail postfix/smtpd[8523]: warning: 3-freun.de[195.238.146.53]: 
SASL LOGIN authentication failed: authentication failure
Oct 21 13:42:54 mail postfix/smtpd[8523]: > 3-freun.de[195.238.146.53]: 535 
5.7.0 Error: authentication failed: authentication failure
Oct 21 13:42:54 mail postfix/smtpd[8523]: watchdog_pat: 0x808e678
Oct 21 13:42:54 mail postfix/smtpd[8523]: vstream_fflush_some: fd 10 flush 100

--snap--

Wobei hier der Permission denied logisch ist, da die Rechte auf /etc/sasldb2 
nicht so gesetzt sind das Postfix lesen dürfte. Aber er soll ja auch gar 
nicht lesen. In der Chrootumgebung weicht die Fehlermeldung in zwei Zeilen 
ab:

--snip--

Oct 21 13:48:21 mail postfix/smtpd[8639]: warning: SASL authentication 
problem: unable to open Berkeley db /etc/sasldb2: No such file or directory
Oct 21 13:48:21 mail postfix/smtpd[8639]: warning: SASL authentication 
problem: unable to open Berkeley db /etc/sasldb2: No such file or directory

--snap--

was ja auch wiederrum Sinn macht, denn die Datei existiert ja gar nicht. Also 
mal schnell angelegt und die richtigen Rechte vergeben:

--snip--

Oct 21 13:49:51 mail postfix/smtpd[8639]: xsasl_cyrus_server_next: decoded 
response: ane530
Oct 21 13:49:51 mail postfix/smtpd[8639]: warning: 3-freun.de[195.238.146.53]: 
SASL LOGIN authentication failed: authentication failure
Oct 21 13:49:51 mail postfix/smtpd[8639]: > 3-freun.de[195.238.146.53]: 535 
5.7.0 Error: authentication failed: authentication failure

--snap--

Ohh schön, ein Fehler weniger... aber gehen tut immer noch nix ;)

Also ich fasse es langsam mit Ironie auf, soviel kann ich doch gar nicht 
falsch machen!?! Ich habe alles zig mal geprüft, was kann ich noch machen?

Wobei da fällt mir noch ein, einen strace habe ich auch schon angefertigt 
wobei mir aufgefallen ist, dass überhaupt keine Prüfung stattfindet welche 
SASL-Auth Postfix verwenden soll/möchte. Falls der Strace hilft dann reiche 
ich ihn gerne nach.

Vielen Dank an alle die, die sich mit meinem Problem befassen ;-) und diese 
lange lange eMail gelesen haben. 

Viele Grüße
Henrik Hasenkamp



Mehr Informationen über die Mailingliste Postfixbuch-users