Postfix

Postfix sasl_password 文件和 MX 解析

  • December 27, 2021

感謝@AlexD 的想法,我們將實現以下傳輸表,以便使用 DNS MX 解析(後綴 3.3)模擬 IP 故障轉移

2個域的中繼,例如

$$ 12 $$。和

exemple1.com   relay:mx.myhost.com:587
exemple2.com   relay:mx.myhost.com:587

在 DNS 中

A    ip1.myhost.com      1.2.3.4
A    ip2.myhost.com      11.12.13.14

MX   mx.myhost.com   10  ip1.myhost.com
MX   mx.myhost.com   50  ip2.myhost.com

如果 ip1 失敗,postfix 中繼應該首先使用 ip1(優先級 10)和 ip2(50)。

如果這是正確的,下一步就是 SMTP 身份驗證。同一組使用者名/密碼可用於 ip1 和 ip2 連接。

user:pass

問題:在sasl_passwd地圖中,由於 ip1 和 ip2 都使用相同的 user:pass 集,我們可以/應該使用 to-be-mx-resolved 主機(一個條目)還是我們必須使用兩個相同的 user/pass 條目一個為

$$ ip1 $$一個用於$$ ip2 $$? (SASL 身份驗證是否間接接受要進行 MX 解析的主機,然後將身份驗證應用於已解析的條目?) **a)**這個 sasl_passwd 文件可以嗎

mx.myhost.com:587   user:pass

**b)**或者這個

[ip1.myhost.com]:587   user:pass
[ip2.myhost.com]:587   user:pass

**c)**順便說一句,這與直接使用 IP 相同嗎?

[1.2.3.4]:587       user:pass
[11.12.13.14]:587   user:pass

(前提是 A 記錄不變)

man 5 postconf說:

smtp_sasl_password_maps(預設值:空) 可選 Postfix SMTP 客戶端查找表,每個發件人有一個使用者名:密碼條目、遠端主機名或下一跳域。

SASL_README有以下內容:

重要的

如果您指定“

$$ " and " $$" 在中繼主機目標中,那麼您必須在 smtp_sasl_password_maps 文件中使用相同的形式。

如果在中繼主機目標中指定非預設 TCP 埠(例如“:submission”或“:587”),則必須在 smtp_sasl_password_maps 文件中使用相同的形式。

範例配置:

/etc/postfix/sasl_passwd:
   # destination                   credentials
   [mail.isp.example]              username:password
   # Alternative form:
   # [mail.isp.example]:submission username:password

因此,根據上面引用的文件,您需要以與傳輸表中使用的方式相同的方式編寫目的地。如果你有,mx.myhost.com:587那麼你需要使用

mx.myhost.com:587 user:pass

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