OpenVPNコミュニティ(無料)バージョンで物理暗号化トークンを使用する

OpenVPNコミュニティ(無料)バージョンで物理暗号化トークンを使用する

現在、複数のクライアントに会社のアクセスを提供するために OpenVPN を設定しています。証明書を使用し、クライアント キーをパスワードで保護し、クライアントごとに二要素 (MFA) 認証を使用することが要件となっています。

使いたい Fortinet FortiToken 200 トークンがたくさんあるのですが、OpenVPN などでこれらのトークンを使用する方法を示す情報が見つかりません。さらに調べてみたところ、OpenVPN で物理トークンを使用する方法を示す情報も見つかりませんでした。

そこで質問なのですが、OpenVPN で物理トークンを使用するにはどうしたらよいのでしょうか。クライアントの VPN をスマートフォン経由でも利用する予定なので、Google Authenticator のようなものは使用できません。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-providers /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。)

関連情報