【发布时间】:2014-12-13 23:12:10
【问题描述】:
我想将基于 Linux 的路由器上的接口 (eth2) 限制为某些 IP 和端口。 eth1 主要是不受限制的。
- 路由器执行 DHCP,所以我想允许这些。
- 路由器执行 NAT。
- 路由器没有 NTP,所以我想允许任何 IP。
- 路由器没有 DNS,所以我想允许这个到任何 IP。
- 接口 eth1 后面的设备在与 Internet 通信方面不应有任何限制
- 应该只允许接口 eth2 后面的设备与某些互联网 IP 通信
我的配置目前如下所示:
iptables -F
iptables -X
iptables -t nat -F
# eth1 is 192.168.1.0/24, eth2 is 192.168.2.0/24, so I forward 192.168.0.0/16
iptables -A FORWARD -o ppp0 -s 192.168.0.0/16 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
有了这些规则,一切正常,然而,即使 DHCP 也失败了
# restrict eth2
iptables -i eth2 -A INPUT -j DROP
iptables -i eth2 -A FORWARD -j DROP
iptables -i eth2 -A INPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -i eth2 -A INPUT -p udp --dport 53 -j ACCEPT
iptables -i eth2 -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -i eth2 -A INPUT -p tcp --dport 123 -j ACCEPT
iptables -i eth2 -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -i eth2 -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -i eth2 -A FORWARD -p tcp --dport 123 -j ACCEPT
iptables -A FORWARD -i eth2 --dst 1.2.3.4 -j ACCEPT
iptables -A FORWARD -i eth2 --src 1.2.3.4 -j ACCEPT
iptables -A FORWARD -i eth2 --dst 2.3.4.5 -j ACCEPT
iptables -A FORWARD -i eth2 --src 2.3.4.5 -j ACCEPT
我的错误在哪里?
【问题讨论】:
标签: iptables