[Postfixbuch-users] TLS und SMTP Auth Problem

Sandy Drobic postfixbuch-users at japantest.homelinux.com
Do Mai 3 18:09:37 CEST 2007


Andreas Krummrich wrote:

>>> Mein Postfix zu Hause versucht die Verbindung aber folgender Maßen
>>> aufzubauen:
>>>
>>> Apr 30 16:30:07 santa postfix/smtp[17645]: TLS connection established to
>>> iunius.org: TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits)
>>>     
>> Okay, TLS funktioniert also, dies hat aber in der Regel nichts mit
>> Authentifikation zu tun, sondern nur mit der Verschlüsselung der Übertragung.
>> rom.iunius.org scheint nicht optimal eingerichtet zu sein, wenn ein
>> Plaintext Mechanismus wie LOGIN benutzt werden darf ohne Verschlüsselung,
>> aber TLS angeboten wird.
>>   
> Das stimmt, jetzt verstehe ich etwas besser. LOGIN und PLAIN werde ich
> dem qmail noch abgewöhnen. Ist nur die Frage wie. QMail ist da etwas
> unkomfortabler als Postfix ;-)

Sorry, mit QMail kenne ich mich überhaupt nicht aus. Das ist vielleicht
eine Frage für die QMail-Mailingliste.

>>> Apr 30 16:46:33 santa postfix/smtpd[18101]: TLS connection established
>>> from barney.springfield.home[10.10.42.18]: TLSv1 with cipher RC4-MD5
>>> (128/128 bits)
>>>     
>> Dies ist KEINE Authentifikation! Es wird nur die Übertragung verschlüsselt!
>>   
> OK. Und wir kommt es, dass der Mail Client die Verschlüsselung
> verwendet, der SMTP Client vom Postfix, aber eine andere? Wer gibt das
> denn vor? Server oder Client?

Jetzt lasse doch mal die Verschlüsselung aus dem Spiel! Die hat überhaupt
nichts mit deinem Relay-Problem zu tun. Bisher hast du noch keine Logzeile
gezeigt, die andeutet, ob dein Postfix überhaupt versucht, sich beim
rom.iunius.org zu authentifizieren.

>> Nein, das Problem ist, dass du TLS und SMTP AUTH verwechselst. Beide sind
>> völlig unabhängig voneinander, technisch gesehen.
>>
>> Zeige mal die Ausgabe von "saslfinger -c" auf deinem Postfix zuhause,
>> ebenso die Ausgabe von "postconf -n". Wenn das Script "saslfinger" bei dir
>> nicht vorhanden ist, lade es dir von der Homepage von Patrick runter.
>>
>>   
> Hier die Ausgaben:
> 
> saslfinger - postfix Cyrus sasl configuration Thu May  3 14:26:09 CEST 2007
> version: 1.0.1
> mode: client-side SMTP AUTH
> 
> -- basics --
> Postfix: 1.1.11
> System: Debian GNU/\s 3.0 \n \l
> 
> -- smtp is linked to --
>         libsasl.so.7 => /usr/lib/libsasl.so.7 (0x40145000)
> 
> -- active SMTP AUTH and TLS parameters for smtp --
> relayhost = rom.iunius.org

Setze hier am besten
relayhost = [rom.iunius.org]

Dies verhindert, dass Postfix versucht, einen MX-Eintrag für
rom.iunius.org zu finden.

> smtp_sasl_auth_enable = yes

Sehr schön.

> smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth

Hier ist jetzt interessant, was genau in /etc/postfix/smtp_auth drinsteht.

Es sollte folgendes darin stehen:

[rom.iunius.org]	user:password

Der hostname muss exakt übereinstimmen mit dem Namen des Hosts, an den
dein Postfix versenden will. Ich habe gerade getestet, dass auch nach
STARTTLS die Mechanismen verfügbar sind:

250-rom.iunius.org
250-STARTTLS
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME

Ich finde es niedlich, dass er auch bei bestehender TLS-Verbindung noch
STARTTLS anbietet. (^-^)
Postfix blendet das sinnigerweise dann aus.

> smtp_sasl_security_options = noanonymous, noplaintext

Gut, dies verhindert, dass Postfix versucht, über PLAIN zu
authentifizieren. Damit bleibt nur CRAM-MD5 und DIGEST-MD5.

