这是我们的网络:
WAN <--> Router <--192.168.2.X--> [(eth0) firewall (eth1)] <--192.168.0.X--> LAN
我们需要阻止 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
按照这些规则,以下测试将失败:
telnet smtp.gmail.com 25
如果我刷新规则,上述测试就会成功。
我的规则有问题吗?我遗漏了什么吗?
答案1
DNS 的配置是什么?如果 DNS 在外部区域,则需要打开 DNS 查询端口(53-udp 和 tcp)