初めに
現在 AWS クライアント VPN には 3 つの認証方法があります。
- クライアント証明書による相互認証
- Active Directory によるユーザー認証
- SAML によるユーザーフェデレーション認証
今回、相互認証のみで2要素認証ができないか調べてみました。 その結果、OpenVPN によるクライアント秘密鍵のパスワードによる認証を追加可能であることがわかりました。記事の内容に間違い等ございましたらご指摘頂けると幸いです。
パスワード入力画面
証明書・秘密鍵を作成する
こちらを参考に進めます。
パスワードを付加するにあたって、手順と異なるのは以下の部分です。
5.クライアント証明書とキーを生成します。
クライアント証明書とクライアントプライベートキーは、クライアントを設定するときに必要になるため、必ず保存してください。
クライアント証明書と秘密鍵を作成するとき、以下のようにドキュメントにある nopass
を消してコマンドを実行します。
./easyrsa build-client-full client
以下のようにパスワードを設定できます。Enter PEM pass phrase の部分です。
$ ./easyrsa build-client-full client
Using SSL: openssl OpenSSL 1.0.2k-fips 26 Jan 2017
Generating a 2048 bit RSA private key
....+++
..........+++
writing new private key to '/home/ec2-user/easy-rsa/easyrsa3/pki/easy-rsa-3613.TxeBqP/tmp.LVMVQ9'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
後は手順通りです。
参考記事