iptables:打开端口 25 CentOS 7

iptables:打开端口 25 CentOS 7

我在 CentOS 7 机器上打开 sendmail 端口 25 时遇到了问题。

这是我的 iptables 配置:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

服务正在运行:

[root@server1 /]# netstat -tnlp | grep sendmail
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5857/sendmail       

知道为什么它不起作用吗?非常感谢您的帮助!

答案1

问题是默认的 Sendmail 配置只监听本地主机,而不是外部接口,您需要重新配置 Sendmail 以允许这一点。

您需要安装 sendmail-cf:

sudo yum install sendmail-cf

然后,编辑您的 DAEMON_OPTIONS:

cd /etc/mail
sudo vi sendmail.mc

查找条目:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

更改为:

DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

保存文件,运行make:

make

重新启动sendmail:

sudo systemctl restart sendmail

这样您就可以在所有接口上监听端口 25,这应该与您上面提供的防火墙规则集兼容。

答案2

我相信您的绑定是您需要查看的地方,理想的输出应该是:

# netstat -an | egrep '\:25.*LISTEN'
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      
tcp        0      0 :::25                       :::*                        LISTEN      
# 

就像你的情况一样,如果你完全禁用防火墙,你仍然无法访问你的 smtp 服务器,因为它只绑定到本地环路接口,假设你正在使用postfix,请查看inet_interfaces你的内部main.cf

相关内容