Postfix

後綴:name=domain.com type=MX 的名稱服務錯誤:找不到主機,請重試

  • January 10, 2022

我遇到了與 Postfix MX 相關的問題。

我剛剛將一個非常舊的 Centos 5 伺服器遷移到 v7,所以我使用的是 postfix-2.10.1-7.el7.x86_64。我已經升級了遺留的後綴配置(可能是這個地獄的原因)和其他似乎有效的補充內容:

  • postfix-perl-scripts-2.10.1-7.el7.x86_64
  • postgrey-1.34-12.el7.noarch
  • amavisd-new-2.11.1-1.el7.noarch
  • spamassassin-3.4.0-4.el7_5.x86_64
  • perl-Mail-SPF-2.8.0-4.el7.noarch
  • perl-Mail-DKIM-0.39-8.el7.noarch
  • dovecot-2.2.36-3.el7.x86_64

在經歷了許多磨難之後,我認為除了煩人的 MX 相關問題外,大部分系統都在執行,例如(來自 /var/log/maillog):

Mar 28 14:26:48 tormento postfix/smtpd[1021]: warning: Unable to look up MX host for spmailtechn.com: Host not found, try again
Mar 28 14:26:51 tormento postfix/smtpd[1052]: warning: Unable to look up MX host for inlumine.ual.es: Host not found, try again
Mar 28 14:31:38 tormento postfix/smtpd[1442]: warning: Unable to look up MX host for aol.com: Host not found, try again
Mar 28 13:07:53 tormento postfix/smtpd[26556]: warning: Unable to look up MX host for hotmail.com: Host not found, try again
Mar 28 13:12:06 tormento postfix/smtpd[26650]: warning: Unable to look up MX host for facebookmail.com: Host not found, try again
Mar 28 13:12:31 tormento postfix/smtpd[26650]: warning: Unable to look up MX host for joker.com: Host not found, try again
Mar 28 13:13:02 tormento postfix/smtpd[26650]: warning: Unable to look up MX host for bounce.linkedin.com: Host not found, try again

和:

Mar 28 14:50:36 tormento postfix/smtp[1700]: 7B6C69C6A2: to=<ismael.olea@gmail.com>, orig_to=<ismael@olea.org>, relay=none, delay=1142, delays=1142/0.07/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)
Mar 28 14:32:05 tormento postfix/smtp[1383]: 721A19C688: to=<XXXXX@yahoo.com>, orig_to=<XXXX@olea.org>, relay=none, delay=4742, delays=4742/0/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=yahoo.com type=MX: Host not found, try again)

作為例子。

第一個嫌疑人是 DNS 解析,但這在使用 Hetztner DNS 伺服器(其中機器是主機)或 8.8.8.8 或 9.9.9.9 時都有效。

$ cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
nameserver 213.133.100.100
nameserver 213.133.98.98
nameserver 213.133.99.99

和 /etc/hosts:

195.201.24.84 tormento tormento.olea.org
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4

# The following lines are desirable for IPv6 capable hosts
::1 tormento tormento.olea.org
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

我擔心我錯過了一些非常明顯的東西,但我已經在Google上搜尋了兩天做任何數量的測試,現在我不知道該怎麼做。

由於 Serverfault 將我原來的問題作為垃圾郵件拒絕了,我已將日誌和配置詳細資訊放在我的個人部落格中:http: //olea.org/diario/2019/03/28/Postfix_MX_not_found.html

提前致謝。

嗯,這很尷尬。正如我預測的那樣,我的問題是由最明顯和最微不足道的原因引起的:postfix 使用者 o_0 缺乏對 /etc/resolv.conf 的讀取權限

您可能知道後綴子程序(smtp、smtpd、qmgr 等)與後綴使用者一起執行。我收到的所有評論和建議都與訪問 DNS 解析數據的問題有關,通常的嫌疑人是 SELinux 或 chrooted postfix。最後一個理由你們都說對了。遵循建議並嘗試:

# sudo -u postfix -H cat /etc/resolv.conf
cat: /etc/resolv.conf: Permission denied

所以呢??

# ls -l /etc/resolv.conf
-rw-r-----. 1 root named 118 mar 28 20:34 /etc/resolv.conf

OMG!…然後在 chmod o+r 並重新啟動 Postfix 後,可以處理和發送所有擱置的電子郵件,並按預期處理新郵件。

我懷疑我已經更改了 resolv.conf 讀取權限,但我不能 100% 確定。所以最後問題解決了,我很抱歉因為這個荒謬的原因偷走了你們所有人的注意力。謝謝大家。

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