Exchange 2010에 대한 인증 SMTP 클라이언트 릴레이로 Postfix를 사용하는 문제

Exchange 2010에 대한 인증 SMTP 클라이언트 릴레이로 Postfix를 사용하는 문제

메일을 Exchange 2010으로 릴레이하기 위해 postfix를 사용하고 있습니다. 내 구성은 다음과 같습니다.

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에는 Exchange의 일부 계정에 대한 로그인 정보가 포함되어 있습니다.) 이 구성을 사용하면 이메일을 Exchange에 전달할 수 있습니다. 문제는 Postfix에서 보낸 메시지에 헤더가 있다는 것입니다.

X-MS-Exchange-Organization-AuthAs: Anonymous

메시지는 Exchange 시스템에서 인증되지 않은 메시지처럼 처리됩니다. 즉, 메일 그룹에 보낼 때 보낸 사람이 인증되어야 하며 오류가 발생했습니다: #550 5.7.1 RESOLVER.RST.AuthRequired; 인증 필요 ##rfc822;[이메일 보호됨]). Postfix와 동일한 계정으로 Outlook을 사용하고 있는데 문제없이 보낼 수 있습니다. 두 경우에서 내가 깨달은 차이점은 NTLM 인증 기계를 사용하여 Outlook을 보내고 LOGIN 기계를 사용하여 Postfix를 보내는 것입니다. 어떤 아이디어?

답변1

AlexRobinson의 답변에 따르면 문제는 Postfix에 있습니다. Postfix 2.9 이상에서는 이 문제가 기본적으로 수정되었습니다. 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.

답변2

나는 같은 문제를 가지고있다. 그리고 이메일이 개인이 아닌 그룹에게 전송되면 문제가 발생합니다. 메시지가 인증되지 않은 경우 Exchange 서버는 그룹에 전송하지 않습니다. 그러나 postfix가 로그온하여 인증하도록 설정되어 있으면 이메일이 인증되지 않는 이유는 무엇입니까? 힌트: 텔넷을 사용하여 메일을 보내려면 이메일을 보내세요.~ 할 것이다인증됩니다. 이메일에 포함될 헤더는 X-MS-Exchange-Organization-AuthAs: Internal(내 경우에는)입니다. 그리고 이메일은 그룹으로 이동됩니다!

내가 찾은 내용은 다음과 같습니다(postfix 피어 로깅 수준을 4로 설정). postfix는 SMTP 명령을 보냅니다 Mail From: ...... AUTH=<>. 밖으로 나가면 AUTH=<>모든 것이 잘됩니다. 그것을 넣으면 Exchange는 다음과 같이 말합니다 .... Anonymous.

나는 지금 왜 postfix가 거짓말인지 알아보고 있습니다.

아. 그것을 발견. smtp_proto.cpostfix v2.8 의 1358행 . 하드 코딩되었습니다. 물론 지금. 그게 가장 불행한 일이에요. 코드는 보안 관점에서 볼 때 매우 정확하지만 postfix SMTP 클라이언트에서 이 SMTP 전송 코드를 받는 사람을 제어할 수 있는 경우에는 정확하지 않습니다.

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

smtp_proto.c이 시점에서 처음부터 패치하고 postfix를 빌드하는 것 외에는 무엇을 해야할지 모르겠습니다 . 왝.

관련 정보