problema ao usar o Postfix como retransmissão de cliente SMTP autêntica para o Exchange 2010

problema ao usar o Postfix como retransmissão de cliente SMTP autêntica para o Exchange 2010

Estou usando o postfix para retransmitir mensagens para o Exchange 2010. Aqui está minha configuração:

relayhost = [smtp.exchange.2010]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_passwd
smtp_sasl_security_options =
#smtp_sasl_mechanism_filter = ntlm

(/etc/postfix/relay_passwd contém informações de login de algumas contas no Exchange) Com esta configuração posso retransmitir email para o Exchange. O problema é: a mensagem enviada pelo Postfix tem cabeçalho:

X-MS-Exchange-Organization-AuthAs: Anonymous

e a mensagem é tratada como mensagem não autenticada no sistema Exchange (ou seja, ao enviar para o grupo de distribuição exige que os remetentes sejam autenticados, recebi o erro: #550 5.7.1 RESOLVER.RST.AuthRequired; autenticação necessária ##rfc822;[e-mail protegido]). Estou usando o Outlook com a mesma conta do Postfix e ele pode enviar sem problemas. A diferença que percebi entre os dois casos é: envio do Outlook com mecanismo de autenticação NTLM, Postfix usando mecanismo de LOGIN. Qualquer ideia?

Responder1

Pela resposta de AlexRobinson, o problema está no Postfix. Isso foi corrigido (por padrão) no Postfix 2.9 e posterior: http://www.postfix.org/postconf.5.html#smtp_send_dummy_mail_auth

[Incompat 20111106] To work around broken remote SMTP servers, the
Postfix SMTP client by default no longer appends the "AUTH=<>"
option to the MAIL FROM command.  Specify "smtp_send_dummy_mail_auth
= yes" to restore the old behavior.

Responder2

Eu tenho o mesmo problema. E causa problemas se o e-mail for enviado para um grupo e não para um indivíduo. O servidor Exchange não enviará para grupos se a mensagem não for AUTH. Mas se o postfix foi configurado para autenticação por meio de logon, por que o e-mail não foi AUTH? Dica: se você usar telnet para enviar o e-mail, o e-mailvaiser AUTH. o cabeçalho que o email terá será X-MS-Exchange-Organization-AuthAs: Internal(no meu caso). E o e-mail irá para os grupos!

Aqui está o que descobri (definindo o nível de log de pares do postfix como 4): o postfix envia o comando SMTP Mail From: ...... AUTH=<>. Deixe de AUTH=<>fora e está tudo bem. Coloque-o e o Exchange diz: .... Anonymous.

Estou procurando agora descobrir por que o postfix mente.

Ah. Encontrei. Linha 1358 do smtp_proto.cpostfix v2.8. Codificado. Bem agora. Isso é muito lamentável. O código está bastante correto do ponto de vista da segurança, mas não está correto se você tiver controle de quem acessa esse código de envio SMTP em seu cliente SMTP postfix.

/* postfix: smtp_proto.c 
#ifdef USE_SASL_AUTH                                                     
    if (var_smtp_sasl_enable                                      
    && (session->features & SMTP_FEATURE_AUTH))                     
    vstring_strcat(next_command, " AUTH=<>");                        
#endif

Neste ponto, não sei o que fazer além de corrigir smtp_proto.ce construir o postfix do zero. Que nojo.

informação relacionada