BenBE's humble thoughts Thoughts the world doesn't need yet …

15.06.2010

Outlook und die Authentifizierung

Filed under: Server — Schlagwörter: , , , , , — BenBE @ 18:52:23

Seit kurzem habe ich meinen Mailserver in Bezug auf die Authentifizierung und den Mailversand etwas strenger eingestellt, was soviel heißt wie „ein Fehler und die Verbindung wird geschlossen“. Dieser Ansatz funktioniert auch für die Mail-Einlieferung wunderbar, für den Versand mit Outlook ergibt sich aber ein kleines Problem.

Wie so ziemlich jedes Microsoft-Programm versucht Outlook nämlich, als erstes die Verbindung mit Hilfe von NTLM zu autorisieren, was aber den einen, eingeräumten Versuch ausschöpft und somit zum Abbruch der Verbindung führt:

Jun 15 17:30:36 box1 postfix/smtpd[867]: connect from mailclient.example.com[1.3.3.7]
Jun 15 17:30:36 box1 postfix/smtpd[867]: setting up TLS connection from mailclient.example.com[1.3.3.7]
Jun 15 17:30:36 box1 postfix/smtpd[867]: mailclient.example.com[1.3.3.7]: TLS cipher list "ALL:+RC4:@STRENGTH"
Jun 15 17:30:36 box1 postfix/smtpd[867]: Anonymous TLS connection established from mailclient.example.com[1.3.3.7]: TLSv1 with cipher AES128-SHA (128/128 bits)
Jun 15 17:30:36 box1 postfix/smtpd[867]: warning: mailclient.example.com[1.3.3.7]: SASL NTLM authentication failed: authentication failure
Jun 15 17:30:37 box1 postfix/smtpd[867]: too many errors after AUTH from mailclient.example.com[1.3.3.7]
Jun 15 17:30:37 box1 postfix/smtpd[867]: disconnect from mailclient.example.com[1.3.3.7]

Nun ist die Sache aber nicht ganz so einfach, wie man denken könnte, da Outlook im Gegensatz zu Thunderbird und zahlreichen anderen (zusammen mit meinem Server eingesetzten) Mailclients keine direkte Kontrolle über die verwendeten Login-Methoden lässt. Schauen wir daher einmal, was Outlook der Reihe nach probiert:

Jun 15 17:34:08 box1 postfix/smtpd[1189]: connect from mailclient.example.com[1.3.3.7]
Jun 15 17:34:09 box1 postfix/smtpd[1189]: setting up TLS connection from mailclient.example.com[1.3.3.7]
Jun 15 17:34:09 box1 postfix/smtpd[1189]: mailclient.example.com[1.3.3.7]: TLS cipher list "ALL:+RC4:@STRENGTH"
Jun 15 17:34:09 box1 postfix/smtpd[1189]: Anonymous TLS connection established from mailclient.example.com[1.3.3.7]: TLSv1 with cipher AES128-SHA (128/128 bits)
Jun 15 17:34:09 box1 postfix/smtpd[1189]: warning: mailclient.example.com[1.3.3.7]: SASL NTLM authentication failed: authentication failure
Jun 15 17:34:09 box1 postfix/smtpd[1189]: warning: mailclient.example.com[1.3.3.7]: SASL DIGEST-MD5 authentication failed: authentication failure
Jun 15 17:34:10 box1 postfix/smtpd[1189]: 2E302F8372: client=mailclient.example.com[1.3.3.7], sasl_method=LOGIN, sasl_username=unsuspectinguser@mymailserver.net
Jun 15 17:34:10 box1 postfix/cleanup[1194]: 2E302F8372: prepend: header Received: from Brainfuck (mailclient.example.com [1.3.3.7])??(using TLSv1 with cipher AES128-SHA (128/128 bits))??(No client certificate requested)??by box1.sys.ccs-baumann.de (Postfi from mailclient.example.com[1.3.3.7]; from=<unsuspectinguser@mymailserver.net> to=<unsuspectinguser@mymailserver.net> proto=ESMTP helo=<Brainfuck>: X-Warn: Received header with non-FQDN (from) other than localhost: Brainfuck
Jun 15 17:34:10 box1 postfix/smtpd[1189]: disconnect from mailclient.example.com[1.3.3.7]
Jun 15 17:34:10 box1 postfix/cleanup[1194]: B0C88F8373: prepend: header Received: from Brainfuck (mailclient.example.com [1.3.3.7])??(using TLSv1 with cipher AES128-SHA (128/128 bits))??(No client certificate requested)??by box1.sys.ccs-baumann.de (Postfi from box1.sys.ccs-baumann.de.local[127.0.0.1]; from=<unsuspectinguser@mymailserver.net> to=<unsuspectinguser@mymailserver.net> proto=ESMTP helo=<localhost>: X-Warn: Received header with non-FQDN (from) other than localhost: Brainfuck
Jun 15 17:34:10 box1 amavis[31547]: (31547-09) Passed BAD-HEADER, [1.3.3.7] [1.3.3.7] <unsuspectinguser@mymailserver.net> -> <unsuspectinguser@mymailserver.net>, quarantine: w/badh-woDe-4ipbIKk, mail_id: woDe-4ipbIKk, Hits: -, size: 793, queued_as: B0C88F8373, 205 ms

Wie es scheint, probiert Outlook somit der Reihe nach NTLM, DIGEST-MD5 und LOGIN (Plain).

Nun sollte man annehmen, dass der Postfix für die zu verwendenden Algorithmen eine Einstellung bietet. Und wenn man rein nach der Dokumentation geht, stimmt dies auch. Nur Schade, wenn das nicht funktioniert:

smtpd_sasl_security_options  = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = !ntlm, static:all

Auch die explizite Angabe erlaubter Verfahren funktionierte leider nicht:

smtpd_sasl_security_options  = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login

Also doch zur etwas brutaleren Art übergehen: Deaktivieren wir die Verfahren auf Ebene von SASL2 direkt:

cd /usr/lib/sasl2
mkdir disabled
mv *ntlm* disabled
mv *digestmd5* disabled

Kurz noch mal testen lassen und siehe da: Funktioniert. Die Variante mit eigener smtpd.conf wird daher auf später warten müssen.

Flattr this!

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress