SMTP経由でメールサーバーにアクセスできない

SMTP経由でメールサーバーにアクセスできない

サーバーから電子メールを送信しようとしています。私のローカルコンピュータではテストはうまくいきますが、本番Ubuntuサーバーでは電子メールを送信しようとするとWebサーバーが失敗します。

私はGmailをSMTPプロバイダとして使用していますが、問題は本番サーバーがGoogle SMTPサーバーへのアクセスを許可していないようです。

次のコマンドは、マイコンピュータでは正常な接続を確立しますが、サーバーでは失敗します。

$ openssl s_client -crlf -connect smtp.gmail.com:465
connect: Connection refused
connect:errno=111

iptablesポートが閉じる場合に備えて、さまざまな組み合わせを試してみました。また、無効なファイアウォールを試してみましたufw disable。どちらも私に成功をもたらすことができませんでした。

修正する:

telnet smtp.gmail.com 465出力:

Trying 74.125.143.108...
Trying 74.125.143.109...
Trying 2a00:1450:4010:c04::6c...
telnet: Unable to connect to remote host: Network is unreachable

openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:465私にしてください:

connect: Connection refused
connect:errno=111

追加iptables-save出力:

# Generated by iptables-save v1.4.12 on Thu Aug 21 13:06:19 2014
*mangle
:PREROUTING ACCEPT [16698:11267219]
:INPUT ACCEPT [16698:11267219]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [13015:16282858]
:POSTROUTING ACCEPT [13015:16282858]
COMMIT
# Completed on Thu Aug 21 13:06:19 2014
# Generated by iptables-save v1.4.12 on Thu Aug 21 13:06:19 2014
*nat
:PREROUTING ACCEPT [1421:163021]
:INPUT ACCEPT [678:92411]
:OUTPUT ACCEPT [1339:83461]
:POSTROUTING ACCEPT [1339:83461]
COMMIT
# Completed on Thu Aug 21 13:06:19 2014
# Generated by iptables-save v1.4.12 on Thu Aug 21 13:06:19 2014
*filter
:INPUT ACCEPT [9933:3116585]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [12536:16243622]
-A INPUT -i lo -j ACCEPT
COMMIT
# Completed on Thu Aug 21 13:06:19 2014

答え1

IIRC、openssl s_client -connect localhostはデフォルトでTLSを使用します。

~からhttps://www.openssl.org/docs/apps/s_client.html:

-ssl2、-ssl3、-tls1、-no_ssl2、-no_ssl3、-no_tls1

これらのオプションは、特定のSSLまたはTLSプロトコルを無効にします。デフォルトでは、初期ハンドシェイクに使用される方法はすべてのサーバーと互換性があり、SSL v3、SSL v2、またはTLSを適切に使用できるようにする必要があります。

残念ながら、この技術を処理できず、接続できない古くて故障したサーバーが多用されています。一部のサーバーは-no_tlsオプションを使用してTLSをオフにした場合にのみ機能し、他のサーバーはSSL v2のみをサポートし、-ssl2オプションが必要になる場合があります。

次のいずれかのオプションを使用する必要があります。

答え2

まず、目的地までの基本的な接続を試してみてください。

telnet smtp.gmail.com 587

それでも問題が解決しない場合は、ファイアウォールの問題を検討してください。

TLSが有効であることを確認してください

openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587

最初の方法は機能しますが、TLSが失敗した場合はTLSトラフィックを検査できないため、TLSの使用を防ぐ深層検査ファイアウォールを使用している可能性があります。

私にとって、あなたの問題は電子メールの問題ではなく、ファイアウォールの問題のように見えます。

その場合は、所有しているファイアウォールとその構成を説明する必要があります。純粋にiptablesの場合(これまで説明が可能に見える場合)iptables-save

編集する

iptables設定が空です。とにかくデフォルトはACCEPTなので、iptablesを安全に無視できるので、1つのルールは関係ありません。

TCP接続(telnet smtp.gmail.com 465)も設定できないため、ルーティングなど他のすべてが大丈夫であると仮定すると、一部のファイアウォールによって完全にブロックされていることを意味します。本番サーバーなので除外しても安全そうです。

したがって、これはポート465でブロックされているので、ネットワークチームと議論するか、外部ファイアウォールを見てください。

上記の例では、ポート587を確認して、そのポートもブロックされていることを確認してください。この場合、関連する設定されたポート25のみを許可する非常に厳しいファイアウォールがある可能性があります。

ユーザーをブロックするすべてのファイアウォールで許可されている発信ポートに465を追加する必要があります。

あなたの環境はわかりませんが、一部の高レベルのセキュリティ環境では、ネットワーク内の暗号化を許可せずにファイアウォールで暗号化を実行します。あなたも同様の状況に直面している可能性があります。

関連情報