VPN 服务器 + 客户端,无需客户端特定设置

VPN 服务器 + 客户端,无需客户端特定设置

我有装有 Debian 的 SBC。这些 SBC 将向服务器发送数据(例如使用 REST),但我想使用某些 VPN/隧道来保护连接,并且我还希望能够远程访问 SBC 以进行维护。

现在我想设置一些 VPN 服务器,它不需要客户端特定的设置(在服务器端或客户端)。我将为这些 SBC 准备一个完整的 Debian 映像(只需使用引导加载程序即可加载),因此每个 SBC 上的映像都相同。另外,当生产和连接新的 SBC 时,我不希望任何人必须在服务器端编辑某些设置。
每个 SBC 都有唯一的主机名(来自序列号)。

有没有什么办法可以实现这个?我搜索的是:

OpenVPN
应该可以实现。唯一的缺点是,OVPN 使用客户端证书中的 CN 来识别它们。因此所有客户端在 VPN 服务器上看起来都一样。

SoftEth VPN
每个客户端都需要唯一的用户名。

Wireguard
必须在服务器端指定客户端(对等体)。

SSH
我必须为每个客户端指定端口。

答案1

客户为确保 VPN 安全,需要设置特定的标识。为此,每个客户端必须具有它有自己独特的秘密。在 WireGuard 中,这是它的私钥;在 OpenVPN 中,这是客户端证书的私钥等等。

如果你无法做到这一点,所有客户端都必须使用相同的密钥,任何客户端的泄露都意味着整个 VPN 的泄露;要修复它,需要更新每一个部署的客户端和服务器。

所以,你问的是不合理的。

不会拒绝任何针对每个客户端的设置,自动化这些设置。您可以编写脚本来生成密钥和 CSR,然后将其发送给 CA 进行签名,获取证书并安装;此脚本可以在您的 SBC 第一次启动时运行,然后在成功完成后自行禁用。或者,对于 WireGuard,可以使用类似的脚本。

记住,Ansible 是你的朋友。

相关内容