我正在 Debian 12 上设置一个新的 Postifx 服务器。我已经安装了 Debian 包并确认 Postfix 正在运行,并且正在监听端口25
、465
和587
。
Postfix 正在运行,日志中没有错误。我禁用了 jails,master.cf
并且此服务器没有运行软件防火墙。
Postifx 与所有接口绑定,如下所示netstat
:
netstat -plnt
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:587 0.0.0.0:* LISTEN 8417/master
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 8417/master
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 8417/master
tcp6 0 0 :::587 :::* LISTEN 8417/master
tcp6 0 0 :::465 :::* LISTEN 8417/master
tcp6 0 0 :::25 :::* LISTEN 8417/master
我可以在服务器本身上进行 telnet 并通过它的公共 IP 连接到 Postfix:
telnet xx.xx.xx.xx 587
Trying xx.xx.xx.xx...
Connected to xx.xx.xx.xx.
Escape character is '^]'.
220 mydomain.com ESMTP Postfix
但是如果我从服务器外部尝试此操作,它将无法连接:
telnet mydomain.com 587
Trying xx.xx.xx.xx...
Trying xxxx:xxxx::xxxx:xxxx:xxxx:xxxx...
telnet: Unable to connect to remote host: Network is unreachable
我已经确认从客户端的角度 DNS 可以正确解析到服务器。
我工作/家里的 ISP 没有阻止传出端口,因为我可以从家里 telnet 到 Gmail 的 SMTP 服务器并访问EHLO
。
服务器托管公司声称没有端口被阻止。
我可以从我的家庭客户端访问服务器,traceroute -I
但没有选项就不行-I
。
说实话,我不知道还能尝试什么。当我尝试 telnet 时,我应该会从 Postfix 获得一些信息。大多数阻止邮件的选项都出现在 之后EHLO
,但我们还没有做到那一步。
服务器上的哪些可能的设置会阻止 Postifx 在外部接口上监听或响应,当netstat
显示它被绑定时,日志中没有错误,并且从服务器本身进行 telnet 时,Postfix 会响应服务器外部 IP 上的 telnet?
inet_interfaces = all
已设定。
inet_protocols = all
已设定。
是否有任何配置设置会导致 Postfix 默默地丢弃连接请求而不产生任何输出?
我还可以检查或尝试什么?Postfix 中的哪些设置会丢弃或不接受初始连接请求?
答案1
iptables
希望这对其他人有所帮助:显然除了和之外还有许多不同的防火墙ucf
。
我发现这个帖子很有帮助:https://surgmail.com/knowledge-base/disable-your-firewall/,其中列出了要查找的所有可能性。就我的情况而言,它是nft
。
以下是需要禁用或检查的防火墙的完整列表:
nft flush ruleset
systemctl mask nftables.service
systemctl stop firewalld
systemctl disable firewalld
service iptables stop
service iptables disable
service ipchains disable
service ipchains stop
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
cfx -x