Postfix

後綴中繼主機。拒絕連接

  • June 21, 2022

Postfix 拒絕作為中繼主機發送電子郵件。它一直在說:

連接到 mydomain.com

$$ xxx.xx.xxx.xxx $$:25: 連接被拒絕

但是埠 25 是開放的:

sudo netstat -ntlp

tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN      39162/mysqld        
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      57910/proftpd: (acc 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      614/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      762/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      70265/master        
tcp6       0      0 :::3306                 :::*                    LISTEN      39162/mysqld        
tcp6       0      0 :::80                   :::*                    LISTEN      61217/apache2       
tcp6       0      0 :::22                   :::*                    LISTEN      762/sshd: /usr/sbin 
tcp6       0      0 ::1:25                  :::*                    LISTEN      70265/master        
tcp6       0      0 :::443                  :::*                    LISTEN      61217/apache2

我不知道這個問題來自哪裡。

有人能幫我嗎 ?

您的中繼主機需要身份驗證。也就是說,您需要證明您被允許通過此中繼主機發送郵件。通常,relayhost 運營商會為您提供憑據(一些登錄名和密碼),您可以在 Postfix 中配置這些憑據以在與中繼主機通信時使用。

Postfix SASL Howto中描述了 SMTP 客戶端身份驗證的配置(當您的 Postfix 與作為 SMTP 伺服器的中繼主機通信時使用)。就是這樣:

在後綴中main.cf

relayhost = [relay.host.name]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

第一行設置中繼主機,第二行啟用身份驗證,第三行指定儲存每個中繼主機憑據的文件,即/etc/postfix/sasl_passwd. 在該文件中,您輸入:

[relay.host.name]              username:password

postmap /etc/postfix/sasl_passwd更改此文件後始終執行,並postfix reload在編輯main.cf. 還要限制對該文件的訪問,因為它包含敏感資訊:

chmod 0600 /etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd

請注意,如果您的中繼主機希望您在另一個埠上送出(例如,當我必須設置中繼主機時,我是在smtp submission埠上完成的tcp/587),您需要在文件relayhost = [relay.host.name]:submissionmain.cf和相同的sasl_passwd文件中指定它。

Postfix SMTP 客戶端不支持“直接 SMTPS”(他們稱之為“包裝模式”),其中 SMTP-over-SSL 伺服器期望直接在埠上進行 SSL 握手tcp/465(就像 Google 所做的那樣)。它僅支持使用 STARTTLS 命令啟動埠 25 或 587 上的 TLS。

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