在 Red Hat/CentOS Linux 中禁止某个 IP 范围出网

Cra*_*ide 4 static-routes iptables centos

我有一个 VPN,我的服务器经常将数据发送到通过 VPN 路由的私有 IP 地址。当 OpenVPN 建立或终止时,它会启用/禁用路由。

我想通过主 Internet 接口 (eth0) 将该私有 IP 范围设为空路由。有没有一种简单的方法可以在不干扰来自 VPN 软件的路由命令的情况下做到这一点?

iptables 不会这样做。我试过

iptables -A OUTPUT -i eth0 -p tcp -d 192.168.0.0/16 -j REJECT
Run Code Online (Sandbox Code Playgroud)

但是在输出链中指定接口时 iptables 不起作用。

任何人都知道是否有一种方法可以将虚拟路由添加到特定接口(eth0)上,而不会干扰可能使用该路由的其他接口?

Ps-我知道 192.168.0.0/16 不是 INTERNET 可路由的,但出于安全原因,希望确保在另一台本地服务器或网络设备开始侦听私有子网的极少数情况下没有数据流出。

Mic*_*ton 5

您在 iptables 规则中的接口规范是落后的。

您指定:

iptables -A OUTPUT -i eth0 -p tcp -d 192.168.0.0/16 -j REJECT
Run Code Online (Sandbox Code Playgroud)

使用在指定接口上进入系统的-i匹配流量。

相反,您希望在命名接口上匹配离开系统的流量,这是通过-o.

iptables -A OUTPUT -o eth0 -p tcp -d 192.168.0.0/16 -j REJECT
Run Code Online (Sandbox Code Playgroud)

(而且您可能不想-p tcp在那里,否则非 TCP 流量可能会通过。)