IPTables 防火墙/路由器/网关需要阻止用户的出站流量

IPTables 防火墙/路由器/网关需要阻止用户的出站流量

我有多个 ethX 接口。

  • eth0已连接到互联网。
  • eth1已连接到受信任的网络。
  • eth2连接到网络我需要施加使用规则。

我想做的就是分开eth1eth2进入他们自己的链(可信/不可信),只是为了维护“容易看到”的规则。

:INPUT DROP
-A INPUT ! -i eth0 -j ACCEPT    # allows INPUT on traffic not internet based
... # More rules for eth0 allowing PING and shunting most everything else
-A INPUT -i eth1 -j trusted
-A INPUT -i eth2 -j untrusted

由于这些问题,OUTPUT 和 FORWARD 当前设置为 ACCEPT。

就目前而言,eth1只是跳到连锁假面舞会,目前这完全没问题,但困惑在于如何操纵,eth2因为它在我的尝试中效果不佳。

我的猜测是列出所有允许的端口/协议,但到目前为止它不起作用,因为通过连接的设备eth2无法到达任何东西,甚至防火墙服务器的 DNS/DHCP 也无法到达。

:untrusted
-A untrusted -i eth2 -p tcp -m tcp --dport 80 -j ACCEPT

我需要的基本上是一组“说”以下内容的规则:

  1. 如果传出互联网流量eth0未 PING,则丢弃
  2. 如果eth1连接到互联网 ( eth0),请接受它
  3. 如果eth2通过 TCP 端口 80 访问互联网,请接受它,放弃其他所有内容。
  4. 要访问互联网,请使用伪装通过eth0

任何想法/建议将不胜感激!

答案1

-A OUTPUT -o eth0 -p icmp --icmp-type ping -j ACCEPT
-A OUTPUT -o eth0 -j DROP

-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

-A FORWARD -i eth2 -o eth0 -p tcp --dport 80 -j ACCEPT
-A FORWARD -i eth2 -o eth0 -j DROP
-A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT

*nat
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

将最后一行的网络更改192.168.2.0/24为网络;eth2这样,只有源自eth2网络的数据包才会被伪装。

我还更喜欢显式添加一条规则来在链的末尾丢弃数据包,而不是依赖策略。

这应该涵盖您问题中的要点。

相关内容