[Postfixbuch-users] Probleme mit Auth über SASL
Andreas Winkelmann
ml at awinkelmann.de
Sa Okt 21 15:00:29 CEST 2006
Am Saturday 21 October 2006 13:57 schrieb postfix at 3-freun.de:
> 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
Hmm, ich würde das mal auf "smtpd" belassen. Es mag sein, dass es bei Debian
für was anderes verwendet wird. Die Patchen immer ziehmlich an Postfix herum.
> 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_domai
>n 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
Hat der Username einen @domain-Teil?
Hast Du bei testsaslauthd auch an den Service-Namen "-s smtp" gedacht? Gerade
bei PAM ist das wichtig?
> ganze als Root und als Benutzer Postfix (also mit der chroot Umgebung kann
> es nicht zusammen hängen).
Als Benutzer Postfix was zu testen hat nix mit chroot zu tun. Erst Postfix
schaltet das chroot ein.
> 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.
Welche smtpd.conf? Zeig die doch mal. Und auch den Pfad.
> 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
Prüf in deiner smtpd.conf, ob Du "mech_list: plain login" drin ist. Das ist
zwingend bei saslauthd. Wenn es drin ist, wird sie nicht gefunden.
> 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
Änder Dein Passwort.
> 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.
--
Andreas
Mehr Informationen über die Mailingliste Postfixbuch-users