随着世界各地互联网审查制度的加强,各国政府越来越担心防止使用 VPN 来规避其限制。拥有防火墙的中国在这方面尤其活跃,并且有许多来自使用防火墙的人的报告中国的VPN他们的连接被封锁。
问题是,虽然不可能“看到”加密 VPN 隧道中的数据,但日益复杂的防火墙能够使用深度包检测(DPI) 技术来确定正在使用加密(例如检测 OpenVPN 使用的 SSL 加密)。
此问题有多种解决方案,但大多数都需要一定程度的技术专业知识和服务器端配置,这就是为什么本文只是对可用选项的介绍。如果隐藏您的 VPN 信号对您来说很重要,并且端口 443 转发(见下文)还不够,那么您应该联系您的VPN提供商讨论他们是否愿意实施下面概述的解决方案之一(或者寻找已经提供此类支持的提供商,例如 AirVPN)。
通过 TCP 端口 443 进行端口转发 OpenVPN
到目前为止,最简单的方法是转发您的(客户端),不需要服务器端实现,并且在大多数情况下都有效。通过 TCP 的 OpenVPN 流量端口 443。
OpenVPN 默认使用 UDP 端口 1194,因此防火墙通常会监视端口 1194(以及其他常用端口),拒绝尝试使用该端口(或它们)的加密流量。 TCP 端口 443 是 HTTPS(安全超文本传输协议)使用的默认端口,该协议用于保护 https:// 网站,并由银行、Gmail、Twitter 和许多其他重要 Web 服务在整个互联网上使用。
OpenVPN(与 HTTPS 一样使用 SSL 加密)的使用不仅很难通过端口 443 进行检测,而且阻止该端口会严重削弱对互联网的访问,因此对于潜在的网络审查者来说通常不是一个可行的选择。
端口转发是自定义 OpenVPN 客户端中最常支持的功能之一,这使得更改 TCP 端口 443 变得异常简单。如果您的 VPN 提供商不提供此类客户端,那么您应该联系他们。
不幸的是,OpenVPN 使用的 SSL 加密与“标准”SSL 并不完全相同,而先进的深度数据包检查(在中国等地越来越多地使用的类型)可以判断加密流量是否符合“真实”SSL/HTP 握手。在这种情况下,需要找到逃避检测的替代方法。
代理服务器
Obfsproxy 是一种工具,旨在将数据包装到混淆层中,从而很难检测到正在使用 OpenVPN(或其他 VPN 协议)。最近已经是被 Tor 网络采用,主要是为了回应中国阻止访问公共 Tor 节点,但它独立于 Tor,并且可以针对 OpenVPN 进行配置。
要工作,obfsproxy 需要安装在客户端计算机(例如使用端口 1194)和 VPN 服务器上。但是,所需要做的就是在服务器上输入以下命令行:
obs代理obfs2 –dest=127.0.0.1:1194 服务器 xxxx:5573
这告诉 obfsproxy 侦听端口 1194,本地连接到端口 1194 并将解封装的数据转发给它(xxxx 应替换为您的 IP 地址或 0.0.0.0 以侦听所有网络接口)。最好与 VPN 提供商一起设置静态 IP,以便服务器知道要侦听哪个端口。
与下面介绍的隧道选项相比,obfsproxy 并不那么安全,因为它没有对流量进行加密,但它的带宽开销要低得多,因为它没有携带额外的加密层。这对于叙利亚或埃塞俄比亚等地的用户尤其重要,因为带宽通常是关键资源。 Obfsproxy 的设置和配置也更容易一些。
通过 SSL 隧道的 OpenVPN
安全套接字层 (SSL) 隧道本身可以用作 OpenVPN 的有效替代方案,事实上,许多代理服务器都使用安全套接字层 (SSL) 隧道来保护其连接。它还可以用来完全隐藏您正在使用 OpenVPN 的事实。
正如我们上面提到的,OpenVPN 使用 TLS/SSL 加密协议,该协议与“真正的”SSL 略有不同,并且可以通过复杂的 DPI 检测到。为了避免这种情况,可以将 OpenVPN 数据“包装”在额外的加密层中。由于 DPI 无法穿透 SSL 加密的“外”层,因此它们无法检测“内部”的 OpenVPN 加密。
SSL 隧道通常使用多平台 stunnel 软件创建,该软件必须在服务器(在本例中为您的 VPN 提供商的 VPN 服务器)和客户端(您的计算机)上进行配置。因此,如果您想使用 SSL 隧道,则有必要与您的 VPN 提供商讨论具体情况,并在他们同意的情况下接收他们的配置说明。一些提供商将此作为标准服务提供,但 AirVPN 是我们迄今为止审查过的唯一服务(anonypoz 是另一个)。
使用这种技术确实会导致性能下降,因为信号中会添加额外的数据层。
通过 SSH 隧道的 OpenVPN
这与通过 SSL 隧道使用 OpenVPN 的工作方式非常相似,只不过 OpenVPN 加密数据被封装在 Secure Shell (SSH) 加密层中。 SSH 主要用于访问 Unix 系统上的 shell 帐户,因此它的使用主要限于商业领域,远不如 SSL 流行。
与 SSL 隧道一样,您需要与您的 VPN 提供商联系才能使其正常工作,尽管空中VPN支持“开箱即用”。
结论
如果没有非常深入的数据包检查,OpenVPN 加密数据看起来就像常规 SSL 流量一样。如果通过 TCP 端口 443 路由,情况尤其如此,其中 a) 您会期望看到 SSL 流量,b) 阻止它会阻碍互联网。
然而,伊朗和中国等国家决心控制其人民未经审查的互联网访问,并采取了技术上令人印象深刻(尽管在道德上令人反感)的措施来检测 OpenVPN 加密流量。在这些国家/地区,即使被发现使用 OpenVPN 也可能会给您带来法律麻烦,因此在这些情况下,使用上述附加预防措施之一是一个非常好的主意。
