使用带有 OpenVPN 社区(免费)版本的物理加密令牌

使用带有 OpenVPN 社区(免费)版本的物理加密令牌

我目前正在设置 OpenVPN,以便公司能够访问多个客户端。我们的要求是使用证书、密码保护客户端密钥,以及对每个客户端使用双因素 (MFA) 身份验证。

我手头有一堆 Fortinet FortiToken 200 令牌,我想用它们,但我找不到任何信息来说明如何将这些令牌与 OpenVPN 之类的东西一起使用。再找了一会儿,我也找不到任何信息来说明如何将物理令牌与 OpenVPN 一起使用。

所以我的问题是,如何在 OpenVPN 中使用物理令牌?我不能使用像 Google Authenticator 这样的东西,因为我们计划让客户也通过他们的智能手机使用 VPN。OpenVPN PKCS#11 操作方法文档写得非常差。

我开始相信,如果 MFA 是一项要求,那么 OpenVPN 目前根本不是一个可行的选择。

感谢您的帮助。

答案1

基本上:

  1. 为您的令牌安装一个 pkcs#11 驱动程序(如果令牌制造商没有提供,请询问他们)。
  2. 告诉 openvpn 使用该驱动程序,并列出令牌上的可用密钥:
    • openvpn --show-pkcs11-ids /path/to/pkcs11/driver.so
  3. 在您的配置文件中,从输出中指定密钥的模块和序列化 ID --show-pkcs11-ids,例如:

    pkcs11-提供者 /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
    pkcs11-id Gnome\x20Keyring/1\x2E0/1\x3AUSER\x3ADEFAULT/Gnome2\x20Key\x20Storage/417AEDAAB81FEF6AEBD1EC43D76A630CAAA4722A

(确保将 pkcs-id 中的所有反斜杠转义,例如Gnome\x20Keyring变成Gnome\\x20Keyring.)

相关内容