> -- listing of /usr/lib/sasl --
> total 240
> drwxr-xr-x    2 root     root         4096 May  3 13:06 .
> drwxr-xr-x   28 root     root         4096 May  2 12:49 ..
> -rw-r--r--    1 root     root         5520 Oct 13  2004 libanonymous.so
> -rw-r--r--    1 root     root         5520 Oct 13  2004 libanonymous.so.1
> -rw-r--r--    1 root     root         5520 Oct 13  2004
> libanonymous.so.1.0.16
> -rw-r--r--    1 root     root         9988 Oct 13  2004 libcrammd5.so
> -rw-r--r--    1 root     root         9988 Oct 13  2004 libcrammd5.so.1
> -rw-r--r--    1 root     root         9988 Oct 13  2004 libcrammd5.so.1.0.17
> -rw-r--r--    1 root     root        27276 Oct 13  2004 libdigestmd5.so
> -rw-r--r--    1 root     root        27276 Oct 13  2004 libdigestmd5.so.0

Okay, auf deinem System sind beide Libraries vorhanden.

> -rw-r--r--    1 root     root        27276 Oct 13  2004
> libdigestmd5.so.0.0.19
> -rw-r--r--    1 root     root        11964 Oct 13  2004 libgssapiv2.so
> -rw-r--r--    1 root     root        11964 Oct 13  2004 libgssapiv2.so.1
> -rw-r--r--    1 root     root        11964 Oct 13  2004
> libgssapiv2.so.1.0.14
> -rw-r--r--    1 root     root         7776 Oct 13  2004 liblogin.so
> -rw-r--r--    1 root     root         7776 Oct 13  2004 liblogin.so.0
> -rw-r--r--    1 root     root         7776 Oct 13  2004 liblogin.so.0.0.6
> -rw-r--r--    1 root     root         7428 Oct 13  2004 libplain.so
> -rw-r--r--    1 root     root         7428 Oct 13  2004 libplain.so.1
> -rw-r--r--    1 root     root         7428 Oct 13  2004 libplain.so.1.0.15
> 
> 
> -- permissions for /etc/postfix/smtp_auth --
> -rw-r--r--    1 root     root           36 Apr 25 12:14
> /etc/postfix/smtp_auth
> 
> -- permissions for /etc/postfix/smtp_auth.db --
> -rw-r--r--    1 root     root        12288 May  3 13:40
> /etc/postfix/smtp_auth.db
> 
> /etc/postfix/smtp_auth.db is up to date.
> 
> -- active services in /etc/postfix/master.cf --
> # service type  private unpriv  chroot  wakeup  maxproc command + args
> #               (yes)   (yes)   (yes)   (never) (50)
> smtp      inet  n       -       -       -       -       smtpd
> pickup    fifo  n       -       -       60      1       pickup
> cleanup   unix  n       -       -       -       0       cleanup
> qmgr      fifo  n       -       -       300     1       qmgr
> rewrite   unix  -       -       -       -       -       trivial-rewrite
> bounce    unix  -       -       -       -       0       bounce
> defer     unix  -       -       -       -       0       bounce
> flush     unix  n       -       -       1000?   0       flush
> smtp      unix  -       -       -       -       -       smtp

smtp läuft im chroot. Es kann natürlich sein, dass der Client damit keinen
Zugriff auf /etc/postfix/smtp_auth hat oder diese unter /var/spool/postfix
sucht.

Prüfe bitte mal, ob Postfix überhaupt versucht, sich zu authentifizieren.
Das würde dann etwa so aussehen:

May  3 11:40:47 katgar postfix/smtpd[30798]: connect from
temira.washu.lab[192.168.0.5]
May  3 11:40:47 katgar postfix/smtpd[30798]: setting up TLS connection
from temira.washu.lab[192.168.0.5]
May  3 11:40:47 katgar postfix/smtpd[30798]: TLS connection established
from temira.washu.lab[192.168.0.5]: TLSv1 with cipher DHE-RSA-AES256-SHA
(256/256 bits)
May  3 11:40:48 katgar postfix/smtpd[30798]: NOQUEUE:
client=temira.washu.lab[192.168.0.5], sasl_method=PLAIN, sasl_username=user

