Page 1 of 1

Postfix Sender-abhängige Authentifizierung -> 535 Incorrect authentication da

Posted: 28. Oct 2014 9:59
by zax_v1.2
Hallo!

Ich habe ein Problem mit meiner Postfix Konfiguration, welches ich bereits hier http://forum.ubuntuusers.de/topic/postf ... ierung-53/ geschildert aber bisher leider keine Lösung gefunden habe. Daher wollte ich euch nochmal um Hilfe bitten.

Es handelt sich um ein Debian 6 System, bei der Einrichtung des Mailservers habe ich mich an diese Anleitung gehalten: http://wiki.nefarius.at/linux/der_perfekte_mail-server und die Anleitung zur Sender-abhängigen Authentifizierung von hier http://wiki.ubuntuusers.de/Postfix/Erwe ... ifizierung eingefügt.

Das funktioniert auch mit manchen SMTP-Servern mit manchen (vielen) aber leider auch nicht. Bei denen wo es nicht geht, wird folgendes geloggt:

Code: Select all

Sep 22 17&#58;59&#58;40 <meinservername> postfix/smtp&#91;7781&#93;&#58; 70520153A0007&#58; to=<user@domain1.de>, relay=smtp.domain2.de&#91;<ip-Adresse>&#93;&#58;25, delay=8781, delays=8781/0.03/0.11/0, dsn=4.0.0, status=deferred &#40;SASL authentication failed; server smtp.domain2.de&#91;<ip-Adresse>&#93; said&#58; 535 Incorrect authentication data&#41;
Die Daten sind aber korrekt in der Datei /etc/postfix/sasl_password eingetragen. Das habe ich mehrfach geprüft und sie sind da per copy-paste reingekommen.

Weil ich mich nicht sehr gut damit auskenne, habe ich mal etwas herumgestochert. Dabei ist mir aufgefallen, dass ein

Code: Select all

nc externer-smtp.server.de smtp
gefolgt von

Code: Select all

ehlo test
bei zwei smtp-Servern wo das ganze funktioniert, z.B. die folgenden beiden Ausgaben liefert:

Code: Select all

250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 100000000
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP

Code: Select all

250-ENHANCEDSTATUSCODES
250-8BITMIME
250-PIPELINING
250-DELIVERBY
250-SIZE 104857600
250-AUTH SCRAM-SHA-1 DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-STARTTLS
250 HELP
Bei einem wo es nicht geht z.B. folgende Ausgabe bringt:

Code: Select all

250-SIZE 36700160
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
Die für mich auffälligsten Zeilen sind die AUTH Zeilen (immerhin geht es hier um ein Authentifizierungsproblem ;-) Bei denen wo es geht steht ja DIGEST-MD5 und CRAM-MD5 mit dabei. Ich könnte mir vorstellen, dass ich irgendwas mit dem starttls nicht richtig gemacht habe oder irgendwelche Module nicht installiert habe. Bin aber leider ratlos und weiß nicht wo ich weiter gucken kann.

Zu guter letzt noch meine Postfix Konfiguration mittels postconf -n

Code: Select all

