我正在运行 Linux Debian x64。OpenVPN 正在运行并已配置。
现在,当我的 vpn 未运行或连接中断时,我想禁用互联网连接。
你知道我的意思?
VPN 工作 -> 互联网连接
VPN 不工作 -> 没有互联网连接
是否有可能在 iptables 中解决这个问题或者最好的方法是什么?
答案1
当 OpenVPN 正常运行时,您通常会通过它运行所有互联网流量,并且大概不希望在 OpenVPN 崩溃时通过纯文本互联网泄露信息。因此,这相当容易:只需禁止任何流量离开您的常规以太网接口(我假设这里是eth0
),除非它是 OpenVPN 流量(我假设这里是 UDP/1194,适当修改为 TCP OpenVPN),或基础设施必需(DNS、ICMP):
iptables -A OUTPUT -o eth0 -p udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT
iptables -A OUTPUT -o eth0 -j DROP
我知道并非所有 ICMP 都是需要的,但我个人认为允许 PING 请求和 PONG 响应并没有什么坏处;如果这样做,请修改上述规则。 iptables
规则是顺序敏感的,因此如果您的 OUTPUT 链中已经有规则,那么您需要小心地将它们放在正确的位置。