So eine Zeile wie die letzte müsstest du haben, wenn Postfix versucht,
sich zu authentifizieren. Das NOQUEUE kommt von dem smtpd_proxy_filter,
den ich gerade teste.

> showq     unix  n       -       -       -       -       showq
> error     unix  -       -       -       -       -       error
> local     unix  -       n       n       -       -       local
> virtual   unix  -       n       n       -       -       virtual
> lmtp      unix  -       -       n       -       -       lmtp
> cyrus     unix  -       n       n       -       -       pipe
>   flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -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=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender
> $recipient
> scalemail-backend unix  -       n       n       -       2       pipe
>   flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
> ${nexthop} ${user} ${extension}
> 
> smtps     inet  n       -       n       -       -       smtpd -o
> smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
> 587       inet  n       -       n       -       -       smtpd -o
> smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
> 
> -- mechanisms on rom.iunius.org --
> 250-AUTH LOGIN CRAM-MD5 PLAIN
> 250-AUTH=LOGIN CRAM-MD5 PLAIN
> 
> 
> -- end of saslfinger output --
> 
> Und noch Postconf hinterher:
> 
> alias_database = hash:/etc/postfix/aliases/aliases.db
> alias_maps = hash:/etc/postfix/aliases/aliases,
> 
> hash:/etc/postfix/aliases/useraliases, 
> 
> 
>                      mysql:/etc/postfix/mysql-forward.cf
> allow_mail_to_commands = alias
> allow_mail_to_files =
> allow_min_user = no
> allow_percent_hack = no
> append_dot_mydomain = no
> biff = no
> broken_sasl_auth_clients = yes
> command_directory = /usr/sbin
> config_directory = /etc/postfix
> daemon_directory = /usr/lib/postfix
> expand_owner_alias = yes
> local_destination_concurrency_limit = 1
> local_destination_recipient_limit = 1
> local_recipient_maps =
> hash:/etc/postfix/aliases/users,
> 
> hash:/etc/postfix/aliases/aliases,
>                                     hash:/etc/postfix/aliases/useraliases
> mailbox_command =
> mailbox_size_limit = 0
> mailbox_transport = cyrus
> masquerade_classes =
> envelope_sender,
> 
> envelope_recipient,
>                                    header_sender,
> masquerade_domains = $mydomain
> masquerade_exceptions = mailer-daemon
> mydestination = $myhostname, $myhostname.$mydomain localhost.$mydomain
> $mydomain
> myhostname = santa.springfield.home
> mynetworks = 127.0.0.0/8, /etc/postfix/server
> mynetworks_style = host
> myorigin = /etc/mailname
> notify_classes = 2bounce, protocol, policy, resource, software
> owner_request_special = yes
> parent_domain_matches_subdomains =
> prepend_delivered_header = forward
> program_directory = /usr/lib/postfix
> recipient_delimiter =
> relay_domains = $mydomain .$mydomain

Das wird nicht funktionieren, da du oben unter
"parent_domain_matches_subdomains = " dies explizit deaktiviert hast.

> relayhost = rom.iunius.org
> require_home_directory = no
> setgid_group = postdrop
> smtp_sasl_auth_enable = yes
> smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
> smtp_sasl_security_options = noanonymous, noplaintext
> smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
> smtpd_client_restrictions = check_client_access
> hash:/etc/postfix/client_restrictions, reject
> smtpd_delay_reject = no
> smtpd_helo_required = no
> smtpd_recipient_restrictions = check_client_access
> hash:/etc/postfix/recipient_restrictions, reject
> smtpd_restriction_classes = nur_intern
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_local_domain = $myhostname
> smtpd_sasl_security_options = noanonymous, noplaintext
> smtpd_sender_login_maps = hash:/etc/postfix/aliases/owners
> smtpd_sender_restrictions = check_client_access
> hash:/etc/postfix/sender_restrictions, reject
> strict_rfc821_envelopes = no
> swap_bangpath = no
> transport_maps = hash:/etc/postfix/transport
> 
> Gruß,
>     Andreas
> 


-- 
Sandy

Antworten bitte nur in die Mailingliste!
PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com




Mehr Informationen über die Mailingliste Postfixbuch-users