M365 + Exchange Online + Cloudflare 自訂網域郵件設定教學

前言:信寄得出去只是開始

把自訂網域接上 Microsoft 365,並把 DNS 放在 Cloudflare,是很多中小企業與個人站長的標準組合。但「信寄得出去」只是第一步;沒設好 SPF、DKIM、DMARC,信會被 Gmail 丟進垃圾郵件,也擋不住別人冒用你的網域。

這篇文章針對 沒有前置郵件閘道 的環境(沒有 SEG / SPAM Gateway):MX 直接指向 Exchange Online,所有防垃圾、防釣魚、防惡意程式都由內建的 Exchange Online Protection (EOP)負責。這時 EOP 就是唯一防線,不能只停在預設值。

讀完你會完成:

  • Cloudflare 上的 MX、Autodiscover、SPF、DKIM、DMARC 記錄
  • DMARC 從 p=none 分階段收緊到 p=reject
  • 用 EOP 做好反垃圾、反釣魚、反惡意軟體與外寄限制
  • MFA、停用 SMTP AUTH、稽核與告警
  • 一份可以直接拿去用的上線驗收清單

事前準備

這篇的設定只需要 Microsoft 365 內建的 EOP,不必加購 Defender。動手前先確認下列條件:

項目需求
授權Exchange Online Plan 1,或 Microsoft 365 Business Basic / Standard(皆內含 EOP)
DNS網域已託管在 Cloudflare,且有編輯 DNS 的權限
管理權限M365 全域管理員,或 Exchange 系統管理員 + 安全性管理員
工具Exchange Online PowerShell 模組(先執行 Connect-ExchangeOnline)
備份從 Cloudflare(DNS > Records > Export)匯出現有記錄

Safe Links、Safe Attachments、冒名防護(Impersonation)屬於 Defender for Office 365,需要 Business Premium 或加購,本文不涵蓋。文中的 yourdomain.com 請換成你自己的網域。

步驟一:在 Cloudflare 設定 MX 與 Autodiscover

所有郵件相關記錄都必須是 僅 DNS(灰色雲朵) 。這是整篇最重要的一句話。

類型名稱目標Proxy
MX@yourdomain-com.mail.protection.outlook.com(以 M365 後台顯示為準)僅 DNS(灰雲)
CNAMEautodiscoverautodiscover.outlook.com僅 DNS(灰雲)
  • MX 不能開橘雲 :開了 Proxy,Cloudflare 不會替你轉送 SMTP,外部來信會完全送不到微軟。
  • MX 主機名稱與優先級一律從「M365 系統管理中心 > 設定 > 網域 > DNS 記錄」複製,不要手打;部分新租戶的格式不同。
  • 少了 Autodiscover,Outlook 桌面版與手機 App 新增帳號時常卡在「正在搜尋伺服器設定」。
nslookup -type=mx yourdomain.com
nslookup -type=cname autodiscover.yourdomain.com

步驟二:SPF、DKIM、DMARC 郵件身分驗證

這三筆記錄決定 Gmail、Yahoo 是否信任你的信,也是阻止別人冒用網域的關鍵。

SPF:宣告誰可以替你寄信

新增一筆 TXT,名稱 @:

v=spf1 include:spf.protection.outlook.com -all
  • 一個網域 只能有一筆 SPF 。若還有其他寄信服務,合併在同一筆,例如 v=spf1 include:spf.protection.outlook.com include:_spf.google.com -all。
  • 上線前先盤點所有用你網域寄信的來源:網站表單、ERP / POS、事務機掃描、電子報平台。不確定時先用 ~all,盤點完再收緊為 -all。
  • SPF 總 DNS 查詢次數上限為 10 次,include 不要無限加。

DKIM:替每封信加上數位簽章

到 Microsoft Defender(security.microsoft.com/dkimv2)選你的網域,取得兩筆專屬 CNAME,在 Cloudflare 新增:

類型名稱目標(範例格式,以後台為準)
CNAMEselector1._domainkeyselector1-yourdomain-com._domainkey.<租戶名稱>.…dkim.mail.microsoft
CNAMEselector2._domainkeyselector2-yourdomain-com._domainkey.<租戶名稱>.…dkim.mail.microsoft
  1. 兩筆 CNAME 同樣維持灰雲,否則微軟解析不到金鑰。
  2. 用 nslookup -type=cname selector1._domainkey.yourdomain.com 確認回傳微軟的目標。
  3. 回到 Defender 把 DKIM 切換為「已啟用」。

DMARC:告訴收件方驗證失敗該怎麼處理

新增一筆 TXT,名稱 _dmarc,上線當天先用觀察模式:

v=DMARC1; p=none; pct=100; rua=mailto:[email protected]

同一網域只能有一筆 DMARC,舊的要先刪掉。p=none 對冒用信沒有任何阻擋效果,所以一定要加 rua 收報告,再分階段收緊:

階段DMARC 內容什麼時候進入
1 觀察p=none; rua=mailto:…上線當天,觀察 2–4 週
2 隔離p=quarantine; pct=100; rua=mailto:…報告中合法來源皆通過 SPF / DKIM 對齊
3 拒收p=reject; rua=mailto:…隔離階段穩定 1 個月以上
  • 報告是 XML,建議另建共用信箱,或使用 Cloudflare 的 Email Security > DMARC Management 彙整。
  • 收緊後若有合法信件被擋,立刻改回上一階段,TTL 過後即恢復。

常見錯誤:Proxy address is already being used

替使用者指派自訂網域地址時,可能跳出:

Error executing request. The proxy address "SMTP:[email protected]" is already being used by the proxy addresses or LegacyExchangeDN.

這通常是租戶建立時的初始管理員帳號還掛著那個地址。就算拿掉了它的郵件授權,Exchange Online 內部的 Proxy 地址仍然存在。

  1. M365 系統管理中心 > 作用中的使用者 > 點選該管理員帳號 > 郵件。
  2. 「管理電子郵件別名」,刪除或更換衝突的自訂網域地址。
  3. 該帳號仍可用 .onmicrosoft.com 登入管理,權限不受影響;釋出的地址即可指派給新信箱。

步驟三:把 Exchange Online Protection(EOP)設定到位

不必加購 Defender,把 Plan 1 內建的 EOP 設定好,就能擋掉大部分釣魚與勒索軟體信件。設定入口:Microsoft Defender(security.microsoft.com)> 郵件與協作 > 原則與規則 > 威脅原則。

優先套用「預設安全性原則」

最省事的做法,是對全體使用者套用 Standard protection 。微軟會依建議值設好反垃圾、反釣魚、反惡意軟體,且日後自動跟進新的建議值。

  • 路徑:威脅原則 > 預設安全性原則 > Standard protection > 管理保護設定 > 套用至所有收件者。
  • 高風險帳號(老闆、會計、出納)可改套 Strict protection,攔截更嚴但誤判也較多。
  • 優先順序:Strict > Standard > 自訂原則 > Default。套了預設原則的使用者,自訂原則的同類設定會被忽略,所以下方數值主要是 Default 原則的後備與參考。

反惡意軟體與隔離原則

  • 啟用 通用附件篩選器 ,封鎖 .exe、.bat、.vbs、.iso 等常見勒索軟體載體。
  • 保持 ZAP(零時差自動清除) 開啟:信送達後若特徵更新發現危害,系統會自動追回隔離。
  • 惡意軟體、高信賴度釣魚用 AdminOnlyAccessPolicy(只有管理員能放行)。
  • 一般垃圾信、大量郵件用 DefaultFullAccessWithNotificationPolicy,讓使用者自己預覽放行,可以大幅減少「我的信不見了」的問題。

反垃圾郵件原則(Default 建議值)

判定結果動作隔離原則
垃圾郵件移至垃圾郵件資料夾—
高信賴度垃圾郵件隔離DefaultFullAccessWithNotificationPolicy
網路釣魚隔離AdminOnlyAccessPolicy
高信賴度網路釣魚隔離AdminOnlyAccessPolicy
大量郵件(BCL 門檻 6)移至垃圾郵件資料夾—

隔離保留 30 天。允許清單原則上不填,必要時改用「租用戶允許/封鎖清單」並設到期日;絕不要把自家網域或 gmail.com 加進允許清單。

反網路釣魚原則(EOP 版)

  • 開啟詐騙情報(Spoof intelligence)與「遵循寄件者的 DMARC 原則」。
  • 開啟未驗證寄件者指標(? 與 via 標記)。
  • 開啟首次聯絡安全提示,這是防範變臉詐騙(BEC:假冒廠商要求改匯款帳號)的低成本手段。
  • EOP 版沒有冒名防護,偵測不到 yourdomaln.com 這類相似網域;大額匯款請用電話二次確認補強。

外寄限制與關閉自動轉寄

帳號被盜後,攻擊者最常做兩件事:大量寄送釣魚信,以及設規則把信轉寄到外部。輸出垃圾郵件原則就是最後一道防線。