alias_database = hash&#58;/etc/aliases
alias_maps = hash&#58;/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = smtp-amavis&#58;&#91;127.0.0.1&#93;&#58;10024
inet_interfaces = all
mailbox_size_limit = 0
message_size_limit = 102400000
mydestination = rechnername.domain.de, localhost.domain.de, localhost
mydomain = domain.de
myhostname = rechnername.domain.de
mynetworks = 127.0.0.0/8 &#91;&#58;&#58;ffff&#58;127.0.0.0&#93;/104 &#91;&#58;&#58;1&#93;/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
sender_dependent_relayhost_maps = hash&#58;/etc/postfix/sender_dependent
smtp_connection_cache_on_demand = no
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash&#58;/etc/postfix/sasl_password
smtp_sasl_security_options = noplaintext noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sender_dependent_authentication = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree&#58;$&#123;data_directory&#125;/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name &#40;Debian/GNU&#41;
smtpd_recipient_restrictions = permit_mynetworks    permit_sasl_authenticated    reject_unauth_destination    permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/postfix/sslcert/meincertfile.pem
smtpd_tls_key_file = /etc/postfix/sslcert/meinkeyfile.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree&#58;$&#123;data_directory&#125;/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev&#58;/dev/urandom
virtual_alias_maps = proxy&#58;mysql&#58;$config_directory/mysql_virtual_alias_maps.cf,    proxy&#58;mysql&#58;$config_directory/mysql_virtual_alias_domain_maps.cf
virtual_gid_maps = static&#58;8
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = proxy&#58;mysql&#58;$config_directory/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = proxy&#58;mysql&#58;$config_directory/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_maps = proxy&#58;mysql&#58;$config_directory/mysql_virtual_mailbox_maps.cf,    proxy&#58;mysql&#58;$config_directory/mysql_virtual_alias_domain_mailbox_maps.cf,    proxy&#58;mysql&#58;$config_directory/mysql_virtual_alias_domain_catchall_maps.cf
virtual_minimum_uid = 150
virtual_transport = dovecot
virtual_uid_maps = static&#58;150
Wäre sehr dankbar, wenn mir jemand weiterhelfen könnte.

Gruß ZAX

Posted: 28. Oct 2014 11:34
by Janka
Hat der Benutzer, der "sendmail -bs" startet, die Berechtigung, den privaten Schlüssel auszulesen?

Janka

Posted: 28. Oct 2014 12:05
by zax_v1.2
Hey, danke für deine Hilfe und sorry für meine Fragen, bin recht ungebildet und versuche grade mir das ein bisschen anzueignen.

Welcher wäre dieser Nutzer?
-Da der Fehler ja von postfix geloggt wird, ist das postfix?

Der private Schlüssel ist das was unter:
smtpd_tls_key_file = /etc/postfix/sslcert/meinkeyfile.key
eingetragen ist, oder?
Die Datei war nur für den Besitzer lesbar und der war der root.
Habe die Datei mal der Gruppe postfix gegeben und für die lesbar gemacht. Funktioniert zwar immer noch nicht, ich habe jetzt aber die Zeile

Code: Select all

Oct 28 11&#58;57&#58;07 <meinservername> postfix/smtp&#91;16062&#93;&#58; certificate verification failed for <entfernter-smtp.de>&#91;<dessen ip>&#93;&#58;25&#58; untrusted issuer /C=DE/O=Deutsche Telekom AG/OU=T-TeleSec Trust Center/CN=Deutsche Telekom Root CA 2
in den logs. Muss ich deren root-CA oder wie das heißt bei mir installieren oder bekanntmachen?

Vielen Dank nochmal

Posted: 28. Oct 2014 20:06
by Janka
Du hast dieses Zertifikat sicher schon in /etc/ssl/certs drin. Allerdings verwendet Postfix dieses Verzeichnis nicht automatisch. Du musst die Option smtp_tls_CApath setzen. Siehe
http://www.postfix.org/postconf.5.html#smtp_tls_CAfile

Janka

Posted: 28. Oct 2014 20:39
by zax_v1.2
Ja, das Zertifikat habe ich tatsächlich schon vorgefunden als ich versucht habe es zu installieren.
Ich habe den Eintrag smtp_tls_CApath gesetzt und postfix neugestartet, der Fehler erscheint aber leider immer noch.

ZAX

Posted: 29. Oct 2014 13:41
by zax_v1.2
Habe hier mein Problem mit den Zertifikaten gefunden: http://giantdorks.org/alain/fix-for-pos ... tls-error/
Es scheint, dass postfix unter Debian chrooted läuft und daher keinen Zugriff auf das Verzeichnis /etc/ hat. Daher kann man aber den Eintrag:
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
setzen, weil die Zertifikate alle in /var/spool/postfix/etc/ssl/certs/ca-certificates.crt zusammen liegen.

