我想连接到 VPN。我想启用 ufw 防火墙或 iptables,以便没有连接出入 VPN 隧道(VPN 服务器除外)。你能告诉我如何使用 ufw 或 iptables 获得这个吗?显然只允许连接到VPN
答案1
在干净的 iptables 配置上:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -N VPN
iptables -A INPUT -i $vpn -j VPN
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o $vpn -j VPN
iptables -A OUTPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A VPN -j ACCEPT
将 $vpn 替换为您的 VPN 客户端创建的接口。传入数据包的策略:
-i lo -j ACCEPT
接受来自环回的数据包-m conntrack --ctstate RELATED,ESTABLISHED
接受已建立的连接。-i $vpn -j VPN
从 VPN 接口传入的数据包将由新创建的 (-N VPN
) VPN 链处理,您可以在其中定义 VPN 的所有策略。您完全可以接受该行和 OUTPUT 链相应行中的数据包,但我认为这种方式在逻辑上更清晰。-j REJECT --reject-with icmp-host-prohibited
拒绝所有其他的。-A FORWARD -j REJECT --reject-with icmp-host-prohibited
同时拒绝所有转发请求。