我设置了一个 MX 邮件服务器,尽管端口 25 被阻止,但一切正常,我很困惑为什么我能够使用此设置接收电子邮件,以及如果我这样设置可能会产生什么后果。以下是详细信息:
- 通过端口 25 和 587 与 SMTP 的连接都通过我的本地网络可靠地连接。
- 通过端口 25 与 SMTP 的连接被外部 IP 阻止(ISP 阻止了该端口)。
- 通过端口 587 从外部 IP 连接到提交 SMTP 是可靠的。
- 从 gmail、yahoo 和其他一些地址发送的电子邮件都在送达。我还没有找到无法将邮件发送到我的 MX 的电子邮件提供商。
因此,在端口 25 被阻塞的情况下,我假设其他 MTA 服务器回退到端口 587,否则我无法想象邮件是如何接收的。我知道 25 端口不应该被阻塞,但到目前为止它可以工作。是否有无法使用的邮件服务器?我在哪里可以找到更多关于它是如何工作的?
- 编辑
更多技术细节,以验证我没有遗漏一些愚蠢的东西。显然,在下面的文字记录中,我已经用 example.com 替换了我的实际域。
# DNS MX record points to the A record.
$ dig example.com MX +short
1 example.com
$ dig example.com A +short
<Public IP address>
# From a public server (not my ISP hosting the mail server)
# We see port 25 is blocked, but port 587 is open
$ telnet example.com 25
Trying <public ip>...
telnet: Unable to connect to remote host: Connection refused
# Let's try openssl
$ openssl s_client -starttls smtp -crlf -connect example.com:25
connect: Connection refused
connect:errno=111
# Again from a public server, we see port 587 is open
$ telnet example.com 587
Trying <public ip>...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Postfix
ehlo example.com
250-example.com
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-BINARYMIME
250 CHUNKING
quit
221 2.0.0 Bye
Connection closed by foreign host.
以下是收到来自 gmail 的消息时邮件日志中的一部分:
postfix/postscreen[93152]: CONNECT from [209.85.128.49]:48953 to [192.168.0.10]:25
postfix/postscreen[93152]: PASS NEW [209.85.128.49]:48953
postfix/smtpd[93160]: connect from mail-qe0-f49.google.com[209.85.128.49]
postfix/smtpd[93160]: 7A8C31C1AA99: client=mail-qe0-f49.google.com[209.85.128.49]
日志显示在端口 25 上与本地 IP 建立了连接(我没有进行任何端口映射,因此它也是公共 IP 上的端口 25)。看到这一点,我推测端口 25 上的 ISP 块仅在从未知的 IP 地址建立连接时才会发生。邮件服务器。还有其他理论吗?
感谢@phoebus、@mfinni 和@'USD Matt',他们的评论帮助澄清了情况。
我得出的结论是邮件实际上是在端口 25 上传递的,因为如果我自己阻止端口 25,则不再传递传入的邮件。确认邮件没有像我最初怀疑的那样通过故障转移到端口 587 传递。
端口 25 似乎只被我的 ISP(Shaw 在加拿大)阻止了不运行邮件服务器的 IP 地址,例如从 dreamhost 上的外壳或其他非邮件服务 IP 地址端口被阻止,但已知的邮件服务器没有阻塞的端口问题。
如果 ISP 更改其端口阻止策略,我已经通过 pingdom.com 添加了 SMTP 监控。有趣的是,另一个 smtp 监控服务无法监控,因为它的监控代理被我的 ISP 阻止。
有几个简单的规则可用于阻止大多数垃圾邮件服务器。有些会阻止合法但配置不当的服务器。
spamhaus.org
或其他黑名单中的主机。Spamhaus 包含一个被标识为动态分配的地址列表,因此不是合法的邮件服务器。dnswl.org
已经提供了一个这样的白名单。我赞扬您的 ISP 过滤非法服务器,如果他们正在这样做的话。