boo*_*ull 5 firewall iptables internet openvpn
我想阻止所有互联网连接,除非我连接到我的 OpenVPN。当然,现在我需要允许连接到 VPN 服务器。
这可以通过允许进出 VPN 服务器 ip 的流量来完成,但之后使用iptables
?
我尝试了@tachomi 提出的解决方案,但iptables
在设置规则时我没有互联网连接。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
Run Code Online (Sandbox Code Playgroud)
首先允许您的本地连接和您的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
Run Code Online (Sandbox Code Playgroud)
这将允许互联网连接。
设置默认链策略
$ sudo iptables -P INPUT DROP
$ sudp iptables -P OUTPUT DROP
Run Code Online (Sandbox Code Playgroud)
这将拒绝所有类型的入站/出站流量。
允许您的 VPN 连接
$ sudo iptables -A INPUT -s [VPN ip connection] -j ACCEPT
$ sudo iptables -A OUPUT -d [VPN ip connection] -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
这将允许 VPN 连接。
如果您通过 SSH 连接,您必须允许您的 IP 地址也作为您的本地主机
更新:
对于其他连接规则,只需允许它们。
以 HTTP 为例:
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
个人推荐
我所做的是备份我的 iptables 规则$ sudo iptables-save > iptables_backup
,然后对于任何更改,我使用 vim 编辑规则并使用$ sudo iptables-restore < iptables_backup
. 这只是避免重复规则的个人做法。
归档时间: |
|
查看次数: |
9009 次 |
最近记录: |