web-dev-qa-db-ja.com

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

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

これまでの私の法医学の結果は次のとおりです。

サーバーのターミナルでhostnameと入力すると、mydomain.comが返されます。

nano /usr/lib/firewalld/services/smtp.xmlは、SMTPポートが25であることを示します

firewall-cmd --list-allは次の結果になるため、smtpサービスはパブリックゾーンでアクティブになります。

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で実行されていることが疑われますが、どういうわけか、外部接続を受け入れることができません。

EDIT#2

@RedCricketの提案に従って、私はiptables -Lを実行しました。結果は冗長だったので このリンクをクリックして表示できるファイル共有サイトにアップロードしました。

また、iptables --flushに続いてfirewall-cmd --reloadを試し、上からtelnetおよびThunderbirdのテストを繰り返しましたが、それでも接続タイムアウトエラーが発生します。

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

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

EDIT#3

有効なメールアドレスsomeone.else@some_other_domain.comは、問題なく[email protected]にメールを送信します。したがって、テストとして、このOPで前述した作業の一環として、リモートのThunderbirdクライアントに、someone.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からインターネットの他の部分への接続が閉じられたりすることがあります。

EDIT#4

@derobertのアドバイスに従って、最初にdevboxからサーバーに2つのtelnetコマンドを試し、次にdevboxのThunderbirdクライアントを使用して[email protected]から電子メールを送信しようとしました。次に、両方でtcpdumpコマンドを実行しました。 devboxとサーバー上。 devboxターミナルでtcpdump port 25と入力すると、次のようになります。

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

tun0、リンクタイプRAW(Raw IP)でリッスン、キャプチャサイズ65535バイト

次に、サーバーで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

好奇心として、devboxとサーバーの両方でtcpdump port 25を同時に入力し、Ctrl-Cを入力せずに開いたままにし、Thunderbirdクライアントを使用して[email protected]から手動でメールを送信しようとしました私のdevboxで。引き続き同じ接続タイムアウトエラーが発生しましたが、open tcpdump port 25コマンドによって報告されたアクティビティはありませんでした。その後、両方の端末でCtrl-Cと入力すると、合計もゼロになりました。

7
CodeMed

多くのトラブルシューティング の後、クライアント側のISPが発信ポート25(SMTP)をブロックしていると判断しました。これは、インターネット上のランダムなメールサーバーのテストサイトを使用して、メールサーバーに正常に接続できることを確認することによって確認されました。クライアントマシンからのSMTPパケットがまったく到着しませんでした(tcpdumpで確認)。

解決策は、別のポートでSMTPリスナーを再構成することです。 465(SMTP over SSL)および587(メール送信、RFC6409)が一般的なオプションです。

5
derobert