我正在尝试为我的 pi 制作一个终止开关,以仅允许通过 VPN 的流量。我对 iptables 进行了以下更改,并在 sysctl.conf 中禁用了 IPv6。这不是我的专业领域,所以我希望答案对其他人来说是显而易见的。
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [13:988]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 502 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 192.168.1.0/24 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 502 -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT
我对此进行了测试,它似乎按我预期的方式工作。除非通过我的隧道,否则不会有流量。在我启用 netfilter-persistent 以在重新启动时保存新规则后,我被锁定在 pi 之外。在我关闭电源后,我能够重新进入,当我检查时,我的新规则看起来在那里,但 VPN 隧道无法正常工作,即使服务正在运行并启用。现在我能够在没有隧道的情况下发送和接收数据包。
我不知道这是否与我的 openvpn.conf 有关,还是其他原因。但好像新规则和 vpn 不起作用。我尝试禁用 netfilter-persistent,将规则改回来,然后重新启动 openvpn 服务,但没有成功。