有一段时间,我无法从外部访问我的服务器上的端口 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 获取邮件。
有什么建议么?
答案1
tcptraceroute mydomain 25
将告诉您哪个主机正在阻止端口 25(与 mtr 或 traceroute mydomain 相比)