我在 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
。