Domain-Name-System

後綴和子域

  • September 26, 2021

我在 Ubuntu 20.04 機器上設置了 Postfix。但是,我不確定我必須在哪裡使用子域和域。讓我們分別稱它們為mail.example.comexample.com

該系統是一個空客戶端,發送電子郵件但不接收任何電子郵件(通過inet_interfaces = loopback-onlyin實現/etc/postfix/main.cf)。我打算noreply@example.com專門發送消息。

  • MX 記錄是@ IN MX 0 mail.example.com.
  • 兩者的記錄都@指向mailPostfix 伺服器。
  • 中提到的 TLS 證書是/etc/postfix/main.cfmail.example.com:smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pemsmtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem.
  • 隨著smtp_generic_maps = hash:/etc/postfix/generic我重寫user@hostnamenoreply@mail.example.comin /etc/postfix/main.cf
  • 我添加了masquerade_domains = example.comin/etc/postfix/main.cf以將mail.example.comin`noreply@mail.example.com替換為example.com. 不知何故,這是行不通的。電子郵件仍然來自發件人noreply@mail.example.com`。

相應的問題是:

  • 我必須使用@mail在 MX 記錄中嗎?
  • TLS 證書是否必須引用mail.example.com或引用example.com
  • 應該/etc/postfix/generic先轉換user@hostnamenoreply@mail.example.com還是直接轉換成noreply@example.com

現在最正確的方法是在完全配置為服務的正確郵件服務上創建一個帳戶example.com。(當然,這可能是您自己的伺服器,這無關緊要。)然後,在您的空主機上,您只需將郵件伺服器配置為智能主機,並使用 SASL 身份驗證。

雖然像這樣設置 Postfix 是完全可能的(那裡有很多手冊,包括 Postfix 自己的),但我認為 Postfix 對於這種用途來說太過分了。考慮使用nullmailer,它完全適用於除了發起一些系統通知之外不對郵件做任何事情的系統。

如果這不可能,請像這樣設置 DNS:

  • example.comMX 記錄指向其正確的郵件服務。它與子域無關。
  • nullhost.example.com. MX 10 .,即指向無處。這明確表明您不打算接收任何anything@nullhost.example.com. 如果您保護空主機的 smtpd 服務免受外部連接(防火牆tcp/25、僅偵聽localhost:25等)的影響,則不需要這樣做;但是,顯式總是比隱式好。
  • 此空主機將發送設置example.com為發件人域的郵件,因此其郵件必須遵守該域的 DMARC 設置。否則行為正確的接收者將丟棄其郵件。

最後一點,DMARC,可能會使事情變得相當複雜。如果設置安全,這意味著記錄看起來像_dmarc.example.com. TXT "v=DMARC1; p=reject; pct=100; ...",您需要在空主機上設置 SPF 和 DKIM 簽名。SPF 很簡單,只需在 SPF TXT 記錄中添加“a:nullhost.example.com”即可。DKIM 具有挑戰性,您需要創建額外的 DKIM 密鑰對,選擇一個選擇器(nullhost可能會這樣做),將其公共對安裝到 DNS 中nullhost._domainkey.example.com. TXT "... key data ..."。然後直接在空主機上使用相應的私鑰配置唱歌(並使用選擇的選擇器),我會為此使用 opendkim。我是否提到使用智能主機是首選方法?


還有,你的問題。

  • 你不是伺服器(你說你這個系統不應該接收任何郵件)。所以你不需要任何 TLS 伺服器證書。您可以使用 TLS 客戶端證書進行設置,因此當您通過 TLS 連接到智能主機或其他伺服器時,您將能夠展示它。但是你為什麼要這樣做呢?
  • “頂點”記錄@ MXakaexample.com. MX必須指向 example.com 的郵件轉換****器(接收郵件的系統something@example.com)。它與任何子域的郵件無關。每個子域都是自己的郵件域。
  • 如何設置地址重寫取決於您。外界唯一看到的就是最終的結果。那麼為什麼要分兩步做呢?

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