阻止所有互联网连接,除非连接到 OpenVPN 服务器

阻止所有互联网连接,除非连接到 OpenVPN 服务器

我想阻止所有互联网连接,除非我连接到我的 OpenVPN。当然,现在我需要允许连接到 VPN 服务器。

可以通过允许进出 VPN 服务器 IP 的流量来完成此操作,但随后使用 删除所有规则iptables吗?

iptables我尝试了@tachomi 提出的解决方案,但在设置规则时我没有互联网连接。iptables-save状态:

# Generated by iptables-save v1.6.0 on Wed Feb  3 00:53:32 2016
*filter
:INPUT DROP [247:40343]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [153:25961]
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p udp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p udp -j ACCEPT
COMMIT
# Completed on Wed Feb  3 00:53:32 2016

答案1

首先允许您的本地连接和RELATED, ESTABLISHED连接协议。

$ sudo iptables -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT

这将允许互联网连接。

设置默认链策略

$ sudo iptables -P INPUT DROP
$ sudp iptables -P OUTPUT DROP

这将拒绝所有类型的入站/出站流量。

允许您的 VPN 连接

$ sudo iptables -A INPUT -s [VPN ip connection] -j ACCEPT
$ sudo iptables -A OUPUT -d [VPN ip connection] -j ACCEPT

这将允许 VPN 连接。

如果您通过 SSH 连接,则必须允许您的 IP 地址也作为您的本地主机

更新:

对于其他连接规则,只需允许即可。

以HTTP为例:

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT  

个人推荐

我所做的是使用 备份我的 iptables 规则$ sudo iptables-save > iptables_backup,然后对于任何更改,我使用 vim 编辑规则并使用 恢复 iptables $ sudo iptables-restore < iptables_backup。这只是个人做法,避免重复规则。

相关内容