web-dev-qa-db-ja.com

メールサーバーをセットアップしようとすると、ポート(25、587)が機能しない

私はあらゆる場所を検索してきましたが、これに本当に苦労しています。私はほとんどすべてを試したと思います。

背景情報

  • CentOS6.7を搭載したVPS
  • 後置2.6.6
  • dovecot、amavis、mysql、fail2ban
  • VPSプロバイダーに、ポートがブロックされていないことを確認しました。

私がやったこと

  • ストックsendmailを削除
  • 完全なメールソリューションのためにpostfix、dovecot、mysqlなどをインストールしました
  • STARTTLSを使用したimap、smtpのみを許可しています(ポート143および587)
  • SSHログインは無効になり、キーのみが使用されます
  • メールを受信できます(ポート143経由)
  • Localhostから両方のポート(587、25)にtelnetで接続でき、Postfixグリーティングが表示される
  • 587または25(メールクライアントまたはtelnet)に接続しようとすると、応答がゼロになります。つまり、接続タイムアウトです。

私が試したこと

1)ポートは開いていますか?はい、iptables:

Chain INPUT (policy DROP 11 packets, 1375 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
   25  2579 f2b-dovecot  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 110,995,143,993,587,465,4190
   68  7788 f2b-postfix  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,465,587
    0     0 f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 22
   25  2579 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
    7   600 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
23464 2662K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   49  2940 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3915
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
    5   300 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 23235 packets, 2494K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain f2b-dovecot (1 references)
 pkts bytes target     prot opt in     out     source               destination
   25  2579 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain f2b-postfix (1 references)
 pkts bytes target     prot opt in     out     source               destination
   68  7788 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain f2b-sshd (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

2)postfixはポート587でリッスンしていますか?はい。ローカルホストでのみリッスンしていますか?いいえ、ホストはありません。

Netstatは次のとおりです。

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      7173/master
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      917/httpd
tcp        0      0 127.0.0.1:4190              0.0.0.0:*                   LISTEN      749/dovecot
tcp        0      0 0.0.0.0:587                 0.0.0.0:*                   LISTEN      7173/master
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      749/dovecot
tcp        0      0 127.0.0.1:24                0.0.0.0:*                   LISTEN      749/dovecot

念のため、postfix /main.cfもあります。

# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4

# Enable all network interfaces.
inet_interfaces = all

3)安全な接続を正しく強制していますか?私の知る限りでは、はい、ここにpostfix /master.cfがあります:

# Submission, port 587, force TLS connection.
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026

4)smtpd制限についてはどうですか?大丈夫そうです:

# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_non_fqdn_helo_hostname
    reject_invalid_helo_hostname
    check_helo_access pcre:/etc/postfix/helo_access.pcre

5)後置は正しく機能していますか?

はい、サーバーにログインしてコンソールからテストメールを送信すると、反対側で電子メールが受信されます。

echo "Test mail from postfix" | mail -s "Test Postfix" [email protected]

6)ポート587で接続するとどうなりますか?

どうやら、まったく何もありません。任意のポートにtelnetで接続しようとすると、少なくとも何かを取得できます。たとえば、ポート666(開いていない)にTelnetで接続しようとすると、クライアントに応答がありませんが、少なくともtcpdumpで何かを取得します。

15:22:20.305697 IP xxx > xxx.com.mdqs: Flags [S], seq 3195304468, win 8192, options [mss 1352,nop,wscale 8,nop,nop,sackOK], length 0

ポート587をtcpdumpする場合、telnetで接続しようとしてもまったく何も起こりません。

私はまだ何が欠けていますか?

上記のすべてが、私がまだ試すことができることについての私の知識を使い果たしています。私はなんとかそれを私のポート587に釘付けし、何かによって完全にブロックされました。私が言ったように、私のVPSプロバイダーは、ポートをまったくブロックしていないことを確認しました。私はポート25を試しましたが、それは同じ話です。

私が見ることができる他の唯一のことは、サーバーをセットアップするときにそれらのポートを何らかの方法でブロックしたことですが、それが事実であるかどうか思い出せず、それをテストする方法がわかりません。

どうぞよろしくお願いいたします。 実際、私はこれを解決するのを手伝ってくれる人のためにビールを買っています、私はすでに2日間それを無駄にしていて、それは本当に迷惑になり始めています。

9
reachergilt

Reachergilt、SFへようこそ、そして素晴らしい最初の質問に感謝します。あなたは私たちがあなたを救ったと感じるかもしれませんが、正直に言って-あなたはすでにすべての重労働を完了し、それを非常に体系的に提示していました。そのような法医学的な考え方で、私はあなたが来るしばらくの間これらの部分の周りにとどまることを望みます。

tcpdumpの出力は特にひどいものです。合理的な疑いを超えて、接続の試みがサーバーに到達していないことを証明します。これにより、サーバーのファイアウォール、postfixのバインディング、およびその他すべてのサーバー側が免除されます。

そのポインターで武装して、あなたは立ち去り、あなたのoutbound接続がブロックされていることを確認したので、あなたのテストはあなたのサーバーまで決して到達していませんでした。スパム送信ボットネットがそれらを使用するため、25(および程度は低いが587)が最新のネットワークからのアウトバウンドでブロックされるのはかなり(気のめいるように)正常です。

とにかく、あなたは今あなたの新しいメールサーバーが宣伝通りに働いていることに満足しています、そしてそれは良いことです。

4
MadHatter