Domain-Name-System

如何為指向 Azure 上託管服務的子域創建 SPF 記錄

  • August 25, 2021

我有一個在 Azure 上執行的 webapp,並使用 Google Domains 作為域名 (mywebapp.com) 和 DNS。Azure 自動為不同的資源/服務生成 URL(例如:https://black-cat-12345.azurestaticapps.net>、<https://my-webapp-api.azurewebsites.net),我使用 CNAME 創建子域:

mywebapp.com  A  3600  {Google IP}
mywebapp.com  MX  3600 {Google mail servers}
mywebapp.com  SPF  "v=spf1 include:_spf.google.com ~all"

login.mywebapp.com  CNAME  3600  black-cat-12345.azurestaticapps.net
api.mywebapp.com  CNAME  3600  my-webapp-api.azurewebsites.net
etc

我被告知強烈考慮為子域添加 SPF 記錄以防止郵件欺騙和網路釣魚電子郵件,但根據為一個子域添加 CNAME 和 TXT DNS 記錄,我在使用 CNAME 時不能有 SPF 記錄。我不知道如何實現這一目標。

如果我從不從子域發送郵件,並且沒有 MX 記錄,是否需要 SPF 記錄?

如果我應該添加 SPF 記錄,是通過將 CNAME 更改為 A 記錄來實現此目的的唯一方法嗎?我不能使用 Azure 資源/服務的底層 IP(例如:my-webapp-api.azurewebsites.net -> 52.175.36.249),所以我對想法持開放態度。

Azure Web App 支持自定義域,但在您使用免費 (F1) 層的情況下不支持。而不是使用 DNS 別名(又名 CNAME),正確的方法可能是使用另一個定價層並配置您的自定義域。

關於它的一些文件:

如果您的域不發送電子郵件,則不需要 SPF 記錄。

有一些方法可以幫助打擊來自子域/主機名的垃圾郵件,方法是為您創建的每個主機名使用 SPF 記錄v=spf1 -all(又名空 SPF 記錄),但這在很多應用程序中並不實用。

如果您有帶有 MX 記錄的子域,那麼您需要為它們提供 SPF 記錄,否則在可行時創建空 SPF 記錄。

引用自:https://serverfault.com/questions/1075563