巧用Office365中的Exchange Online Protection(二)

前面的文章《巧用Office365中的Exchange Online Protection(一)》介绍了,如何利用Office365的EOP来作为本地Exchange Server的反垃圾邮件网关,但是对于外发邮件怎么去使用Office365的EOP来进行过滤以防止本地Exchange Server的公网IP被列入黑名单呢?

由于我的权限和资源有限,在写完之前那篇博客后我也做了尝试:

1、 在Office365上新建一个连接器:从本地Exchange Server到Office365的固定邮件流

2、 在本地Exchange Server上新建发送连接器并将之前的所有发送连接器删掉

但这些都没有起作用,直到今晚我能够远程到Exchange Server虚拟机并搞了一个公网SSL证书上去之后一切情况得到了改变(这也是导致我隔了两天才把第二部分补上的根本原因)。

一起来分享一下整个过程吧:

首先我在没有做任何操作的情况下创建一封邮件发给我的QQ邮箱,可用看到我的QQ邮箱是可用收到邮件的,我们把这个邮件头摘出来进行分析

clip_image002

clip_image004

通过微软远程分析连接器对邮件头进行分析,发现这封邮件直接从Exchange Server发到了我的QQ邮箱,而并没有经过Office365的Exchange Online Protection

clip_image006

随即我登录到ExchangeOnline管理中心,去新建一个连接器,并选择邮件流的走向为本地Exchange Server到Office365的路径

clip_image008

定义连接器的名称

clip_image010

然后我这里直接选择使用本地Exchange Server的公网IP地址来识别我本地的Exchange Server,不过微软还是建议通过公网SSL证书来做这个本地Exchange Server的身份识别

clip_image012

点击下一步完成

clip_image014

可用看到在Office365上的连接器就创建完成了

clip_image016

接下来去本地Exchange Server上创建发送连接器,这里由于当时无法远程到服务器里面去,所以只能在web中进行创建(但是在web中创建简直坑太多,而且都是没法定义高级功能的)

clip_image018

写上发送连接器的名称,并选择自定义

clip_image020

这里来添加一个智能主机,这里的智能主机可用参考Office365中提供MX记录或者SRV记录中的值

clip_image022

保持默不对智能主机身份进行验证配置

clip_image024添加地址空间还是为 *

clip_image026

源服务器选择现有的Exchange Server

clip_image028

然后创建完成,并把原来的发送连接器禁用掉

clip_image030

然后测试外发邮件,就可用看到发送失败了,原因就是Office365 Exchange Online Protection拒绝了我的邮件,很明显就是一个验证和服务的问题了。但是无法远程到邮件服务器是很蛋疼的。

clip_image032

来看下现在邮件服务器还是使用的内网CA颁发的证书

clip_image034

然后一切的一切,都在今晚得到了改善,搞到一张通配符证书,直接给Exchange Server换上去,默认是没有分配SMTP和IIS服务的,手动分配一下就好了

clip_image036

我也可以远程到Exchange Server上去了,然后我天真的做了set- sendconnector动作来启用cloud services和配置helo/ehlo响应的fqdn,然而现实却是啪啪啪打脸,直接用Set去修改现有参数,可用修改成功,但是一样的不能外发出去

clip_image038

然后去外发邮件,又是提示被拒绝

clip_image040

关于这部分,我反复的去调整所有的参数,折腾了2个小时,一直没有搞定。。。

然后我使用了大招,直接删掉这个发送连接器,然后用powershell来新建发送连接器

clip_image042

这部分微软的官方文档也是写的不靠谱了,居然让我去Exchange Online上新建发送连接器,Office365上有个毛线的发送连接器啊,只有连接器。写文档的印度小哥:要给点力啊,不能范这么低级的错误了

clip_image044

新建的命令如下(再吐槽下Exchange产品组,最后的certificatevalidation参数居然tab不出来,我一个一个字母全部拼出来的):

new-sendconnector -name “Exchange Server to Office365” -addressspaces * -cloudservicesmailenable $true -fqdn mail.ucssi.cn -requiretls $true -smarhosts ucssi-cn.mail.protection.outlook.com -tlsauthlevel certificatevalidation

clip_image046

创建成功,去管理中心看一下这货长什么样的

clip_image048

查看详细信息,也和前面的并无两样,所有这个sendconnector还是适合用powershell来创建

clip_image050

clip_image052

clip_image054

完成这一系列操作后,已经是凌晨了,赶紧发了一封测试邮件到QQ邮箱

clip_image056

这边QQ邮箱收到test01发来的邮件了

clip_image058

然后打开这封邮件的邮件头,其实已经可用看出来这封邮件是从Exchange Online Protection传递过来的了

clip_image060

为了更加直观的看到整个过程,我还是将整个邮件头拿到微软远程分析连接器中去进行了分析,就更加直观的看出来了test01发送邮件到外部首先在Exchange Server内部找到新建的发送连接器,然后直接将邮件路由给Office365,最后Office365经过EOP过滤后确认邮件正常再传递给QQ邮箱

clip_image062

整个过程就分享完了。

总结一下:

1、 强烈建议Exchange Server使用公网SSL

2、 在Office365上创建连接器的时候建议用证书来标识本地Exchange Server,有的企业Exchange Server公网IP地址很多,一个一个添加很麻烦

3、 不要过于的相信微软官方文档,自己在看文档的时候也要根据自身的经验去分析一下微软官方说的准不准确

4、 这类特殊的发送连接器创建,还是乖乖的用Powershell去搞,不然很有可能像我这样搞几个小时后再去查微软的文档,还查出来一个有点小问题的文档出来。

5、 中国版Office365和国际版Office365都提供这个功能(我的实验环境用的是国际版)

最后,原创不易,各位可以随意打赏~

猜你喜欢

转载自blog.51cto.com/scnbwy/2340392