如何修復 postfix TLS?

如何修復 postfix TLS?

筆記雖然下面的所有內容可能具有教育意義,但事實證明我的整個問題不在於 postfix,而在於我的 ISP。實際上,我在所討論的時間內更換了 ISP,而我的新 ISP 正在以一種明確破壞 STARTTLS 的方式攔截和重寫未加密的 SMTP 流量。我透過在連接埠 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 範圍的垃圾郵件。最糟的情況是有人在做中間人攻擊。

相關內容