我有一台带有两个内部 LAN 的 PC。192.168.10.4
是内部 LAN,是从我的 Raspberry 获取的 IP。Raspberry 通过 wifi 从我的 wifi 路由器连接,然后运行 tor 守护程序并给我地址 192.168.42.2。现在我从 Raspberry 获得 192.168.42.2。然后,我使用 ovpn 文件192.168.42.2
连接到端口打开的 VPN 。TCP 443
一切正常,但我不想在使用时连接192.168.10.4
,我想阻止它。我是 Linux 用户,我在 mate 环境中通过 openvpn 使用 ovpn 文件连接 VPN。
我以为我可以做到,iptables
但我做不到。那么我怎样才能只路由流量,然后192.168.42.2
拒绝任何其他 LAN。我在想我可以通过 ovpn 文件或通过终端的路由命令来做到这一点。
以下是输出ip route
:
default via 10.7.7.1 dev tun0 proto static metric 50
default via 192.168.10.1 dev enp33s0 proto static metric 100
10.7.7.0/24 dev tun0 proto kernel scope link src 10.7.7.5 metric 50
169.254.0.0/16 dev enp33s0 scope link metric 1000
192.168.10.0/28 dev enp33s0 proto kernel scope link src 192.168.10.3 metric 100
217.23.3.91 via 192.168.10.1 dev enp33s0 proto static metric 100
你能告诉我怎么做吗?我搜索了很多例子,但我不明白。
感谢您的时间。
答案1
您的输出ip route
没有显示有关 192.168.42.2 的任何信息,因此我假设在您创建该输出时网络尚未启动。
您的 VPN 服务器似乎可以通过 访问217.23.3.91 via 192.168.10.1
。现在您在该接口上的地址似乎是192.168.10.3
,而您的问题中并未提及。
阻止传出流量的一种方法是接受所有发往 VPN 服务器的流量,并丢弃来自 192.168.10.0/28 的未指向本地子网的所有内容。需要 VPN 服务器的例外,否则您无法访问 VPN 服务器以建立 VPN 连接。如果您通过 DHCP 获取地址,您可能也需要例外。
iptables -A OUTPUT -p tcp --destination 217.23.3.91 –-dport 443 -j ACCEPT
iptables -A OUTPUT --source 192.168.10.0/28 ! --destination 192.168.10.0/28 -j DROP
iptables -A OUTPUT --source 192.168.10.0/28 --out-interface tun0 -j DROP
编辑:
添加了解释,更改为长选项-s --source
并且-d ----destination
等效
第一个命令接受与 217.23.3.91 端口 443 上的服务器的 TCP 连接。这应该是您的 VPN 服务器。如果 VPN 服务器有更多地址,则需要为每个地址设置一行,或者指定地址范围。
第二个命令中的!
表示“不”。因此,源在 192.168.10.0/28 中且目标不在 192.168.10.0/28 中的数据包都将被丢弃。根据您后面的评论,这不是您想要的。
第三个命令丢弃源地址为 192.168.10.0/28 并发往接口 tun0 的数据包。tun0 是 openvpn 创建的接口的通用名称,当然您必须验证这确实是 VPN 接口的名称。ip l
在 VPN 运行时运行该命令。