postfix smtp 接続がタイムアウトしました。なぜですか?

postfix smtp 接続がタイムアウトしました。なぜですか?

CentOS 7 Web サーバーには postfix、dovecot、mailx がインストールされています。リモートのThunderbirdクライアントを使用して受信トレイメールを読み取るためにサーバーへのIMAP接続を確立できましたが、Thunderbirdから電子メールを送信するためのSMTP接続を確立できませんでした。フォレンジックを実行したときに試みたSMTP接続がタイムアウトしたことがわかりました。 Thunderbirdがサーバー経由で電子メールを送信できるように、接続タイムアウトをどのように解決しますか?

これまでの私のフォレンジックの結果は次のとおりです。

hostnameサーバー端末に入力すると、が返されますmydomain.com

nano /usr/lib/firewalld/services/smtp.xmlsmtp ポートが 25 であることを示します。

パブリックゾーンでsmtpサービスを有効にすると、次の結果が得られますfirewall-cmd --list-all

public (default, active)
  interfaces: enp3s0
  sources: 
  services: dhcpv6-client imaps openvpn smtp
  ports: 
  masquerade: yes
  forward-ports: 
  icmp-blocks: 
  rich rules: 

しかし、私のdevboxからリモートCentOS 7サーバーにTelnetを試してみると、次のような結果が表示されます。入力結果はtelnet mydomain.com 25次のとおりです。

Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out

次にtelnet smtp.mydomain.com 25結果を入力します。

Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out

また、入力openssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host smtp.mydomain.com結果は以下の通りです。

socket: Connection timed out
connect:errno=110

同様に入力すると、次のようなopenssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host mydomain.com結果になります。

socket: Connection timed out
connect:errno=110

設定確認の開始を入力しましたが、nano /etc/postfix/main.cfポートに関連するエントリが見つかりませんでした。

編集する:

FaheemMithaの提案に従って、telnet mydomain.com 587顧客と一緒に試してみましたが、No route to host良い反応を得ました。これは、ファイアウォールでsmtp用にポート25のみが開いているためです。

だから私はリモートサーバーmydomain.com内でTelnetを試したいと思います。 SSHを介してリモートサーバーにログインしてこれを入力すると、telnet localhost 25結果は次のようになります。

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mydomain.com ESMTP Postfix  

これにより、postfixはポート25で実行されていますが、どういうわけか外部接続を許可できないと思われます。

編集#2

@RedCricketのアドバイスに従ってiptables -L。結果が長くなるのでファイル共有サイトに投稿しましたが、このリンクをクリックするとご覧いただけます。

iptables --flushまた、後者を試してfirewall-cmd --reloadから上記のTelnetテストとThunderbirdテストを繰り返しましたが、まだ接続タイムアウトエラーが発生します。

また何を試すことができますか?

ファイル全体を/etc/postfix/main.cfファイル共有サイトにアップロードしました。あなたはできます読むには、このリンクをクリックしてください。

編集#3

有効なメールアドレス some.else@some_other_domain.com メールを送信[Eメール保護]大丈夫です。そのため、テストでは、リモートThunderbirdクライアントに、このOPで上記のタスクの一部としてsome.else@some_other_domain.comに電子メールを送信させました。今朝、Thunderbirdからテストメールの返信メッセージを受け取りました。この戻りメッセージは、Thunderbird から送信された 1 つ以上のテストメッセージが mydomain.com の SMTP に入ってきたが、mydomain.com が some_other_domain.com を検索または接続できないことを意味します。メッセージは次のとおりです。

This is the mail system at host mydomain.com.

I'm sorry to have to someone.elserm you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

<someone.else@some_other_domain.com>: Host or domain name not found. Name service error for
    name=some_other_domain.com type=MX: Host not found, try again

Reporting-MTA: dns; mydomain.com
X-Postfix-Queue-ID: 2C915811BD1C
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Mon, 23 Feb 2015 16:46:34 -0500 (EST)

Final-Recipient: rfc822; someone.else@some_other_domain.com
Action: failed
Status: 4.4.3
Diagnostic-Code: X-Postfix; Host or domain name not found. Name service error
    for name=some_other_domain.com type=MX: Host not found, try again

ForwardedMessage.eml
Subject: key enclosed
From: [email protected]
Date: 02/23/2015 01:46 PM
To:    someone.else@some_other_domain.com

this is the body of the email  

そのため、リモートdevboxからmydomain.comへの接続が失われる場合があり、mydomain.comから残りのインターネットへの接続も失われる場合があります。

編集#4

@derobertの提案に従って、最初にdevboxからサーバーに2つのTelnetコマンドを試してください。[Eメール保護]私のdevboxでThunderbirdクライアントを使用し、devboxとサーバーの両方でtcpdumpコマンドを実行します。 devbox端末の入力結果tcpdump port 25は次のとおりです。

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

tun0で受信中、リンクタイプRAW(raw IP)、キャプチャサイズ65535バイト^ Cキャプチャされた0個のパケットフィルタ受信された0個のパケットカーネルが0個のパケットを削除する

次にtcpdumpサーバーに入力すると、多くの出力が生成され、Ctrl-Cを入力するまで結果は無限にスクロールされます。だから入力をしてみるとtcpdump port 25以下のような結果が出ました。

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

好奇心が強いと、tcpdump port 25devboxとサーバーの両方に再入力し、入力せずに開いたままにしてから、次から手動Ctrl-Cで入力しようとしました。[Eメール保護]私の開発ボックスでThunderbirdクライアントを使用します。それでも同じ接続タイムアウトエラーが発生しますが、openコマンドはアクティビティがないことを報告しますtcpdump port 25。その後、両方の端末に入力すると、Ctrl-C合計も0です。

答え1

後ろに多くのトラブルシューティング、クライアントのISPが発信するポート25(SMTP)をブロックしたことが確認されました。これは、インターネット上の任意のメールサーバーでサイトをテストした結果、メールサーバーに正しく接続できることを確認することによって確認されました。クライアントコンピュータのSMTPパケットはまったく到着しません(承認を介してtcpdump)。

回避策は、別のポートでSMTPリスナーを再構成することです。 465(SSL経由のSMTP)と587(メール送信、RFC6409)は一般的なオプションです。

関連情報