我正在設定一個外部 postfix 中繼主機和一個內部 postfix 伺服器。我的想法是,我的內部 postfix 伺服器將透過外部 smtpd 伺服器(兩者都使用 postfix)發送電子郵件。我之所以使用這種架構,是因為 server#1 用於託管 web 應用程式和 postfix 實例,僅將訊息轉送到 server#2 我的外部 postfix 中繼主機以傳送它們。這樣做是為了減輕從我的 web 應用程式伺服器(伺服器#1)發送事務電子郵件的負擔。
我的設定如下:
在我的外部的postfix 伺服器,我更改了mynetworks=A.B.C.D
main.cf 中的指令以允許從我的內部 postfix 伺服器進行中繼。
在我的內部的smtp.mydomain.com myusername:mypassword
postfix 伺服器 我透過將指令新增至 /etc/postfix/saslpasswd 來設定 sasl 驗證。
我的問題是我應該在中繼主機上的哪裡添加 sasl 身份驗證憑證?
另外,(除了這兩個指令)是否有任何其他配置詳細資訊我應該添加到我的外部的postfix 中繼主機使其轉送從我的內部 postfix 伺服器傳入的電子郵件?
任何幫助將不勝感激,謝謝。
答案1
如果目標是僅使用外部主機作為內部主機的中繼,則將 IP 新增至 mynetworks 將繞過 sasl 驗證的需要。您強制應用程式對有權透過外部主機傳送的內部主機進行驗證。我使用類似的設定。
我家裡有 postfix/dovecot 伺服器,雲端中有一個虛擬伺服器。雲端中的伺服器不使用身份驗證,只允許傳入郵件(來自任何主機)到我的網域,但允許我的家庭 IP 和其他 vps IP 發送任何內容。
您需要確保permit_mynetworks
包含在外部主機的所有 smtpd 限制中,如下所示
smtpd_client_restrictions = permit_mynetworks, reject_unauth_destination, reject_unknown_recipient_domain, reject_rbl_client zen.spamhaus.org, reject_rbl_client b.barracudacentral.org, reject_rbl_client hostkarma.junkemailfilter.com=127.0.0.2, permit
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_access, permit_mynetworks, permit_auth_destination, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks