iptables:允许一些端口被转发到Internet

这是我们的networking:

WAN <--> Router <--192.168.2.X--> [(eth0) firewall (eth1)] <--192.168.0.X--> LAN 

我们需要阻止从局域网客户端访问Internet上的所有内容, 除了 SMTP,IMAP和POP等端口。 我试过下面的规则,但是我不能连接到任何我们想要被允许的端口。

 iptables -F iptables -P FORWARD DROP iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport smtp -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport pop3 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport imap -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward 

通过这些规则,以下testing失败:

 telnet smtp.gmail.com 25 

如果我冲洗规则,上面的testing成功。

我的规定有什么问题吗? 我错过了什么吗?

什么是DNS的configuration? 如果DNS位于外部区域,则需要打开DNS查询端口(53-udp和tcp)