我使用 OpenVPN 访问 VPN,并尝试创建一台不会通过非 VPN 接口泄漏流量的安全机器。使用防火墙 UFW,我尝试实现以下目标:
- 允许从 LAN 访问机器的 Web 界面
- 否则仅允许在 tun0 上进行流量传输(OpenVPN-Tunnel 接口建立时)
- 拒绝(或转发?)其他接口上的任何流量
目前我正在使用以下规则(sudo ufw status):
To Action From
-- ------ ----
192.168.42.11 9999/tcp ALLOW Anywhere # allow web-interface
Anywhere on tun0 ALLOW Anywhere # out only thru tun0
Anywhere ALLOW OUT Anywhere on tun0 # in only thru tun0
我的问题是,机器最初无法建立 OpenVPN 连接,因为只允许使用 tun0,而它尚未建立(先有鸡还是先有蛋的问题)
我如何允许创建 OpenVPN 连接并从此时起强制每个数据包都通过 VPN 隧道?
答案1
允许服务应用程序访问。我目前没有可用的 OpenVPN 盒,但我认为您应该能够使用以下命令允许访问,例如:
ufw 允许 OpenVPN
你可以通过运行以下命令来查看是否可以使用开放式 VPN:
ufw 应用程序列表
这将显示 ufw 知道的那些服务应用程序。
如果没有 OpenVPN 配置文件,您可以尝试使用 ufw 仅允许该接口上的出站连接到端口 1194(或 OpenVPN 服务器接受连接的任何端口)。类似于:
sudo ufw 拒绝任何 sudo ufw 允许 1194/udp
(假设有现有的 OpenVPN 设置。)
这不会将其限制为仅有 OpenVPN......但唯一的泄漏可能性是其他东西使用该端口和 UDP......而且这种可能性非常低。
为了使端口过滤更加安全,您必须使用比 ufw 更强大的工具。我相信,AppArmor 或 SELinux 将是您的下一步,而无需升级到真正的第 7 层防火墙设备。