Sendmail和IpTable规则

我需要使用nginx,ssh和sendmail为服务器设置IpTable规则。 现在,问题是,用我的规则,我不能再发送电子邮件给其他主机。 电子邮件到本地主机工作,但发送到不同的服务器不,当防火墙启动。

我试图打开传入和传出端口25和DNS查找端口,但没有任何工作。 有任何想法吗?

更新:

这是我的规则:

#! /bin/sh # firewall iptable rules interface="eth0" # first, deny all iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # open loopback device completely iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # open ssh ports iptables -A INPUT -p tcp -i $interface --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp -o $interface --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT # open browser ports iptables -A INPUT -p tcp -i $interface --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p tcp -o $interface --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT 

如果你想允许你的Linux机器通过端口25发送邮件,你应该通过添加一条规则来允许它:

 $ iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT 

类似的DNSstream量:

 $ iptables -A OUTPUT -p udp --dport 53 -j ACCEPT 

如果没有这样的显式规则,默认策略设置为DROP ,stream量将被默认拒绝。

更新:

不要忘记使用以下方式来允许相关/已build立的连接:

 $ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $ iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

将以下规则添加到IPTables中:

 iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT