我的公司最近设置了一个Active Directory驱动的Microsoft Exchange环境来整合传出的邮件。 我们有一套临时服务器,现在应该使用我们的MSEXCHG作为传出邮件的智能主机。
这些服务器位于DMZ中,这就是为什么在Exchange 2010 smarthost身份validation中使用upvoted解决scheme的原因? 不是一种替代scheme,因为我们不能允许DMZ中的服务器通过我们的Exchange服务器发送邮件。
我们在MSEXCHG中所做的事情:
我们在exim4 (8)做的事情:
update-exim4.conf (8) (比较exim4_files (5) ),我们configuration了exim使用exchange.contoso.com:587作为智能主机。 exim4_files (5) )中,我添加了以下行: exchange.contoso.com:[email protected]:secret123 : exim4_files (5) ) 在使用上述configuration启动exim之后,我在mainlog中得到以下两个TLS错误:
TLS error on connection to ex.contoso.com [192.168.1.8] (recv): A TLS packet with unexpected length was received. TLS error on connection to ex.contoso.com [192.168.1.8] (send): The specified session has been invalidated for some reason. 然后,我们的MSEXCHG拒绝发送邮件,并显示以下(最终)日志条目:
** [email protected] R=smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=1538: host ex.contoso.com [192.168.1.8]: 530 5.7.1 Client was not authenticated
更多的东西我已经尝试过了
MAIN_TLS_ENABLE = 1放入exim4.conf.localmacros ( http://blog.xig.ch/Exim-Smarthost-mit-Authentifizierung-%FCber-STARTTLS_127.html ) 所以,强制性的问题:我们如何能够使用我们的MSEXCHG环境作为智能主机?
贵组织是否为内部服务器运行自己的证书颁发机构? 也许您需要将Exchange服务器的CA证书添加到Exim的证书信任存储中? 很多产品都不会很好地报告这个错误(我不知道Exim是否会)。
Wireshark(使用tcpdump -p -s0 -w /tmp/foo.pcap首先在服务器上捕获,然后使用Wireshark复制到本地工作站)应该能够显示从Exchange发送的服务器证书,如果客户端在此之后挂起,那么缺lessCA证书是常见原因。
我们的问题是相当具体的我们的设置。 我们有一个以上的Exchange服务器与作为AP的负载均衡器并行运行。 LB被错误地configuration,导致它忽略了即使在成功的STARTTLS握手之后提供任何authentication方法栏NTLM和GSSAPI 。
通过swaks jetmore.org进行深入testing(可以高度推荐这个工具)揭示了这一点。
问题是由于TLS证书。 解决程序:
sudo apt-get install openssl
sudo / usr / share / doc / exim4-base / examples / exim-gencert
sudo nano /etc/exim4/exim4.conf.localmacros
main_tls_enable = '1'