这是我的防火墙规则:
deny outgoing
deny incoming
allow out from any to any on tun0 (alow just the traffic from the VPN)
Run Code Online (Sandbox Code Playgroud)
但是,当我想从 gnome 网络管理器启动 VPN 连接时,我被迫禁用 ufw。然而,我尝试过类似的事情:
allow out from any to any on wlan0 port 1194
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
有什么建议 ?
解决方案 :
以下几行使您能够阻止所有传出的非 VPN 流量。换句话说,只允许 VPN 流量。此外,如果您的 VPN 连接失败,您无需禁用防火墙即可重新连接。
1 - 在终端中运行以下命令:
sudo tail -f /var/log/ufw.log
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
根据port 1194
我猜你使用 OpenVPN。FAQ 中推荐的 OpenVpn 文档如下
我需要在防火墙中为 Access Server 打开哪些端口?
简短回答:TCP 443、TCP 943、UDP 1194 详细回答:默认情况下,OpenVPN 访问服务器运行 2 个 OpenVPN 守护进程。其中一个位于 UDP 端口 1194 上,另一个位于 TCP 443 上。我们建议您使用 UDP 端口,因为这对于 OpenVPN 隧道来说效果更好。然而,许多公共位置会阻止所有类型的端口,除了非常常见的端口,例如 http、https、ftp、pop3 等。因此我们还有 TCP 443 作为一个选项。TCP 端口 443 是 https:// (SSL) 流量的默认端口,因此通常允许在用户位置通过。TCP 端口 943 是 Web 服务器接口默认侦听的端口。您可以直接使用 https://yourserverhostnamehere:943/这样的 URL 来实现此目的,也可以通过标准 https:// 端口 TCP 443 来实现此目的,因为默认情况下 OpenVPN 守护程序会自动在内部将浏览器流量路由到 TCP 943。( https://yourserverhostnamehere/ )。
但我在战场上的建议是允许来自 VPN 服务器 IP 地址的所有流量
sudo ufw allow from ip_address_of_vpn_server
Run Code Online (Sandbox Code Playgroud)
不要指定 proto,因为 OpenVPN 两者都使用,tcp
并且udp
编辑1
您还可以创建脚本以在 时自动重新tun0
连接down
。
添加一个简单的脚本来调用tun-up
其中/etc/network/if-down.d/
的内容
#!/bin/sh
# filename: tun-up
if [ "$IFACE" = tun0 ]; then
sudo ifup tun0
fi
Run Code Online (Sandbox Code Playgroud)
使其可执行
sudo chmod +x /etc/network/if-up.d/tun-up
Run Code Online (Sandbox Code Playgroud)
编辑2
好的,我们允许错误的地址。首先,我们需要捕获正确的 IP 地址以允许流量。
启动terminal
并运行命令
tail -f /var/log/system | grep UFW
Run Code Online (Sandbox Code Playgroud)
然后尝试连接到VPN服务器。在终端你会看到封锁
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
Run Code Online (Sandbox Code Playgroud)
在 block find 中SRC=XXX.XXX.XXX.XXX
,这是向您发送流量的地址,在大多数情况下,这将是 VPN 服务器的公共 IP 地址。
ufw
该IP地址必须先添加到规则中,因为在tun0
上线之前您会与该地址进行通话和交换流量。
规则是
sudo ufw insert 1 allow from XXX.XXX.XXX.XXX
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32256 次 |
最近记录: |