現在、複数のクライアントに会社のアクセスを提供するために OpenVPN を設定しています。証明書を使用し、クライアント キーをパスワードで保護し、クライアントごとに二要素 (MFA) 認証を使用することが要件となっています。
使いたい Fortinet FortiToken 200 トークンがたくさんあるのですが、OpenVPN などでこれらのトークンを使用する方法を示す情報が見つかりません。さらに調べてみたところ、OpenVPN で物理トークンを使用する方法を示す情報も見つかりませんでした。
そこで質問なのですが、OpenVPN で物理トークンを使用するにはどうしたらよいのでしょうか。クライアントの VPN をスマートフォン経由でも利用する予定なので、Google Authenticator のようなものは使用できません。OpenVPN PKCS#11 のハウツー ドキュメントは非常にわかりにくいです。
MFA が必須である場合、現時点では OpenVPN は実行可能なオプションではないと私は考え始めています。
ご協力いただきありがとうございます。
答え1
基本的に:
- トークン用の pkcs#11 ドライバーをインストールします (トークンの製造元から提供されていない場合は、トークンの製造元に問い合わせてください)。
- openvpn にそのドライバーを使用するように指示し、トークンで使用可能なキーを一覧表示します。
openvpn --show-pkcs11-ids /path/to/pkcs11/driver.so
設定ファイルで、出力からキーのモジュールとシリアル化された 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
。)