Qmail 修補讓我緊張

Qmail 修補讓我緊張

我們有一個運行 CentOS 5 的系統,並運行 Plesk 8.6 和 Qmail。我們的主網域透過 Media Temple 託管。當 Plesk 和 Qmail 託管在單一專用虛擬伺服器上時,它會讀取主伺服器 IP 和網域,並在從系統發送電子郵件時報告該情況。

我們的頁面是用 PHP 寫的,因此我們使用 mail() 函數。雖然我們的電子郵件發送給每個人,但一些企業電子郵件網域拒絕我們的電子郵件,因為它顯示的原始IP(我們的主伺服器IP 和網域)與我們在「寄件者」地址中列出的域不同。這是不可修改的。當然,我們擁有的每個網域在我們的主伺服器 IP 下都有自己的 IP。

我在網上看到幾個地方提供了補丁,特別是 - 允許域綁定:

「DomainBindings - 對於託管多個網域或分配多個 IP 位址的伺服器,讓 qmail 使用特定的 IP 位址來傳送郵件有時很有用(或很重要)。預設情況下,qmail 使用作業系統選擇的任何位址對於所有出站連接,您可以根據寄件者的網域(本機副本)(pyropus.ca) 使用類似smtproutes 的控製檔來指定要使用的出站IP 位址。

Qmail連結

首先,我沒有安裝 netqmail,所以我需要尋找另一個來源,但我也完全不熟悉如何向 qmail 應用修補程式。如果我打補丁,我會失去電子郵件服務嗎?這是一個簡單的申請和使用過程嗎?補丁後我現有的電子郵件帳戶和資料會恢復嗎?

我對 unix/linux 非常非常陌生,所以這確實讓我有點緊張,但我是唯一能夠做出改變的人,而且這是我們公司「必須」擁有的。有任何想法嗎?

答案1

這通常在網路層解決,其中所有出站 SMTP 都會透過來源 NAT 轉至相同 IP。

QMAIL 官方發行版的權威來源是Qmail.org,您可以在其中取得 netqmail。 netqmail 是 QMAIL 打包的推薦補丁由於有一段時間沒有正式發布,因此這些內容被普遍應用。

QMAIL 網站上連結了許多補丁,這些補丁改變了介面綁定行為。我已經成功實施了這個補丁之前在生產環境中,允許不同的域使用不同的IP。

該補丁沒有很好地記錄,但我的筆記中有以下內容:

   outgoingips
        IP addresses to be used on outgoing connections.   Each  line  has
        the  form fromdomain:localip, without any extra spaces.  If domain
        matches the domain part  in  sender,  qmail-remote  will  bind  to
        localip  when connecting to host.  If it matches, it will also set
        the HELO string to the domain part of sender.

更改 MTA 的行為可能會以某種方式產生影響,但這種影響如何影響您的服務將取決於您的部署計劃。如果不出意外,QMAIL 將需要重新啟動,這將短暫影響投遞。

從原始碼編譯和修補稍微高級一些,但是如果您在 QMAIL 上進行了標準化並且需要此功能,那麼您將沒有太多選擇,除非您想付費讓其他人為您做這件事。

您現有的使用者和電子郵件不應受到影響,但如果您的 QMAIL 安裝有其他補丁,例如允許將身份驗證資料儲存在資料庫中的補丁,您可能需要更多補丁來複製現有功能。如果您使用“stock”QMAIL 1.03,它應該相當簡單。

答案2

華納建議的一些補充(抱歉,我沒有足夠的聲譽來使用評論功能):

  • Plesk 附帶的 qmail 設定已經打了很多補丁,但是 Parallels 提供了原始碼以及應用程式的所有補丁以及相當好的文件。知識庫

  • 請注意:如果一個 IP 共享多個主機名,則不僅會更改傳出 IP 位址而且還會更改主機名的補丁將被視為有害。有幾個 MX 主機停止接收來自使用不同 HELO 字串連接的主機的郵件。

  • 您正在談論 qmail 讀取“主伺服器 IP 和網域並在從系統發送電子郵件時報告”。事實上,這些都是不同的事情。在為傳出連線選擇不同的 IP 位址時,您可以簡單地設定用於在 中表示 HELO 的主機名稱/var/qmail/control/me

  • 關於問題本身:請提供您從目標 MX 主機收到的確切錯誤訊息,因為我猜您在這裡混淆了內容。從與提供網域網站的主機(作為其 MX 主機)不同的主機發送郵件是完全可以接受的。 HELO 字串和郵件的「寄件者」位址之間也沒有直接關聯,除非收件者實施了一些真正腦死的反垃圾郵件「解決方案」。

答案3

我有同樣的問題,即我有一個多宿主主機(6 個 IP)和綁定到每個 IP 的多個域。

Qmail 使用單一主機名稱和 IP 位址作為傳送 IP/主機,但對於具有多個網域/IP 的主機,則有兩個問題:

  1. 如果寄件者欄位網域與信封中的內容不匹配,某些郵件伺服器會拒絕郵件

  2. 從設計的角度來看,Qmail 預設應該執行outgoingips 的操作;

Plesk 不斷推出更新,其中一些更新適用於 Plesk 的 qmail 補丁,因此必須確保沒有其他問題;如果Qmail做到了這個問題就不會存在。

相關內容