
OpenVPN Access ServerでGoogle Authenticatorを使って多要素認証(MFA認証)でSSL VPN接続してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちわ。いつか複葉機でアウドムラに着艦してみたいガノタ市田です。
今回は、以前ご紹介したOpenVPN Access Server のMFA認証によるVPN接続をご紹介します。
概要
OpenVPN Access Server(以後、OpenVPN-ASと表記)は、デフォルトでGoogle Authenticator による2段階認証を利用することができます。
今回は、その2段階認証の導入と実際の接続確認までを行ってみたいと思います。
手順
- OpenVPN-ASの管理画面で設定を有効化
- スマホなどに対応アプリケーションのインストール
- Google Authenticator設定
- Mac(OSX)で接続確認
- Windowsで接続確認
- iPhoneで接続確認
それでは早速見ていきたいと思います。
OpenVPN-ASの管理画面で設定を有効化
OpenVPN-ASのAdmin用管理画面にログインして「Client Settings」 をクリックして設定画面を開きます。
「Configure Google Authenticator support」の「Require that users ・・・」 となっている箇所のチェックを入れます。

チェックを入れたら画面下部の「Save Settings」 をクリックします。

次の画面で「Update Running Server」 をクリックして設定を反映します。

OpenVPN-AS側の設定は以上になります。簡単ですね。
スマホに2段階認証アプリのインストール
今回は、iPhoneに対応アプリケーションをインストールしました。
Google Authenticator - App Store

普通のiphoneアプリのインストールと変わりませんのでインストール方法については、割愛します。
Google Authenticator設定
次は2段階認証の認証情報を設定していきます。
まずは、OpenVPN-ASのクライアント用の管理画面にログインします。
先程と同様、ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443です。
ユーザ名とパスワードを入力した後、プルダウンから「Login」 を選択してログインします。

するとQRコードが表示されているので、iPhoneでGoogle Authenticatorのアプリを起動してQRコードを読み取ります。

アプリを起動したら「+」 ボタンをクリックします。

次の画面で「バーコードをスキャン」 をクリックします。

QRコードをアプリで読み取れたら下記のようにOpenVPN-ASサーバの情報が登録されます。

これで登録が完了しました。
登録が完了したら先程のQRコードの一番下にある「I scanned the QR code」 をクリックしておきます。ブラウザ側の操作は以上になります。

MacでVPN接続してみる
OpenVPNクライアント(OpenVPN Connect)のインストール
次に、Mac OS XにVPNクライアントツールのインストールをします。
Google Authenticatorの2段階認証を簡単に利用するため、今回は「OpenVPN Connect」 というクライアントアプリをインストールして接続してみます。
まずは、クライアント用の管理画面にログインします。
以前のエントリの内容でOpenVPN-ASを作成している場合は、ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443です。
ユーザ名とパスワードを入力した後、プルダウンから「Login」 を選択してログインします。

ログインしたら、Mac OS X用のクライアントアプリをダウンロードします。

dmgファイルをダウンロードしてインストールしていきます。

ダブルクリックすると下記のようなファイルが現れます。

このファイルを下記のように開いてインストールを行います。

次のような警告が出ますが、そのまま「開く」 をクリックします。

インストーラが起動するので「続ける」 をクリックします。

「Continue」 をクリックします。

「Agree」 をクリックします。

「インストール」 をクリックします。

待ちます。

インストールが完了したらウィンドウを閉じます。

これで準備が整いました。
MacでVPN接続してみる
それでは、アプリを起動してバーからConnect を選択して接続を行います。

接続するサーバとしてポート番号まで含めて[OpenVPN-ASのElastic IP]:10443の形で指定します。
2度ほど確認のダイアログが出ますが、全てYesをクリックして進めてください。

接続するユーザ名とパスワードを入力します。

次は2段階認証の肝です。
スマホのGoogle Authenticatorで表示されている数字を入力します。

接続できたらバーのアイコンが緑色になります。

この状態でブラウザでプラベート環境のサーバのWebページにアクセスすると、プライベートIPでページを表示できました。

WindowsでVPN接続してみる
WindowsがクライアントでもMacの場合と同様になります。
試しにWindows8.1で試してみます。
OpenVPNクライアント(OpenVPN Connect)のインストール
Macの時と同様にクライアント用の管理画面にアクセスします。
ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443ですね。

同じユーザcm-user1を使っていますが、既に2段階認証が有効になっているので認証コードの入力を求められます。

ログインできたらWindows用のインストーラをダウンロードします。

インストーラをダブルクリック

「はい」をクリック

待ちます。

WindowsでVPN接続
インストールできたらデスクトップ上のショートカットから起動します。

起動したらタスクバーからconnect をクリックします。

起動したら次のように[OpenVPN-ASのElastic IP]:ポート番号という形で接続先を指定します。

スマホのGoogle Authenticatorで表示されている数字を入力します。

接続ができたらアイコンが緑色になります。

この状態でプライベートIPでWebサーバにアクセスしてページが見えればOKです。

iPhoneでVPN接続してみる
最後はiPhoneで接続してみたいと思います。ちなみにiOS10.0.1です。
OpenVPNクライアント(OpenVPN Connect)のインストール
ブラウザでOpenVPN-ASのクライアント用画面にログインします。
ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443でした。

次にGoogle Authenticatorの認証コードを入力します。

iOS用のリンクをクリックします。

App Storeに飛ぶので、そこからアプリをインストールします。

iPhoneでVPN接続
インストールが完了したらもう一度、OpenVPN-ASの画面にアクセスします。
そこから接続する端末用の.ovpnファイルをダウンロードします。

OpenVPNで開くをクリックします。

次の画面で緑色の+ボタン をクリックします。

パスワードとGoogle Authenticatorの認証コードを入力して、コネクションをOnにします。

Yesをクリックします。

下記の表示になれば接続完了です。

そのままプライベートIPで下記のようなページが表示されればOKです。

最後に
Android端末だけ手元になかったので未検証ですが、よく使われるOS、デバイスからの接続ができることを確認できました。
2段階認証でも特に問題なく、設定も簡単なので是非ご活用ください。
以上になります。