Jetzt ist die untrusted Zeile in den logs zwar weg, der Fehler
535 Incorrect authentication data
ist aber geblieben.

Dann habe ich gedacht, dass er evtl. auch auf die Datei /etc/postfix/sslcert/meinkeyfile.key nicht zugreifen darf, weil die ja auch in /etc liegt.

Ich habe dann man testweise den Ordner:
/var/spool/postfix/etc/postfix/sslcert/
angelegt und die Dateien aus /etc/postfix/sslcert da rein kopiert.
Das hat aber auch noch nix geholfen. Es bleibt bei der Meldung:

Code: Select all

&#40;SASL authentication failed; server smtp.domain2.de&#91;<ip-Adresse>&#93; said&#58; 535 Incorrect authentication data&#41;
Geht das so überhaupt? Habe ich eine Kleinigkeit falsch gemacht oder liegt der Fehler wahrscheinlich ganz woanders?

Vielen Dank für die Hilfe und die Beseitigung von zumindest dem einen Problem.

Re: Postfix Sender-abhängige Authentifizierung -> 535 Incorrect authenticatio

Posted: 04. Nov 2014 18:06
by hastifranki
zax_v1.2 wrote:Die Daten sind aber korrekt in der Datei /etc/postfix/sasl_password eingetragen. Das habe ich mehrfach geprüft und sie sind da per copy-paste reingekommen.

smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
Hallo,

hast du

postmap sasl_password

ausgeführt?

Mit postmap werden Dateien vom Textformat in das hash-Format konvertiert.

VG
Frank

Posted: 11. Jan 2015 0:34
by zax_v1.2
Hey,
sorry für die späte Antwort. Hatte irgendwie nicht mitbekommen, dass du eine Antwort geschrieben hast.
Ja, postmap sasl_password habe ich ausgeführt.

Ich glaube, dass mein postfix smtp client irgendwie die STARTTLS Sitzung nicht richtig aufbauen kann. Gibt es eine Möglichkeit hier detailliertere Logdateien erzeugen zu lassen, die das Problem zwischen meinem und dem Relayhost besser beleuchten?

Danke

Posted: 11. Jan 2015 15:40
by zax_v1.2
Hallo!

Vielen Dank für eure Hilfe! Es funktioniert nun. Ich habe gefunden, dass ich das logging selektiv für bestimmte Server hochstellen kann und zwar mit der Option

Code: Select all

debug_peer_list = mail.irgend.wo
http://www.postfix.org/postconf.5.html#debug_peer_list

Jetzt wurde sehr detailliert die Kommunikation zwischen den Servern mitgeloggt. Auch habe ich so gesehen, dass die STARTTLS Verbindung korrekt aufgebaut wurde und Passwörter korrekt in der Datei /etc/postfix/sasl_password gefunden und base64 kodiert wurden.
Ich habe dann ein bisschen mit

Code: Select all

openssl s_client -host mail.irgend.wo -port 25 -starttls smtp
(wie hier beschrieben http://www.heise.de/security/artikel/St ... 85453.html) rumgespielt und dabei tatsächlich festgestellt, dass ich wohl den Benutzernamen falsch zusammengestellt habe. Ich schwöre euch, dass die Kombination wie ich sie hatte in meinem Desktop Mailclient funktioniert (gestern Abend noch getestet). Wie auch immer habe ich beim bisschen rumkodieren in Base64 und Verbindungen testen plötzlich einen erfolgreichen Login.
Habe die Daten so in die /etc/postfix/sasl_password eingetragen und nun geht es!!!

Vielen Dank und sorry, dass ich eure Zeit mit sowas dummen verschwendet habe.

Posted: 11. Jan 2015 17:20
by Janka
Was sollte es anders sein, letztlich ist es immer zu 99,99% Fehlkonfiguration, die man ohne probieren einfach nicht sieht, und nur zu 0,01% oder viel weniger sind es Fehlfunktionen in dem Programm. Einfach daraus begründet, dass es für so viele Leute ja einfach funzt.

Janka