如何修复 postfix TLS?

如何修复 postfix TLS?

笔记虽然下面的所有内容可能具有教育意义,但事实证明,我遇到的整个问题并不出在 postfix 上,而出在我的 ISP 上。实际上,我在当时更换了 ISP,而我的新 ISP 正在拦截和重写未加密的 SMTP 流量,这种方式明确破坏了 STARTTLS。我通过在端口 465 上设置仅 TLS 连接解决了该问题。


今天早些时候,STARTTLS 正在与我的系统配合使用。在我没有对系统进行任何改动的情况下,它突然崩溃了。我已经尝试修复它几个小时了,但没有成功。

当我连接到服务器时,我得到的结果如下:

savanni@Orolo:~$ telnet apps.savannidgerinel.com 25
Trying 129.121.182.135...
Connected to apps.sasavanni@Orolo:~$ telnet apps.savannidgerinel.com 25
Trying 129.121.182.135...
Connected to apps.savannidgerinel.com.
Escape character is '^]'.
220 ***********************************************
ehlo dude
250-apps.savannidgerinel.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-XXXXXXXA
250-AUTH PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
^]close

telnet> close
Connection closed.

好吧,显然 STARTTLS 不在此列表中。因此,我一直在研究我的配置文件并再次学习教程,但这对我毫无帮助。以下是我的 tls 相关配置:

smtp_tls_CAfile = /etc/ssl/certs/savannidgerinel_com_CA.pem
smtp_tls_cert_file = /etc/ssl/certs/apps.savannidgerinel.com.pem
smtp_tls_key_file = /etc/ssl/private/apps.savannidgerinel.com.key.pem
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_tls_CAfile = /etc/ssl/certs/savannidgerinel_com_CA.pem
smtpd_tls_cert_file = /etc/ssl/certs/apps.savannidgerinel.com.pem
smtpd_tls_key_file = /etc/ssl/private/apps.savannidgerinel.com.key.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

tls_random_source = dev:/dev/urandom

所有证书文件都存在,服务器私钥存在,服务器 CA 存在,并且 smtpd_scache.db 和 smtp_scache.db 文件都存在。所有这些都可供 postfix 用户访问。说到这,以下是正在运行的进程:

savanni@apps:/var/lib/postfix$ ps aux | grep postfix
root      3525  0.0  0.1  25112  1680 ?        Ss   20:19   0:00 /usr/lib/postfix/master
postfix   3526  0.0  0.1  27176  1524 ?        S    20:19   0:00 pickup -l -t fifo -u -c -o content_filter= -o receive_override_options=no_header_body_checks
postfix   3527  0.0  0.1  27228  1552 ?        S    20:19   0:00 qmgr -l -t fifo -u
postfix   3528  0.0  0.4  46948  4144 ?        S    20:19   0:00 smtpd -n smtp -t inet -u -c -o stress= -s 2
postfix   3529  0.0  0.1  27176  1628 ?        S    20:19   0:00 proxymap -t unix -u
postfix   3530  0.0  0.3  38212  3176 ?        S    20:19   0:00 tlsmgr -l -t unix -u -c
postfix   3531  0.0  0.1  27176  1516 ?        S    20:19   0:00 anvil -l -t unix -u -c
postfix   3535  0.0  0.1  27188  1544 ?        S    20:20   0:00 trivial-rewrite -n rewrite -t unix -u -c

日志文件除了以下内容外,没有提到与 TLS 相关的任何内容:

Nov  6 02:19:45 apps postfix/master[3525]: daemon started -- version 2.9.6, configuration /etc/postfix
Nov  6 02:19:49 apps postfix/smtpd[3528]: initializing the server-side TLS engine
Nov  6 02:19:49 apps postfix/tlsmgr[3530]: open smtpd TLS cache btree:/var/lib/postfix/smtpd_scache
Nov  6 02:19:49 apps postfix/tlsmgr[3530]: tlsmgr_cache_run_event: start TLS smtpd session cache cleanup
Nov  6 02:19:49 apps postfix/smtpd[3528]: connect from unknown[204.16.68.108]

syslog 和 mail.err 都没有显示任何问题。就整个系统而言,一切正常。但没有 STARTTLS,所以我突然无法发送任何根本没有电子邮件。

帮助???

答案1

来自 main.cf

有关更多 tls 日志记录: smtp_tls_note_starttls_offer = yes

注释掉或者删除:

smtp_tls_CAfile = /etc/ssl/certs/savannidgerinel_com_CA.pem
smtp_tls_cert_file = /etc/ssl/certs/apps.savannidgerinel.com.pem
smtp_tls_key_file = /etc/ssl/private/apps.savannidgerinel.com.key.pem

“除非您必须向一台或多台服务器提供客户端 TLS 证书,否则请不要配置客户端证书。客户端证书通常不是必需的,并且可能会导致在没有它们的情况下运行良好的配置出现问题。建议的设置是保留默认值。”

重新加载配置或重新启动 postfix。

我测试了你的服务器:

EHLO apps.savannidgerinel.com
250-apps.savannidgerinel.com
250-PIPELINING
250-SIZE 10240000
250-VRFY 250-ETRN
250-STARTTLS
250-AUTH PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

它确实提供了250-STARTTLS。所以有一些东西像代理一样在端口 25 上拦截您的流量。它可能是任何类型的防火墙或高级路由器,具有您的本地计算机通过其连接的扩展功能。如果您没有防火墙或高级路由器,那么很可能是您的 ISP 的反垃圾邮件策略,以防止垃圾邮件源自他们的 IP 范围。最坏的情况是有人在做中间人攻击。

相关内容