当我在网上冲浪时OpenVPN无法连接到服务器时,如何防止Linux上的IP泄漏?
我阅读了有关 kill switch 的信息,但经过一些互联网搜索后,我发现 OpenVPN 中没有实现。
当我在网上冲浪时OpenVPN无法连接到服务器时,如何防止Linux上的IP泄漏?
我阅读了有关 kill switch 的信息,但经过一些互联网搜索后,我发现 OpenVPN 中没有实现。
不幸的是,之前(已删除)的答案不正确,将允许去匿名化,因为它允许通过端口 1194 进行任何连接,而不仅仅是来自 OpenVPN 的流量。您应该使用更简单的防火墙,它只会阻止所有非 OpenVPN 客户端输出到外部。
如果您没有openvpn
组,请创建它。-r
使其成为系统组。
groupadd -r openvpn
一旦它存在,将此行添加到您的 OpenVPN配置文件以与该组一起运行。
group openvpn
现在您可以将防火墙设置为阻止 OpenVPN 客户端以外的所有进程的输出。您不需要专门将任何端口列入白名单,只需将正确的组和 TUN 设备列入白名单即可。
# Flush the tables. This may cut the system's internet.
iptables -F
# Let the VPN client communicate with the outside world.
iptables -A OUTPUT -j ACCEPT -m owner --gid-owner openvpn
# The loopback device is harmless, and TUN is required for the VPN.
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -o tun+
# We should permit replies to traffic we've sent out.
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED
# The default policy, if no other rules match, is to refuse traffic.
iptables -P OUTPUT DROP
iptables -P INPUT DROP
如果一切正常,您现在应该只能通过 VPN 访问互联网。您可能需要根据您的特定设置进行一些调整(例如,如果您需要访问本地网络上的其他设备),但这应该是一个通用的解决方案。为了使这些更改持久化,请按照您的发行版关于保存防火墙设置的说明进行操作。
请理解,VPN 不是为隐私或匿名而设计的。即使使用适当的防火墙,也有无数种方法可以规避其所谓的保护措施,即使 VPN 声称不保留日志也是如此。如果你需要真正的匿名,你应该改用Tor 之类的东西。