我需要限制 Debian 机器上的流量,例如使用 IP 表。具体来说,服务器有 3 个主要网络接口:eth0、wlan0 和 tun0。
eth0 是机器连接到互联网的普通以太网连接 wlan0 是 wifi 热点,即其他设备通过此接口连接到机器 tun0 是一个 IPSec VPN,它“通过”eth0 连接到外部 VPN 服务器 我现在需要限制通过 wifi(即通过 wlan0)连接到机器的设备的所有流量访问互联网。不幸的是,外部 VPN 服务器没有固定的 IP 地址。
因此,我的计划是只允许来自 wlan0 的流量转发到 tun0,而绝不转发到 eth0。据我所知,这会导致所有未通过 VPN 连接路由的流量被丢弃,并且无法访问互联网。同时,服务器本身可以正常访问互联网。
这是可能的吗?或者这会首先干扰 VPN 连接的建立吗?
我的想法有点像使用 iptables:
iptables -A OUTPUT -j DROP -i wlan0 -o eth0 -p all
iptables -A INPUT -j DROP -i eth0 -o wlan0 -p all
我还考虑过以某种方式指定路由,即来自 wlan0 的流量只能通过 tun0 转发,并且不存在其他选项。
哪种做法更加合理?
答案1
总结一下我在这里取得成功所做的事情:
我按照@Tom_Yan的建议将相应的 REJECT 规则添加到 FORWARD 链中:
sudo iptables -I FORWARD -i wlan0 -o eth0 -j REJECT
sudo iptables -I FORWARD -i eth0 -o wlan0 -j REJECT
sudo iptables-save
从而有效地切断从 wifi 网络到“正常” eth0 接口的所有流量(反之亦然)。
这已经奏效了。如果 VPN 断线,任何 wifi 客户端都无法以任何形式访问互联网。一旦重新建立 VPN 连接,这些客户端就可以再次使用互联网。任务成功。