是否可以在 Linux 上设置 VPN 服务器,以便使用 Android 和 Windows 客户端通过 PAM 或 passwd 进行身份验证?

是否可以在 Linux 上设置 VPN 服务器,以便使用 Android 和 Windows 客户端通过 PAM 或 passwd 进行身份验证?

我有一台 Linux 服务器,需要从 Windows 10 和 Android 客户端远程连接到其网络。是否可以设置服务器,以便客户端可以使用用户名和密码对 Linux 计算机上的用户帐户进行身份验证?

我想为此使用 IKEv2,但如果有更好的解决方案,那就没有必要了。我已经尝试设置 strongSwan 并成功使用客户端证书。我还设法让 freeRadius 根据 /etc/passwd 进行身份验证,但无法让用户名和密码从 strongSwan 传递到 freeRadius。这是正确的做法吗?

如果/当有建议时,我会更新这个问题。

答案1

问题是,大多数使用用户名/密码的 EAP 方法不会传输明文密码。相反,它们使用某种质询/响应协议,客户端和服务器都会计算一些哈希/加密,这通常要求服务器已经拥有明文密码(除非该方法基于零知识密码证明),而不是存储在 中的哈希版本/etc/passwd

strongSwan 支持的唯一使用纯文本密码的方法是EAP-GTC,但客户端支持有限(我也不知道它是否适用于 FreeRADIUS,但 strongSwan 可以直接与 PAM 交互)。基本上,只有 strongSwan 以这种方式使用它,因此使用 strongSwan 应用程序的 Android 可以正常工作,但 Windows 不支持这种方法。

相关内容