
Ich habe einen Mailserver auf AWS EC2 gemäß den Anweisungen von Flurdy eingerichtet:http://flurdy.com/docs/postfix/es ist größtenteils gut gelaufen.
Mein Problem ist, dass ich lieber SMTP-Port 587 mit TLS als 465 mit SSL verwenden möchte. Ich glaube, das ist eine relevante Anforderung, da Port 465 als nicht zukunftssicher gilt.
Die Anweisungen auf der Flurdy-Site sind so gestaltet, dass beides möglich ist, aber ich bekomme 587 nicht zum Laufen! 465 mit SSL funktioniert wunderbar.
Ich sollte auch erwähnen, dass dieser Build SASL mit MySQL verwendet, und ich glaube, deshalb habe ich bei der Google-Suche nach den Fehlern nicht viel Hilfe gefunden. Ich glaube, der Fehler liegt irgendwo im SASL-/PAM-Bereich, aber ich hatte kein Glück.
Hier sind einige der Protokollausgaben:
E-MAIL-PROTOKOLL
postfix/smtpd[11328]: connect from MY.ISP.PROVIDER[MY.IP.0.0]
postfix/smtpd[11328]: Anonymous TLS connection established from MY.ISP.PROVIDER[MY.IP.0.0]: TLSv1.2 with cipher AES128-SHA256 (128/128 bits)
postfix/smtpd[11328]: warning: SASL authentication failure: client response doesn't match what we generated (tried bogus)
postfix/smtpd[11328]: warning: MY.ISP.PROVIDER[MY.IP.0.0]: SASL DIGEST-MD5 authentication failed: authentication failure
postfix/smtpd[11328]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
postfix/smtpd[11328]: warning: MY.ISP.PROVIDER[MY.IP.0.0]: SASL LOGIN authentication failed: generic failure
postfix/smtpd[11328]: lost connection after AUTH from MY.ISP.PROVIDER[MY.IP.0.0]
postfix/smtpd[11328]: disconnect from MY.ISP.PROVIDER[MY.IP.0.0]*
Mein master.cf
submission inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject
-o smtpd_sasl_security_options=noanonymous,noplaintext
-o smtpd_sasl_tls_security_options=noanonymous
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sasl_security_options=noanonymous,noplaintext
-o smtpd_sasl_tls_security_options=noanonymous
Es gibt auch andere Konferenzen wie AMAVIS, aber ich vermute, dass das alles in Ordnung ist.
Das SQL-Protokoll zeigt, dass alle Verbindungen und Abfragen ordnungsgemäß funktionieren.
Ich habe TELNET zum Testen verwendet und es schließt einfach die Verbindung, wenn ich die Authentifizierung mit Port 587 versuche. Wenn ich Port 25 auf meinem Server öffne, kann ich eine erfolgreiche Authentifizierungsanmeldung durchführen.
Hier ist der Unterschied in der EHLO-Antwort mit 25 (wenn geöffnet) und 587. Mir ist aufgefallen, dass 587 kein AUTH enthält. Ist das das Problem??
$ telnet my.mailserver.com 587
Trying MY.IP.0.0...
Connected to my.mailserver.com.
Escape character is '^]'.
220 MY-EC2-SERVER-NAME.localdomain ESMTP Postfix
EHLO my.mailserver.com
250-MY-EC2-SERVER-NAME.localdomain
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
$ telnet my.mailserver.com 25
Trying MY.IP.0.0...
Connected to my.mailserver.com.
Escape character is '^]'.
220 MY-EC2-SERVER-NAME.localdomain ESMTP Postfix
EHLO my.mailserver.com
250-MY-EC2-SERVER-NAME.localdomain
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Ich habe die Dienste Postfix und Saslauthd mehrmals neu gestartet. Ich habe auch die Passwörter und Benutzernamen in der Datenbank doppelt überprüft. Ich habe die Anweisungen durchgesehen und auf Fehlkonfigurationen und Rechtschreibfehler geprüft, obwohl dies am Ende wahrscheinlich das Ergebnis sein wird :-)
Der Server ist UBUNTU 13.10
Bitte lassen Sie mich wissen, ob ich weitere Informationen zur Fehlerbehebung bereitstellen kann.
Alle Gedanken sind willkommen!
Antwort1
Ich folgte auchFlurdys Tutorialund hatte ein ähnliches Problem: Ich konnte nur E-Mails über Port 25 (SMTP) senden, aber nicht über Port 587 (Submission). Ich fand heraus, dass das Problem genau darin lag, dass Port 25 gemäß seinen Anweisungen für den Betrieb in Chroot konfiguriert war, 587 jedoch nicht – es scheint sich um einen Fehler im Tutorial zu handeln. Sehen Sie sich diesen Teil von Flurdys Anweisungen an:
Standardmäßig ist nur der normale SMTP-Dienst aktiviert, was in Ordnung ist. Ich ziehe es jedoch vor, die Übermittlung (Port 587) zu aktivieren, damit Clients sie verwenden können und ich sie nur auf TLS beschränken kann. Außerdem ist der SMTP-Dienst (Port 465) aktiviert, um eine gewisse Kompatibilität mit einigen älteren Clients (Outlook Express usw.) zu gewährleisten.
Direkt unter diesem Text finden Sie die folgende Zeile, die besagt, dass der Daemon für den Übermittlungsport kein Chroot verwendet:
submission inet n - n - - smtpd
Ich weiß das, weil meine Originaldatei /etc/postfix/master.cf
Kommentare mit dieser Legende enthielt:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
Direkt unter der Optionsliste für den Übermittlungsport befindet sich die folgende Zeile, die SMTPs (Port 465) konfiguriert:
smtps inet n - - - - smtpd
Daran können Sie erkennen, dass die Standardeinstellung verwendet wird (ich nehme an, das -
Zeichen bedeutet, dass die Standardeinstellung verwendet wird, also chroot).
Ok, dann schauen Sie sich den Abschnitt zur SASL-Authentifizierung an, wo es heißt:
Ändern Sie, wie SASLAUTHD ausgeführt wird:
Sie können sehen, dass die OPTIONS
Variable den folgenden Pfad enthält:
# Switch this to be under postfix's spool
# And add -r so that the realm(domain) is part of the username
OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"
Auch hier habe ich mithilfe meiner ursprünglich kommentierten /etc/default/saslauthd
Datei diese klare Erklärung notiert:
# Other options (default: -c -m /var/run/saslauthd)
# Note: You MUST specify the -m option or saslauthd won't run!
#
# WARNING: DO NOT SPECIFY THE -d OPTION.
# The -d option will cause saslauthd to run in the foreground instead of as
# a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish
# to run saslauthd in debug mode, please run it by hand to be safe.
#
# See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.
# See the saslauthd man page and the output of 'saslauthd -h' for general
# information about these options.
#
# Example for chroot Postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
# Example for non-chroot Postfix users: "-c -m /var/run/saslauthd"
#
# To know if your Postfix is running chroot, check /etc/postfix/master.cf.
# If it has the line "smtp inet n - y - - smtpd" or "smtp inet n - - - - smtpd"
# then your Postfix is running in a chroot.
# If it has the line "smtp inet n - n - - smtpd" then your Postfix is NOT
# running in a chroot.
OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"
Da meine OPTIONS
Variable eindeutig den Chroot-Fall spezifizierte, habe ich einfach meine Übermittlungskonfiguration geändert, um /etc/postfix/master.cf
auch Chroot zu verwenden. Nach dem Neustart des Servers – nur um sicherzustellen, dass alle Dienste ordnungsgemäß neu gestartet wurden – hat es wunderbar geklappt, jetzt kann ich E-Mails entweder über Port 25 oder 587 senden.
Hoffe, es hilft dir auch weiter! Ich habe auch ziemlich viel Zeit verloren, um mir das anzusehen ...