Set-HostedOutboundSpamFilterPolicy -Identity Default `
  -RecipientLimitExternalPerHour 500 -RecipientLimitInternalPerHour 1000 `
  -RecipientLimitPerDay 1000 -ActionWhenThresholdReached BlockUser `
  -AutoForwardingMode Off
  • 確實需要轉寄的人,另建一條只套用在該使用者的原則,不要打開 Default。
  • 被限制寄信的帳號,在 Defender > 檢閱 > 受限制的實體解除;解除前先重設密碼、撤銷工作階段、檢查收件規則。

外部寄件者標記

讓 Outlook 對外部來信顯示「外部」標籤,假冒同事的信一眼就看得出來:

Set-ExternalInOutlook -Enabled $true
Get-ExternalInOutlook   # Enabled = True

步驟四:身分安全、稽核與告警

郵件防護再完整,帳密被盜就全部失效。以下是上線必備項目。

啟用 MFA

  • Business Basic / Standard:啟用 安全性預設值 (Entra 系統管理中心 > 身分識別 > 概觀 > 屬性),強制全員註冊 MFA 並封鎖舊式驗證。
  • Business Premium:改用條件式存取,兩者不能同時啟用。

管理員帳號規劃

  • 建立一個 .onmicrosoft.com 的 緊急存取帳號 (Break-glass),不指派授權、長密碼離線保存。
  • 每位管理人員用自己的獨立帳號,不共用。
  • 全域管理員保持 2–4 個,日常用 Exchange 系統管理員、使用者管理員等較低權限角色。

停用 SMTP AUTH

舊式 SMTP 驗證不支援 MFA,是密碼噴灑攻擊的常見入口。組織層級停用,再個別開放給需要的設備:

Set-TransportConfig -SmtpClientAuthenticationDisabled $true
# 個別例外(例如事務機掃描寄信)
Set-CASMailbox -Identity [email protected] -SmtpClientAuthenticationDisabled $false

停用前務必確認事務機、ERP、監控設備有沒有用 SMTP AUTH 寄信,否則它們會無聲失敗。

稽核記錄與告警原則

Get-AdminAuditLogConfig | fl UnifiedAuditLogIngestionEnabled   # 應為 True
Get-OrganizationConfig | fl AuditDisabled                     # 應為 False

在 Defender > 告警原則確認以下預設告警已開啟,通知寄到管理員信箱:

  • 使用者被限制寄送電子郵件
  • 建立轉寄/重新導向收件規則
  • 可疑的電子郵件傳送模式
  • 使用者回報的網路釣魚與 ZAP 相關告警

上線驗收清單

逐項確認並截圖留存,之後出問題時就有基準可以比對。

#檢查項目驗證方式預期結果
1MX / Autodiscovernslookup -type=mx / -type=cname指向微軟、灰雲
2SPFnslookup -type=txt yourdomain.com僅一筆 v=spf1
3DKIMDefender > DKIM 頁面已啟用
4DMARCnslookup -type=txt _dmarc.yourdomain.com僅一筆,含 rua
5外寄驗證寄信到 Gmail,查看「顯示原始郵件」SPF / DKIM / DMARC 皆 PASS
6外收測試從 Gmail 寄入正常收件、顯示「外部」標籤
7預設安全性原則Defender > 預設安全性原則Standard 已套用全體
8自動轉寄設外部轉寄規則後寄測試信轉寄被擋、產生 NDR
9MFA一般使用者登入要求註冊 Authenticator
10SMTP AUTHGet-TransportConfigDisabled = True,例外已列管
11稽核記錄Get-AdminAuditLogConfigIngestion = True
12管理員帳號M365 系統管理中心 > 角色緊急存取帳號已建立、管理員各自獨立

變更前先備份:DNS 從 Cloudflare 匯出,EOP 原則用 Get-HostedContentFilterPolicy、Get-HostedOutboundSpamFilterPolicy、Get-AntiPhishPolicy 匯出原值,需要時就能還原。

常見問題 FAQ

Cloudflare 的 MX 記錄可以開 Proxy(橘色雲朵)嗎?

不行。Cloudflare Proxy 只處理 HTTP/HTTPS,開了會讓外部郵件送不到 Exchange Online。MX、Autodiscover、DKIM CNAME 都要維持灰雲。

信還是被 Gmail 丟進垃圾郵件,該先查什麼?

在 Gmail 開「顯示原始郵件」,看 SPF、DKIM、DMARC 哪一項不是 PASS。最常見的原因是有兩筆 SPF,或 DKIM 還沒在 Defender 啟用。

DMARC 可以直接設 p=reject 嗎?

不建議。沒先從報告確認所有合法寄信來源,事務機或網站表單的信可能會被直接拒收。先 p=none 觀察 2–4 週,再逐步收緊。

只有 Exchange Online Plan 1,資安夠吗?

對大多數小型環境來說,EOP + 預設安全性原則 + MFA 已經能擋掉絕大部分威脅。主要缺口是冒名防護與 Safe Links,有大額匯款流程的組織可評估 Business Premium。

結語

DNS 記錄設對讓信送得到,SPF、DKIM、DMARC 讓信被信任,EOP 與身分安全讓帳號被盜時損害可控。照著這篇做完並跑過驗收清單,就是一套不必加購就能上線的郵件環境。

微軟 Defender 介面更新頻繁,實作時請以官方文件與後台實際畫面為準。

參考資料

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端