
Configuré un servidor de correo en AWS EC2 siguiendo las instrucciones de Flurdy:http://flurdy.com/docs/postfix/en general ha ido bien.
Mi problema es que preferiría utilizar el puerto SMTP 587 con TLS en lugar del 465 con SSL. Creo que este es un requisito relevante ya que se considera que el puerto 465 no está preparado para el futuro.
Las instrucciones en el sitio de Flurdy están diseñadas para permitir ambas cosas, sin embargo, ¡no puedo hacer que 587 funcione! 465 con SSL funciona de maravilla.
También debo mencionar que esta compilación usa sasl con MySQL y creo que es por eso que no encontré mucha ayuda cuando busqué los errores en Google. Creo que el error está en algún lugar del ámbito SASL/PAM, pero no he tenido suerte.
Estas son algunas de las salidas del registro:
REGISTRO ELECTRÓNICO
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]*
Mi maestro.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
También hay otras configuraciones como AMAVIS, pero sospecho que todo está bien.
El registro SQL muestra todas las conexiones y consultas funcionando correctamente.
He usado TELNET para realizar pruebas y simplemente cierra la conexión cuando intento la autenticación con el puerto 587. Si abro el puerto 25 en mi servidor, entonces puedo completar un INICIO DE SESIÓN DE AUTENCIÓN exitoso.
Aquí está la diferencia en la respuesta de EHLO con 25 (cuando está abierto) y 587. Noté que 587 no incluye AUTH. ¿Es este el problema?
$ 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
He reiniciado los servicios postfix y saslauthd varias veces. También verifiqué dos veces las contraseñas y los nombres de usuario en la base de datos. He repasado las instrucciones y he comprobado que no haya errores de configuración ni de ortografía, aunque es probable que esto sea lo que suceda al final :-)
El servidor es UBUNTU 13.10
Avíseme si puedo proporcionar más información para ayudar con la depuración.
¡Todos los pensamientos son bienvenidos!
Respuesta1
Yo también seguíEl tutorial de Flurdy.y tuve un problema similar: sólo podía enviar correo a través del puerto 25 (smtpd), pero no a través del 587 (envío). Descubrí que el problema era exactamente que, según sus instrucciones, el puerto 25 estaba configurado para ejecutarse en chroot pero el 587 no; parece ser un error en el tutorial. Consulte esta parte de las instrucciones de flurdy:
De forma predeterminada, sólo está habilitado el servicio smtp normal, lo cual está bien. Pero prefiero habilitar el envío (puerto 587), para que los clientes puedan usarlo y puedo restringirlos solo a TLS. También habilité el servicio smtps (puerto 465), para cierta compatibilidad con algunos clientes más antiguos (outlook express, etc.).
Justo debajo de este texto puede encontrar esta línea, que indica que el demonio para el puerto de envío no utilizará chroot:
submission inet n - n - - smtpd
Lo sé porque mi /etc/postfix/master.cf
archivo original tenía comentarios que mostraban esta leyenda:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
Justo debajo de la lista de opciones para el puerto de envío se encuentra la siguiente línea, que configura smtps (puerto 465):
smtps inet n - - - - smtpd
A partir de esto puedes ver que está usando el valor predeterminado (supongo que el -
signo significa que usará el valor predeterminado, que es usar chroot).
Bien, entonces, cuando miras la sección de autenticación SASL, donde dice:
Cambie la forma en que se ejecuta SASLAUTHD:
Puedes ver que la OPTIONS
variable contiene la siguiente ruta:
# 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"
Nuevamente, con la ayuda de mi /etc/default/saslauthd
archivo comentado originalmente, noté esta clara explicación:
# 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"
Dado que mi OPTIONS
variable especificaba claramente el caso de chroot, simplemente cambié mi configuración de envío para /etc/postfix/master.cf
usar también chroot. Después de reiniciar el servidor, solo para asegurarme de que todos los servicios se reiniciaron correctamente, funcionó de maravilla, ahora puedo enviar correos electrónicos a través del puerto 25 o 587.
¡Espero que también te ayude! Yo también perdí bastante tiempo para ver esto...