如何为 VPN 服务器设置 ufw 防火墙/iptable 规则以明确允许某些连接?

如何为 VPN 服务器设置 ufw 防火墙/iptable 规则以明确允许某些连接?

我想连接到 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同时拒绝所有转发请求。

相关内容