连接到 mydomain.com...无法在端口 25 上打开与主机的连接:连接失败

连接到 mydomain.com...无法在端口 25 上打开与主机的连接:连接失败

我在 /etc/sysconfig/iptables 中有这些设置

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 23 -j ACCEPT
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

我认为我应该打开 25 端口,然后我重新启动了机器,但是运行“telnet mail.mydomain.com 25”时出现错误“连接到 mydomain.com...无法打开与主机的连接,在端口 25:连接失败”“telnet:无法连接到远程主机:连接被拒绝”

我通过运行“telnet localhost 25”在本地进行了测试,运行正常。我得到了“220 mail.mydomain.com ESMTP Postfix”

我还需要配置其他东西来打开端口 25 吗?

这是 Centos 5.4

谢谢

答案1

您是否检查过此主机前面是否有防火墙阻止传入端口 25?您列出的规则肯定会让您进入。事实上,您允许端口 25 两次。

另外,您应该使您的规则与 Red Hat/CentOS 的惯例保持一致。这些规则:

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 23 -j ACCEPT

看起来应该像这样,放在如下ESTABLISHED,RELATED行后面:

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT

另外,请确保在对此文件进行更改后运行/etc/init.d/iptables restart。要确认是否已应用这些更改,请运行:

# iptables -L -n | grep 25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:25

祝你好运。

答案2

正如 Ignacio 提到的,您可能希望确保 Postfix 确实在监听该端口并接受连接。它可能只是配置为通过端口 25 发送邮件,而不是接受它。一些命令用于 netstat -an查看正在监听的内容。最好在端口 25 上列出一些内容以供 telnet 连接。查看tcpdump服务器上的实际数据包捕获情况,看看您的 telnet 是否通过。同样,您可能希望打开 iptables 日志记录以确保确实是它杀死了您的数据包。——


Christopher Karel

相关内容