![ufw 不阻止 openvpn 连接](https://linux22.com/image/1025197/ufw%20%E4%B8%8D%E9%98%BB%E6%AD%A2%20openvpn%20%E8%BF%9E%E6%8E%A5.png)
我有一个运行 Ubuntu 20.04 的私人服务器。我已经安装了 ufw,我想我已经掌握了基础知识。
上周我安装了一个 wireguard 服务器。我能够阻止 ufw 连接到 wireguard 端口。现在我使用此安装程序安装了 OpenVPNhttps://github.com/angristan/openvpn-install。
该脚本非常简单,我能够创建客户端并从手机连接到 VPN。但奇怪的是,我无法拒绝或拒绝 OpenVPN 端口。
以前在其他服务(例如 mongo、MySQL...)上,我需要添加特定规则才能访问端口。但是这个我能够直接连接,并且 ufw 上没有新规则。此外,即使我添加了新规则以拒绝/拒绝默认端口和我的自定义端口,我仍然可以访问它。
我感觉我缺少了一些可能会导致系统漏洞的东西。
答案1
我也对此很好奇(并且偶然发现了这个问题),所以我看了一下脚本。
该脚本使用 iptables 设置防火墙规则来处理进入 OpenVPN 的数据包。这包括打开您选择的端口:
iptables -I INPUT 1 -i $NIC -p $PROTOCOL --dport $PORT -j ACCEPT"
这些 iptables 规则存储在名为“add-openvpn-rules.sh”的脚本中,该脚本在每次服务启动时运行。
ExecStart=/etc/iptables/add-openvpn-rules.sh
逆规则存储在名为 rm-openvpn-rules.sh 的文件中,每次停止服务以删除规则时都会运行该文件。
您可以通过运行来验证规则是否反映了您的选择cat /etc/iptables/add-openvpn-rules.sh
,并且您可以通过扫描输出iptables-save
(或搜索您选择的端口)在您的 iptables 规则集中看到它们。
由于 UFW 也会创建 iptables 规则,因此我猜想,根据规则创建的顺序,您会看到不同的行为。不幸的是,我不知道如何处理冲突的 iptables 规则。
至少我们可以看到为什么允许数据包通过(脚本在 iptables 中明确创建了防火墙规则)。至于这些规则如何与我们在 UFW 中创建的规则交互,我将留给 iptables 专家来决定。