前面的文章《巧用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郵箱是可用收到郵件的,我們把這個郵件頭摘出來進行分析
通過微軟遠程分析連接器對郵件頭進行分析,發現這封郵件直接從Exchange Server發到了我的QQ郵箱,而並沒有經過Office365的Exchange Online Protection
隨即我登錄到ExchangeOnline管理中心,去新建一個連接器,並選擇郵件流的走向爲本地Exchange Server到Office365的路徑
定義連接器的名稱
然後我這裏直接選擇使用本地Exchange Server的公網IP地址來識別我本地的Exchange Server,不過微軟還是建議通過公網SSL證書來做這個本地Exchange Server的身份識別
點擊下一步完成
可用看到在Office365上的連接器就創建完成了
接下來去本地Exchange Server上創建發送連接器,這裏由於當時無法遠程到服務器裏面去,所以只能在web中進行創建(但是在web中創建簡直坑太多,而且都是沒法定義高級功能的)
寫上發送連接器的名稱,並選擇自定義
這裏來添加一個智能主機,這裏的智能主機名字可用參考Office365中提供MX記錄
保持默不對智能主機身份進行驗證配置
源服務器選擇現有的Exchange Server
然後創建完成,並把原來的發送連接器禁用掉
然後測試外發郵件,就可用看到發送失敗了,原因就是Office365 Exchange Online Protection拒絕了我的郵件,很明顯就是一個驗證和服務的問題了。但是無法遠程到郵件服務器是很蛋疼的。
來看下現在郵件服務器還是使用的內網CA頒發的證書
然後一切的一切,都在今晚得到了改善,搞到一張通配符證書,直接給Exchange Server換上去,默認是沒有分配SMTP和IIS服務的,手動分配一下就好了
我也可以遠程到Exchange Server上去了,然後我天真的做了set- sendconnector動作來啓用cloud services和配置helo/ehlo響應的fqdn,然而現實卻是啪啪啪打臉,直接用Set去修改現有參數,可用修改成功,但是一樣的不能外發出去
然後去外發郵件,又是提示被拒絕
關於這部分,我反覆的去調整所有的參數,折騰了2個小時,一直沒有搞定。。。
然後我使用了大招,直接刪掉這個發送連接器,然後用powershell來新建發送連接器
這部分微軟的官方文檔也是寫的不靠譜了,居然讓我去Exchange Online上新建發送連接器,Office365上有個毛線的發送連接器啊,只有連接器。寫文檔的印度小哥:要給點力啊,不能範這麼低級的錯誤了
新建的命令如下(再吐槽下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
創建成功,去管理中心看一下這貨長什麼樣的
查看詳細信息,也和前面的並無兩樣,所有這個sendconnector還是適合用powershell來創建
完成這一系列操作後,已經是凌晨了,趕緊發了一封測試郵件到QQ郵箱
這邊QQ郵箱收到test01發來的郵件了
然後打開這封郵件的郵件頭,其實已經可用看出來這封郵件是從Exchange Online Protection傳遞過來的了
爲了更加直觀的看到整個過程,我還是將整個郵件頭拿到微軟遠程分析連接器中去進行了分析,就更加直觀的看出來了test01發送郵件到外部首先在Exchange Server內部找到新建的發送連接器,然後直接將郵件路由給Office365,最後Office365經過EOP過濾後確認郵件正常再傳遞給QQ郵箱
整個過程就分享完了。
總結一下:
1、 強烈建議Exchange Server使用公網SSL
2、 在Office365上創建連接器的時候建議用證書來標識本地Exchange Server,有的企業Exchange Server公網IP地址很多,一個一個添加很麻煩
3、 不要過於的相信微軟官方文檔,自己在看文檔的時候也要根據自身的經驗去分析一下微軟官方說的準不準確
4、 這類特殊的發送連接器創建,還是乖乖的用Powershell去搞,不然很有可能像我這樣搞幾個小時後再去查微軟的文檔,還查出來一個有點小問題的文檔出來。
5、 中國版Office365和國際版Office365都提供這個功能(我的實驗環境用的是國際版)
最後,原創不易,各位可以隨意打賞~