如果 VPN 连接断开,则阻止互联网

jl3*_*354 7 vpn networking ufw gufw openvpn

尝试设置 gufw,以便在我的 vpn 连接断开时,我的计算机将无法再访问互联网。

我的计划是阻止所有传出,但只允许连接到我的 vpn 服务器的 IP,但是我发现在实施防火墙时,即使 vpn 已连接,我也无法加载站点。

设置

以上是我目前正在尝试的设置(部分隐藏的 IP 是我的 vpn 服务器),我做错了什么?

小智 3

您只需使用 ufw GUI 即可做到这一点:

  • 配置 ufw 以全局拒绝传出流量(就像您所做的那样)
  • 添加以下两条规则,假设这eth0是您的公共接口,tun0是 VPN 创建的接口,xxx.xxx.68.138您的 VPN IP:
    1. 允许通过公共接口连接到 VPN IP:添加带有Policy=Allow, Direction=Out,的规则Interface=eth0To=xxx.xxx.68.138
    2. Policy=Allow允许所有内容通过 VPN 接口:添加带有、Direction=OutInterface=tun0的规则To=0.0.0.0/0

就这样!

您几乎做到了,只是忘记允许传出流量通过 VPN,因为全局拒绝传出流量适用于所有接口,包括 VPN 创建的接口。

顺便说一句,我建议您全局拒绝传入流量,这将防止邪恶的人或在您的网络上运行的机器人通过利用正在运行的网络服务的错误或错误配置来侵入您的计算机(默认情况下,Ubuntu 运行一些网络服务侦听所有接口,而不仅仅是本地接口)。


270*_*974 2

尝试这样的事情

您希望ufw根据interface状态更改规则。

进行此类活动的好地方是/etc/network/if-down.d//etc/network/if-up.d/

您可以在此文件夹中放置一些脚本并执行操作。例如,放入此脚本以在每次停机时/etc/network/if-down.d/更改规则。ufwtun0

使脚本script以执行权限调用755

sudo nano /etc/network/if-down.d/script
Run Code Online (Sandbox Code Playgroud)

脚本是

# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
sudo ufw default deny outgoing
sudo ufw allow out to xxx.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)

更改脚本的权限

chmod 755 /etc/network/if-down.d/script
Run Code Online (Sandbox Code Playgroud)

代表你服务器script xxx.xxx.xxx.xxx的ipvpn

vpn重新连接时,您需要再次更改ufw规则。再制作一个脚本script2

sudo nano /etc/network/if-up.d/script2
Run Code Online (Sandbox Code Playgroud)

脚本是这样的

# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
sudo ufw default allow outgoing
#also you can add more ufw rules ...
sudo ufw ....
Run Code Online (Sandbox Code Playgroud)

更改脚本的权限

chmod 755 /etc/network/if-up.d/script2
Run Code Online (Sandbox Code Playgroud)

第一个脚本如果tun0关闭,将使默认的传出警察拒绝,但允许访问vpn服务器。第二个脚本将默认的外出警察更改为allow