
Configurei um servidor de e-mail no AWS EC2 usando as instruções do Flurdy:http://flurdy.com/docs/postfix/na maior parte correu bem.
Meu problema é que prefiro usar a porta SMTP 587 com TLS em vez de 465 com SSL. Acredito que este seja um requisito relevante, pois a porta 465 não é considerada à prova de futuro.
As instruções no site do Flurdy foram elaboradas para permitir ambos, porém não consigo fazer o 587 funcionar! 465 com SSL funciona perfeitamente.
Devo também mencionar que esta compilação usa sasl com MySQL e acho que é por isso que não encontrei muita ajuda quando pesquisei os erros no Google. Acredito que o erro esteja em algum lugar na área SASL/PAM, mas não tive sorte.
Aqui estão algumas das saídas de log:
REGISTRO DE E-MAIL
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]*
Meu mestre.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
Existem também outras configurações, como AMAVIS, mas suspeito que esteja tudo bem.
O log SQL mostra todas as conexões e consultas funcionando corretamente.
Usei o TELNET para teste e ele simplesmente fecha a conexão quando tento a autenticação com a porta 587. Se eu abrir a porta 25 no meu servidor, poderei concluir um AUTH LOGIN com êxito.
Aqui está a diferença na resposta EHLO com 25 (quando aberto) e 587. Notei que 587 não inclui AUTH. Esse é o 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
Reiniciei os serviços postfix e saslauthd várias vezes. Também verifiquei novamente as senhas e nomes de usuário no banco de dados. Examinei as instruções e verifiquei se há erros de configuração e ortografia, embora provavelmente seja isso que acontecerá no final :-)
O servidor é UBUNTU 13.10
Por favor, deixe-me saber se posso fornecer mais informações para ajudar na depuração.
Todos os pensamentos são bem-vindos!
Responder1
Eu também seguiTutorial de Flurdye tive um problema semelhante: só consegui enviar e-mails pela porta 25 (smtpd), mas não pela 587 (envio). Descobri que o problema era exatamente que, de acordo com suas instruções, a porta 25 estava configurada para rodar em chroot, mas a 587 não - parece ser um erro no tutorial. Confira esta parte das instruções do flurdy:
Por padrão, apenas o serviço SMTP normal está habilitado, o que é bom. Mas prefiro habilitar o envio (porta 587), para que os clientes possam utilizá-lo, e posso restringi-los apenas ao TLS. Também habilitou o serviço smtps (porta 465), para alguma compatibilidade com alguns clientes mais antigos (outlook express etc).
Logo abaixo deste texto você pode encontrar esta linha, informando que o daemon para a porta de envio não usará chroot:
submission inet n - n - - smtpd
Eu sei disso porque meu /etc/postfix/master.cf
arquivo original tinha comentários mostrando esta legenda:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
Logo abaixo da lista de opções da porta de envio encontra-se a seguinte linha, que configura o smtps (porta 465):
smtps inet n - - - - smtpd
A partir disso você pode ver que ele está usando o padrão (acho que o -
sinal significa que ele usará o padrão, que é usar chroot).
Ok, então, quando você olha a seção de autenticação SASL, onde diz:
Altere como o SASLAUTHD é executado:
você pode ver que a OPTIONS
variável contém o seguinte caminho:
# 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"
Novamente, com a ajuda do meu /etc/default/saslauthd
arquivo comentado originalmente, observei esta explicação clara:
# 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"
Como minha OPTIONS
variável especificava claramente o caso do chroot, acabei de alterar minha configuração de envio para /etc/postfix/master.cf
usar também o chroot. Depois de reiniciar o servidor - só para ter certeza de que todos os serviços foram reiniciados corretamente - funcionou perfeitamente, agora posso enviar e-mail pela porta 25 ou 587.
Espero que também ajude você! Também perdi um bom tempo para ver isso...