所有 SSL 流量均绕过 VPN

所有 SSL 流量均绕过 VPN

我有一台 Raspberry Pi 服务器,通过各种端口运行各种任务和应用程序;其中之一是通过同一台机器上的 Nginx 代理运行的家庭自动化服务,以允许外部进行 https 连接,但只允许 LAN 上的 http 连接。到目前为止,这种方法效果很好,但最近我决定使用付费 VPN 服务(使用 OpenVPN)来提高隐私。在我尝试使用 SSL(Amazon Alexa 等服务需要 SSL)访问我的家庭自动化服务器之前,这种方法一直很好用。因此,我一直试图绕过 VPN 端口 443 上的 SSL 流量,但在启用 VPN 连接时使用以下路由和 ufw 规则强制所有其他流量通过隧道:

ip route add default via $route_vpn_gateway dev tun1 table 10
ip rule add from $ifconfig_local/32 table 10
ip rule add to $route_vpn_gateway/32 table 10
ip route flush cache


ufw insert 1 reject out on wlan0 from any
ufw insert 1 allow out on wlan0 from any port 443
ufw insert 1 allow in on tun1 to any
ufw insert 1 reject out on tun1 from any port 443
ufw insert 1 deny in on tun1 from any port 443
ufw insert 1 allow in on wlan0 to any port 443

我尝试在规则列表的开头插入更具体的规则。但这似乎不起作用,SSL 连接仍然无法通过。我是不是漏掉了什么?VPN 配置设置为阻止所有流量自动通过隧道路由。

答案1

要根据流量到达的接口和端口来路由流量,您可以使用iptables标记功能。

根据您的情况,标记来自端口 443 和/或 WAN/本地接口的传入流量,然后使用ip rule强制其使用专用路由表。在该表中设置默认路由以使用您的非 VPN 网关。

如何标记和引导标记交通解释如下:

https://www.linuxquestions.org/questions/linux-networking-3/add-route-based-on-port-not-ip-486823/

如果您禁用防火墙,您应该会看到流量现在被正确路由。

我对防火墙规则不是 100% 确定,但请检查日志以查看它是否按预期工作/var/log/ufw.log

就像获取此类规则的完整列表的ufw前端一样。要检查哪些实际规则影响了您的流量,请使用中的功能。iptablesiptables -Straceiptables

答案2

您要尝试执行的操作称为拆分隧道。您必须在路由器上设置路由或规则,以允许从源到目标的所有流量使用 ISP 而不是 VPN。

相关内容