lucas 發表於 2022-3-23 12:12:21

mail server 設定 SPF , DKIM 與 DMARC

本帖最後由 lucas 於 2024-3-27 11:28 編輯

SPF (Sender Policy Framework) 寄件者政策框架, 此機制可避免垃圾信濫發,偽裝網域發送假冒郵件。
替自己的 mail server 設定正確的 SPF 解析紀錄, 可避免發出的信件被歸類為垃圾信.
郵件收信服務器透過檢查發信人網域的 SPF,判斷這封電子郵件是否來自被允許的發信主機位址。

1. 在 DNS 解析內添加 TXT 紀錄.
   例如 mail server 的 ip 是 1.2.3.4 且 eMail 是 abc@domain.com
   則添加以下 TXT 紀錄 (host欄位 空白 或填寫為 @)
   v=spf1 ip4:1.2.3.4 ~all

   如果 eMail 是 abc@mail.domain.com
   則 host欄位填寫為 mail, 添加以下 TXT 紀錄
   v=spf1 ip4:1.2.3.4 ~all

此處要非常注意的是 TXT 紀錄中的 ip4 不要誤寫成 ipv4

設定為 ~all 與 -all 的差異,
設定為 ~all , 對於不安全的來信, 仍然接收, 但標記為不安全.
設定為 -all , 對於不安全的來信, 拒絕接收.

添加 TXT 紀錄前可用此網站先測試
https://kitterman.com/spf/validate.html
在第二區 Is this SPF record valid
Domain 填寫電郵 @ 之後的完整網址, 例如 abc@domain.com 就填寫 domain.com
SPF Record 填寫要新增的 TXT 紀錄, 例如 v=spf1 ip4:1.2.3.4 -all
然後點擊 Check SPF Record
幾秒後可看到測試結果, 若第3行顯示 SPF record passed validation test with pySPF (Python SPF library)!
表示這樣的設定正確.

在第三區 Test an SPF record
IP address 填寫 mail server 的 ip
SPF Record 填寫要新增的 TXT紀錄
Mail From address 填寫該server上的任意一組電郵 (例如 abc@domain.com)
HELO 欄位可不填
然後點擊 Test SPF Record
幾秒後可看到測試結果, 若第5行顯示 Results - PASS sender SPF authorized
表示這樣的設定正確.

測試後可正式進行添加 TXT 紀錄.
添加 TXT 紀錄過24小時後, 可再以同一網頁驗證設定是否正確.
在第一欄 Domain name 處填寫電郵 @ 之後的完整網址, 例如 abc@domain.com 就填寫 domain.com
然後點擊 Get SPF Record
幾秒後可看到測試結果, 若倒數第3行顯示 Results - PermError SPF Permanent Error: Unknown mechanism found: xxxxxxxxxxx
表示設定不正確.


2. 在 mail server 中啟用 SPF 檢查功能, 拒收檢查失敗的 mail , 或是把檢查失敗的 mail 標記為垃圾信. 減少垃圾廣告信與詐騙信件危害.

========================================================================================

DKIM - DomainKeys Identified Mail 網域驗證郵件
DKIM在郵件加入郵件伺服器的專屬私鑰簽章,收信端郵件伺服器可將郵件內含的簽章與寄信端網域DNS紀錄中提供的DKIM公鑰做解碼配對。
如果批配,表示此封郵件來源是沒有問題的,建置完可降低發出郵件被當做垃圾郵件的機率.

可在 DKIM官網自行建立:https://dkimcore.org/tools/
產生簽章時, 設定任意指定的前置字串.

到 DNS 新增設定一筆 TXT Record
Host: 前置字串._domainkey
Value: v=DKIM1; k=ras; p=產生的Public Key

========================================================================================

DMARC - Domain based Message Authentication, Reporting and Conformance
需先設定好 SPF 和 DKIM,DMARC 才有用。
讓網域擁有者可決定該如何處理從自己的網域寄出但未經驗證的郵件,
把未經驗證的信寄到指定的電郵信箱,讓網域管理員瞭解自己的網域有多少未經驗證的電子郵件發出。
例如 Yahoo 在2014年,宣布 DMARC 設為「拒絕」,所有不是從 Yahoo 郵件服務器發出的郵件,寄信人都不能用 Yahoo 郵件地址。

到 DNS 新增設定一筆 TXT Record
Host: _dmarc
Value: v=DMARC1; p=none; rua=mailto:接收通知的電郵

p=對可疑郵件的處理方式:
none 不對郵件採取處置。
quarantine 將郵件標示為垃圾郵件。
reject 收件伺服器拒絕郵件。


DMARC 檢查工具
https://mxtoolbox.com/dmarc.aspx

========================================================================================

設定後的檢查工具
https://mxtoolbox.com/emailhealth

其餘自行架設 mail server 的注意事項 :
1. 需使用固定制的固定 ip , 不可使用 PPPoE 制配發的固定 IP (非固定制申請 1 固定 IP 加上 7 動態 IP).
   因需要申請"反解析".


2. 向 ISP 申請"反解析".

中華電信 HiNet 的固定制光纖網路, 從 eyeSee 管理頁面, 申請 DNS IP反解析
https://eyesee.cht.com.tw
登入後,
監測報表 -> 寬頻上網 -> 加值服務管理.
DNS代管 -> 設定.
前往反解設定頁面


3. mail server 啟用 SSL 與 TLS



頁: [1]
查看完整版本: mail server 設定 SPF , DKIM 與 DMARC