【问题标题】:How to restrict an Interface to certain IPs and Ports with iptables?如何使用 iptables 将接口限制为某些 IP 和端口?
【发布时间】: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


    【解决方案1】:

    如果带有“-j DROP”的语句在配置的早期出现,它们就没有机会处理带有“-j ACCEPT”的语句。将它们移到最后。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-15
      • 2014-04-14
      • 1970-01-01
      • 2011-06-05
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多