OpenVPN 与“基于 OpenSSH 的 VPN”的优缺点

信息安全 SSH 虚拟专用网 打开VPN
2021-08-12 06:28:40

使用 OpenVPN 和使用VPN over OpenSSH之间的主要区别是什么

向 SSH 连接添加虚拟隧道接口是否提供与 OpenVPN 相同的好处?PuTTY 可以在 Windows 上使用文章中描述的“layer-3 IP-in-SSH tunnelling”协议吗?文章指出没有使用此协议的 Windows 客户端。

我正在研究远程连接到家庭服务器并尝试了解必要的安全措施。在局域网内,我习惯于从笔记本电脑通过 SSH 登录服务器。但是,在 LAN 之外,我想连接到我的服务器并加密我的流量。

3个回答

我没有看到任何安全问题。SSH 应该是安全的,所有数据都通过 SSH 隧道传递。所以,是的,我相信它足够安全。我看到的唯一问题是效率。SSH 是 TCP 协议。TCP 流量通过另一个 TCP 协议传递。数据包被 TCP 的 2 层双重“确认”。更好的协议建立在 UDP 甚至 IP 之上。

我从来没有像这样使用过 SSH 隧道。我只有使用 SOCK V5 协议 (ssh -D) 的经验,我还没有意识到任何明显的网络速度下降问题。

如果在您的家庭 LAN 上您通过 SSH 连接到服务器,那么为什么需要 VPN?您可以直接使用 SSH,无需 VPN。SSH 是加密的。也许您出于其他原因需要 VPN,但如果不需要,SSH 就足够了。

这实际上取决于您如何配置您的 OpenVPN/OpenSSH 访问(启用了哪些身份验证方法,您使用的是哪种类型的密钥,您是否正确配置了服务器)。

如果你在你的系统上启用了 SSH,使用基于 OpenSSH 的 VPN 可以避免增加攻击面(但性能不会像基于数据报的 VPN 那样好,例如带有 UDP 或 Wireguard 的 OpenVPN):你将拥有更多如果/当发现漏洞时监控、维护和升级服务器。

另一方面,如果您启用 OpenSSH 服务器只是为了提供 VPN 但未能禁用命令执行,则设法登录的攻击者将能够在您的系统上执行命令。

FWIW,我倾向于认为配置和强化 OpenSSH 服务器比配置 OpenVPN 服务器容易得多。OpenVPN 配置中有很多容易犯的陷阱(例如,很容易将客户端配置为接受其他客户端作为有效的服务器证书)。

当使用基于证书的身份验证和 TLS 1.2 及更低版本的 OpenVPN 时,通常包含客户端身份的证书客户端以明文形式发送。这可能是一个隐私问题。相反,在 OpenSSH 中,SSH 用户身份验证协议运行在SSH 传输协议之上:AFAIU,用户名是加密发送的。请参阅流量分析部分