![UFW 和 VPN:如何允许重新连接](https://linux22.com/image/981106/UFW%20%E5%92%8C%20VPN%EF%BC%9A%E5%A6%82%E4%BD%95%E5%85%81%E8%AE%B8%E9%87%8D%E6%96%B0%E8%BF%9E%E6%8E%A5.png)
这是我的防火墙规则:
deny outgoing
deny incoming
allow out from any to any on tun0 (alow just the traffic from the VPN)
但是,当我想从 gnome-network 管理器启动 vpn 连接时,我被迫禁用 ufw。然而,我尝试了类似以下操作:
allow out from any to any on wlan0 port 1194
但它不起作用。
有什么建议 ?
解决方案 :
以下几行可让您阻止所有传出的非 VPN 流量。换句话说,只允许 VPN 流量。此外,如果您的 VPN 连接失败,您将能够重新连接而无需禁用防火墙。
1-在终端中运行以下命令:
sudo tail -f /var/log/ufw.log
2 - 尝试连接到您的 VPN
3 - 查看所有带有 IP 地址的“[UFW BLOCK]”行 在我的例子中,我有两个带有 DST= 的 IP 地址。。.240 和 DST="。。.241.
然后我得到的 VPN 提供的 IP 也被阻止了。
3-在防火墙中允许这些IP:
To Action From
-- ------ ----
***.**.**.240 ALLOW OUT Anywhere
***.**.**.241 ALLOW OUT Anywhere
**.***.0.0/18 (VPN) ALLOW OUT Anywhere
Anywhere ALLOW OUT Anywhere on tun0
22/tcp ALLOW OUT Anywhere
Anywhere (v6) ALLOW OUT Anywhere (v6) on tun0
22/tcp (v6) ALLOW OUT Anywhere (v6)
答案1
根据port 1194
我猜测你使用 OpenVPN。OpenVpn 文档中的 FAQ 建议遵循
我需要在防火墙中为 Access Server 打开哪些端口?
简短回答:TCP 443、TCP 943、UDP 1194 详细回答:默认情况下,OpenVPN Access Server 运行 2 个 OpenVPN 守护程序。其中一个在 UDP 端口 1194 上,另一个在 TCP 443 上。我们建议您使用 UDP 端口,因为这对于 OpenVPN 隧道来说功能更好。但是,许多公共场所会阻止各种端口,除了非常常见的端口,如 http、https、ftp、pop3 等。因此,我们也有 TCP 443 作为选项。TCP 端口 443 是 https:// (SSL) 流量的默认端口,因此通常允许在用户位置通过。TCP 端口 943 是 Web 服务器接口默认监听的端口。您可以使用以下 URL 直接访问它: https://此处您的服务器主机名:943/或者通过标准 https:// 端口 TCP 443 来访问,因为 OpenVPN 守护进程默认会自动在内部将浏览器流量路由到 TCP 943。(https://此处为你的服务器主机名/)。
但我的建议,从战场上来看,是允许所有来自 vpn 服务器 ip 地址的流量
sudo ufw allow from ip_address_of_vpn_server
不要指定 proto,因为 OpenVPN 同时使用,tcp
并且udp
编辑1
您还可以创建脚本来在tun0
发生故障时自动重新连接down
。
向 caled 添加一个简单的脚本,tun-up
其中/etc/network/if-down.d/
的内容是
#!/bin/sh
# filename: tun-up
if [ "$IFACE" = tun0 ]; then
sudo ifup tun0
fi
使其可执行
sudo chmod +x /etc/network/if-up.d/tun-up
编辑2
好的,我们允许了错误的地址。首先我们需要捕获正确的 IP 地址以允许流量。
启动terminal
并运行命令
tail -f /var/log/system | grep UFW
然后尝试连接到 vpn 服务器。在终端中,你会看到 block off
May 25 08:18:22 xxx kernel: [259789.025019] [UFW BLOCK] IN=eth0 OUT= MAC=01:00:5e:00:00:01:00:23:cd:f4:8c:29:08:00 SRC=XXX.XXX.XXX.XXX
在 block find 中SRC=XXX.XXX.XXX.XXX
,这是向您发送流量的地址,在大多数情况下,这将是 vpn 服务器的公共 ip 地址。
此IP地址必须先添加ufw
规则,因为在启用之前您必须与此地址进行通话和交换流量tun0
。
规则是
sudo ufw insert 1 allow from XXX.XXX.XXX.XXX