web-dev-qa-db-ja.com

Sendmail接続タイムアウト

最近、新しいDebianサーバーをセットアップしました。

Sendmailを初めてインストールしてセットアップした後、メールを送信できません。

Reason : Connection timeout.

/var/log/mail.logからの出力:

> May  6 02:42:53 k***** sm-mta[15070]: q465gjxF013677:
> to=<*****@gmail.com>, ctladdr=<*****@*****.ca> (1001/1001),
> delay=01:00:08, xdelay=00:00:00, mailer=esmtp, pri=300329,
> relay=alt4.gmail-smtp-in.l.google.com., dsn=4.0.0, stat=Deferred:
> Connection timed out with alt4.gmail-smtp-in.l.google.com.

Netstatからの出力:

tcp        0      0 0.0.0.0:587             0.0.0.0:*   LISTEN   15069/sendmail: MTA
tcp        0      0 0.0.0.0:25              0.0.0.0:*   LISTEN   15069/sendmail: MTA

25のTelnetは、他のコンピューター(telnet theserver.imworkingon.com 25)から実行した場合も成功しますが、作業中のサーバーから実行しようとした場合は成功しません。これは、どういうわけか、発信ポート25がブロックされているように見えることを私に伝えています...

誰かアイデアはありますか?

4
Erwald

標準的なメールのトラブルシューティング手順がここに適用されます...ログから、送信先のgmail.com宛先のMX/DNSレコードを解決できることがわかります。したがって、これはDNSやルーティングの問題ではありません。

これは基本的なSMTP配信なので、ポート25にtelnetを使用して、宛先ホストに接続できることを確認してください...

私はこのシーケンスに従います:

Dig mx gmail.com
# Look for the mail destination IP in the output - "209.85.225.27" in this case

telnet 209.85.225.27 25
# This is an attempt to telnet to port 25 (smtp) on the recipient's server...

次のようなものが表示されます。

Trying 209.85.225.27...
Connected to iy-in-f27.1e100.net (209.85.225.27).
Escape character is '^]'.
220 ***************************************

上記が表示されない場合、送信ポート25のSMTPトラフィックは、マシンレベル(iptablesなどを確認)またはネットワークレベル(ネットワークファイアウォールまたはISPポリシーを確認)でブロックされています。

doで同様のメッセージが表示される場合は、メールを渡すことができ、タイムアウトエラーを受け取ることはありません。

7
ewwhite

さらに、クライアントオプションで、定義されたインターフェースを介したメールの送信が禁止されているかどうかを確認する必要があります。

O ClientPortOptions = Addr = 1.2.3.4、Name = XXX

宛先が間違ったネットワークにある場合、それは通過できません。

0
Gerhard Lehmann

よく知られたサービスへの接続タイムアウトは、通常、次の2つのことのいずれかを意味します。

1-ISPがこれをブロックしているため、そこにあるSMTPサーバーのポート25に接続できません。お使いのマシンが直接またはリレー経由でメールを送信できるかどうかをISPに確認してください。 ISP /ホスティングプロバイダーによってリレーが提供されている場合は、次の行を/ etc/mail/sendmail.mcファイルの途中のどこかに追加します。

define(`SMART_Host', `[relay.your.isp.provides]')dnl

次にrootとしてsendmailconfigを実行し、これが機能するかどうかを確認します。

2- TCP解決するウィンドウスケーリングの問題がある場合があります。これは、ケーブルからイーサネットカードドライバ、カード自体、ケーブル、スイッチとその間にあるルーターは、heisenbugとして特定の構成でのみ表示されます。次の行を/ etc/sysctl.confに追加すると、これを回避できます。

net.ipv4.tcp_rmem = 4096 87380 174760
net.ipv4.tcp_wmem = 4096 16384 131072
net.ipv4.tcp_window_scaling = 0

次にrootとして実行sysctl -pそして、これで問題が解決するかどうかを再度確認します。

0
adamo