Postfix リレーホスト。接続が拒否されました

Postfix リレーホスト。接続が拒否されました

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

この問題がどこから来ているのか全く分かりません。
誰か助けてくれませんか?

答え1

リレーホストには認証が必要です。つまり、このリレーホスト経由でメールを送信する権限があることを証明する必要があります。通常、リレーホストのオペレータは資格情報 (ログイン名とパスワード) を提供し、それをリレーホストと通信するときに使用するように Postfix で設定します。

SMTPクライアント認証の設定(PostfixがSMTPサーバーであるリレーホストと通信するときに使用される)については、Postfix SASL の使い方方法は次のとおりです。

ポストフィックス内main.cf:

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

最初の行はリレー ホストを設定し、2 行目は認証を有効にし、3 行目は各リレー ホストの資格情報が保存されるファイル ( ) を指定します/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.cfsasl_passwd

Postfix SMTP クライアントは、「ダイレクト SMTPS」(「ラッパーモード」と呼ばれる) をサポートしていません。このモードでは、SMTP-over-SSL サーバーはポートで直接 SSL ハンドシェイクを期待しますtcp/465(Google が行っているものと同様)。STARTTLS コマンドで開始されるポート 25 または 587 経由の TLS のみをサポートしています。

答え2

Connection refused指定されたインターフェースの指定されたポートで何もリッスンしていないことを意味します。また、netstat の出力では、ポート 25 が127.0.0.1ループバック インターフェースでのみリッスンしていることがわかります。

別のマシンからアクセスしようとしても、アクセスできません。

Postfixがすべてのインターフェースでlistenするには、変更する必要がありますinet_interfaces:

inet_interfaces = all

複数のインターフェースがあり、それらすべてをリッスンしたくない場合は、リッスンする IP アドレスのコンマ区切りリストを提供することもできます。

関連情報