如何配置 Postfix 客户端中继到 Exchange 2010 服务器

如何配置 Postfix 客户端中继到 Exchange 2010 服务器

我越来越

(交付暂时中止:SASL 身份验证失败;服务器 myserver.com[xxx.xxx.xxx.x] 表示:535 5.7.3 身份验证不成功)
当我尝试将邮件从 Debian Lenny 盒上的 Postfix 2.5.5-1.1 中继到 Exchange 2010 时。

我想我尝试了所有可能的组合,但肯定遗漏了一些东西。以下是 main.cf 的相关部分:

broken_sasl_auth_clients = 是
smtp_sasl_auth_enable = 是
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = 哈希:/etc/postfix/sasl_passwd
smtp_pix_解决方法 =
smtp_sasl_type = cyrus
smtp_always_send_ehlo = 是
中继主机 = myserver.com

我安装了 libsasl2-modules。有人成功在 Postfix 和 Exchange 之间中继邮件吗?哦,我已经仔细检查过密码是否正确。

答案1

Exchange 服务器将提供GSSAPI(Kerberos)但似乎为 Postfix 提供身份验证服务的 Cyrus SASL 并未配置为处理 GSSAPI。

man 5 postconf | less +/^s​​mtp_sasl_mechanism_filter

这将告诉您需要设置什么smtp_sasl_mechanism_filter以便能够正确地进行身份验证。

答案2

看来,他们破坏了 AUTH LOGIN 实现。我也遇到过这种不幸的情况。以下是我发现的情况:

在 smtp 对话中,当 postfix 尝试执行登录验证时:

250 OK
AUTH LOGIN
334 VXNlcm5hbWU6

在用户名:字符串的末尾有一个 \0(二进制零),我认为它不应该在那里,无论如何,通过在对用户名和密码进行 base64 处理并发送到 exchange 之前在其末尾添加 \0(二进制零),我能够成功登录,但是我不知道如何告诉 postfix 在登录名和密码末尾附加 \0。

# echo -e 'username\0' | base64
abcdefg
# echo -e 'password\0' | base64
hijklmno

250 OK
AUTH LOGIN
334 VXNlcm5hbWU6
abcdefg
334 UGFzc3dvcmQ6
hijklmno
235 2.7.0 Authentication successful.

相关内容