尝试设置 gufw,这样如果我的 vpn 连接断开,我的计算机将无法再访问互联网。
我的计划是阻止所有传出,但只允许连接到我的 vpn 服务器的 IP,但我发现当实施防火墙时,即使连接了 vpn,我也无法加载网站。
以上是我目前正在尝试的设置(部分隐藏 IP 是我的 vpn 服务器),我做错了什么?
答案1
您只需使用 ufw GUI 即可完成此操作:
- 配置 ufw 以全局拒绝传出流量(就像你所做的一样)
- 添加以下两个规则,假设
eth0
是您的公共接口、tun0
是 VPN 创建的接口以及xxx.xxx.68.138
是您的 VPN IP:- 允许通过公共接口连接到 VPN IP:添加一条包含
Policy=Allow
、Direction=Out
和Interface=eth0
的规则To=xxx.xxx.68.138
- 允许所有内容通过 VPN 接口:添加一条规则,其中包含
Policy=Allow
、Direction=Out
和Interface=tun0
To=0.0.0.0/0
- 允许通过公共接口连接到 VPN IP:添加一条包含
就这样!
您几乎已经做到了,只是忘记允许通过 VPN 传出流量,因为全局拒绝传出流量适用于所有接口,包括 VPN 创建的接口。
顺便说一句,我建议您全局拒绝传入流量,这将防止在您的网络上运行的恶意人员或机器人利用正在运行的网络服务的错误或错误配置来侵入您的计算机(默认情况下,Ubuntu 运行一些网络服务监听所有接口,而不仅仅是本地接口)。
答案2
尝试这样的事情
您希望ufw
根据interface
状态更改规则。
进行此类活动的好地方/etc/network/if-down.d/
是/etc/network/if-up.d/
您可以在此文件夹中放置一些脚本并执行操作。例如,将此脚本放入每次关闭时/etc/network/if-down.d/
更改规则。ufw
tun0
使脚本script
以执行权限被调用755
sudo nano /etc/network/if-down.d/script
脚本是
# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
sudo ufw default deny outgoing
sudo ufw allow out to xxx.xxx.xxx.xxx
更改脚本的权限
chmod 755 /etc/network/if-down.d/script
代表你的服务器script
xxx.xxx.xxx.xxx
的 IPvpn
重新连接时,vpn
您需要再次更改ufw
规则。再制作一个脚本,又名script2
sudo nano /etc/network/if-up.d/script2
脚本是这样的
# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
sudo ufw default allow outgoing
#also you can add more ufw rules ...
sudo ufw ....
更改脚本的权限
chmod 755 /etc/network/if-up.d/script2
如果发生故障,第一个脚本将使tun0
默认传出策略拒绝,但将允许访问vpn
服务器。第二个脚本将更改默认传出策略为allow