1. 程式人生 > >巧用Office365中的Exchange Online Protection(二)

巧用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都提供這個功能(我的實驗環境用的是國際版)

最後,原創不易,各位可以隨意打賞~