[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