一段时间以来,我无法从外部访问我的服务器上的端口 25 或 587 上的 SMTP,尽管两个端口都是打开的并且 postfix 正在监听它们:
$ telnet domain.tld 25
Telnet escape character is '^]'.
Trying *.*.*.*...
telnet: Unable to connect to remote host: Connection timed out
$ iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A fail2ban-ssh -j RETURN
$ netstat -anpt | grep master
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 1081/master
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1081/master
从服务器本身发送邮件(通过命令行和 Web 界面)和通过 IMAP 获取邮件也是可能的。
有什么建议么?
会告诉你哪个主机阻塞了 25 端口(与 mtr 或 traceroute mydomain 相比)