Linux

postfix 多域 myhostname 配置

  • February 22, 2016

我有兩個 IP 地址在執行Postfix,每個 IP 都有自己的域。簡而言之,我想隔離域,所以外界認為它在自己的 IP 上執行,甚至完全PTR隔離

但在後綴中,它沒有myhostname專門處理選項 IP。mail.cf它總是使用文件中設置的預設值

我試圖設置-o myhostname=abc,但它仍然使用mail.cf值。因為它,我的 IP 在SPAM列表中被阻止

我如何設置特定的 IPmyhostname以使HELO橫幅看起來不錯

更新:

這是怎麼回事:

我有兩個 IP 地址,我Postfix mailserver想託管兩個相互隔離的域,因此沒有人可以發現它們託管在同一台伺服器上。

abc.com 1.1.1.1 zyx.com 2.2.2.2

伺服器的主機名是mail.abc.com如此明顯的後綴使用它作為myhostname

如果我從zyx.com域發送電子郵件helocheck@cbl.abuseat.org以檢查我的伺服器發送的 helo,然後我收到以下回复,這說明我們在主機上的郵件系統mail.abc.com(這就是為什麼我想使用myhostname變數來設置它基於它用於發送電子郵件的 IP )

我擔心 CBL 可能會將我的 IP 列入黑名單,因為主機名不同且 HELO FQDN 不同。

This is the mail system at host mail.abc.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                  The mail system

<helocheck@cbl.abuseat.org>: host helocheck.abuseat.org[54.245.112.115] said:
   550 *** The HELO for IP address 2.2.2.2 was 'mail.zyx.com'
   (valid syntax) *** (in reply to RCPT TO command)

-o myhostname=abc 不太重要。要影響 HELO,您必須覆蓋 -o smtp_helo_name=abc

main.cf 中配置的值具有復雜的繼承性,但它僅適用於 main.cf 載入。當您稍後覆蓋某些參數時,您需要覆蓋所有必要的參數。

目前,我不知道如何強制 postfix 通過正確的工作人員從域發送郵件,但我認為這是可能的。

UPD。

-o smtp_helo_name= 強制執行 HELO FQDN。另外,您需要為您的伺服器定義相應的 A(在您的域區域中)和 PTR(在 ISP 或數據中心的反向區域中,或者如果您有 AS,則擁有)記錄。

範例:-o smtp_helo_name=mailserver.abc.com

您的域區域 abc.com

mailserver A 203.0.113.23

ISP 區域 113.0.203.in-addr.arpa

23 PTR mailserver.abc.com

不必匹配 FQDN 和郵件域,它可以不同。主要、HELO FQDN 可解析為 IP 和 IP 可解析為 FQDN

$ host mailserver.abc.com
mailserver.abc.com has address 203.0.113.23
$ host 203.0.113.23
23.113.0.203.in-addr.arpa domain name pointer mailserver.abc.com

https://serverfault.com/questions/41693/best-practices-for-preventing-you-from-looking-like-a-spammer

如果您想要不同myhostname,那麼您可能對Postfix Multipe Instance感興趣,請參閱此處的官方文件。

使用此功能,每個實例將獲得一個 IP 地址和一個myhostname參數。並且因為預設值smtp_helo_namemyhostname,所以你的直升機名稱應該與你的myhostname.


例如,您有兩個域,IP 地址為 192.168.1.1 的 xyz.example 和 IP 地址為 10.10.0.2 的 abc.example(請參閱RFC 2606 第 2 節)。注意:這個簡短的教程是在 CentOS 6.5 上進行的

  • 配置您的預設 postfix 安裝以使用myhostnamemail.abc.example 和inet_interface10.10.0.2。
  • 在預設實例上調整後綴配置,例如smtpd_*_restrictions.
  • 使用工具創建第二個實例postmulti
 postmulti -e init

這將插入multi_instance_配置main.cf

 postmulti -I postfix-secondary -e create

這將創建名為 的新實例postfix-secondary。它將創建新的配置目錄/etc/postfix-secondary和另一個目錄,例如 spool 和 data 目錄。

  • 第二個實例將帶有預設配置。您應該在第一個實例上複製配置。當然你必須為這些參數設置不同的參數值
 queue_directory = /var/spool/postfix-secondary
 data_directory = /var/lib/postfix-secondary
 multi_instance_name = postfix-secondary
 myhostname = mail.xyz.example
 inet_interfaces = 192.168.1.1
  • 確保該參數multi_instance_enable = yes列在輔助 main.cf 中。

完畢。有關管理 postfix 多實例的可用命令,請參閱文件。


筆記:

  • Postfix Multiple Instance 對於您的需要來說似乎有點過分了。但是,它為您提供了更好的隔離級別。例如:您上面的退回郵件仍然包含有關 mail.abc.example 的跟踪。對於多個實例,如果您從 xyz 實例發送郵件,您將收到來自 mail.xyz.example 的退回電子郵件。
  • 您需要維護兩個配置,因為 postfix 不會在兩個實例之間共享配置
  • mmv-ru 提出的另一個解決方案足以防止您看起來像垃圾郵件發送者。伺服器 FQDN 與 smtp_helo_name 的值不同。只需確保您擁有在 smtp_helo_name 上指定的域的正確 PTR 記錄 :)

引用自:https://unix.stackexchange.com/questions/177770