嘗試設置郵件伺服器,無法使埠(25、587)工作
我到處搜尋,我真的很努力解決這個問題。我想我什麼都試過了。
背景資料
- VPS 與 CentOS 6.7
- 後綴 2.6.6
- 鴿舍,amavis,mysql,fail2ban
- 我已經與我的 VPS 提供商確認他們不會阻止任何埠。
我做過的事情
- 刪除了庫存發送郵件
- 我已經為完整的郵件解決方案安裝了 postfix、dovecot、mysql 等
- 我只允許 imap、帶有 STARTTLS 的 smtp(埠 143 和 587)
- 禁用 SSH 登錄,僅使用密鑰
- 我可以接收郵件(通過埠 143)
- 我可以從本地主機遠端登錄到兩個埠(587、25),我得到後綴問候
- 嘗試連接到 587 或 25(郵件客戶端或 telnet)得到零響應,即連接超時
我嘗試過的事情
- 埠是否開放?是的,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
- 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
- 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" user@something.com
- 在埠 587 上連接時會發生什麼?
顯然,什麼都沒有。如果我嘗試遠端登錄到任何隨機埠,我至少會得到一些東西。例如,嘗試遠端登錄到埠 666(未打開)不會對客戶端產生任何回复,但至少我在 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
當 tcpdumping 埠 587 時,嘗試 telnet 到它時絕對沒有任何反應。
我還缺少什麼?
以上所有內容都耗盡了我對我仍然可以嘗試的事情的了解。我已經設法將其確定為我的埠 587 被某些東西完全封鎖了。正如我所說,我的 VPS 提供商確認他們根本沒有阻止任何埠。我已經嘗試過 25 埠,但情況相同。
我唯一能看到的另一件事是,我在設置伺服器時以某種方式阻止了這些埠,但我不記得是否是這種情況,我不知道如何測試。
我真的很感激你能給我的任何幫助。事實上,我正在為幫助我解決這個問題的人買啤酒,我已經浪費了兩天時間,而且開始變得非常煩人。
Reachergilt,歡迎來到舊金山,感謝您提出的第一個問題。您可能會覺得我們救了您,但老實說 - 您已經完成了所有繁重的工作,並且非常系統地介紹了它。帶著這樣的法醫心態,我希望你能在這些地方呆一段時間。
tcpdump
輸出尤其令人討厭。它毫無疑問地證明您的連接嘗試甚至沒有到達您的伺服器,這免除了伺服器的防火牆、postfix
綁定以及伺服器端的所有其他內容。有了該指針,您就離開並確認您的出站連接被阻止,因此您的測試永遠不會到達您的伺服器。25 個(在較小程度上是 587 個)被阻止從現代網路出站是相當(令人沮喪的)正常的,因為發送垃圾郵件的殭屍網路使用它們。
無論如何,您現在很高興您的新郵件伺服器能夠像宣傳的那樣工作,這很好。