Postfix仅外发邮件场景下的防火墙端口配置疑问
嘿,我来帮你理清这两个核心疑问:
为什么需要允许端口25?禁用后会怎样?
你用Mailwizz通过587端口连接Postfix发邮件,这是客户端到MTA的提交连接,但Postfix作为邮件传输代理,最终得把邮件递送到收件方的邮件服务器啊!而所有收件方的邮件服务器都是通过25端口接收外部MTA的投递请求的——也就是说,你的Postfix需要主动发起对远端服务器25端口的出站连接。
如果你的防火墙完全禁用了25端口(包括出站流量),那Postfix根本没法把邮件送到目标邮箱,邮件会一直卡在Postfix的队列里,过一段时间就会触发退信通知,告诉你无法完成投递。
不过要注意:你只需要允许出站的25端口流量,完全不需要开放入站的25端口(毕竟你不接收外部邮件)。用UFW的话,可以用sudo ufw allow out 25/tcp来精准配置,避免开不必要的入站端口。
关于587端口的UFW命令:选哪个?
先给你个明确结论:sudo ufw allow 587和sudo ufw allow 587/tcp这两个命令的效果完全一致!因为UFW在指定端口时,默认的协议就是TCP,除非你明确加上/udp后缀。
不过从配置的严谨性来说,我更推荐用sudo ufw allow 587/tcp,这样能清晰地告诉防火墙你要开放的是TCP协议的587端口,避免后续自己看规则时产生混淆。而且你只需要运行其中一个就够了,重复运行也不会有问题,但完全没必要。
这里开放的是入站的587端口,因为Mailwizz作为客户端,需要连接到Postfix的587端口来提交邮件,所以这个入站规则是必须的。
备注:内容来源于stack exchange,提问作者Digital Joe George

