Ubuntu 12.04のOpenVPNサーバーでGoogle認証システムを使用する方法


9

Ubuntu 12.04でOpenVPNシステムを使用していますが、セキュリティを強化するためにGoogle認証システムを追加したいと思います。

これは私の現在のopenvpn設定です:

開発タン
proto udp
ポート1096
ca ubuserv04-ca.crt
証明書ubuserv04.crt
キーubuserv04.key
dh dh1024.pem
サーバー10.10.0.0 255.255.255.0
「redirect-gateway def1」をプッシュします
「ルート192.168.0.0 255.255.255.0」をプッシュ
「dhcp-option DNS 8.8.8.8」をプッシュします
「dhcp-option DNS 8.8.4.4」をプッシュ
浮く
log-append /var/log/openvpn-otp-1096-status.log

(これは単なるテストセットアップです。特定の側面を変更する必要があることはわかっていますが、今のところこれは機能します。)

クライアントでは:

開発タン
クライアント
proto udp
リモートmy.server.fqdn 1096
解決再試行無限
ca ubuserv04-ca.crt
cert user1.crt
キーuser1.key
動詞3

上記の設定は正常に機能します。エラーはなく、高速で安定しています。

Google Authenticatorを実行するためにいくつかのハウツーを試しましたが、それらの記事の副次的な問題のトラブルシューティングは毎回行われます。サーバーのローカルユーザー/パスワードデータベースに対して認証したくありません。すでに持っているシステムとGoogle Authenticatorだけを認証します。

Google Authenticatorを実行しています。私はapt-get install libpam-google-authenticatorを使用してインストールし、以前にsshセッションの認証に使用しました。それはうまくいきましたが、それは単なるテストサーバーであり、その特定のテストは終了したので、今は無効にしました。

具体的にご記入ください。サーバーのovpn設定にプラグインを追加する必要があることと、/ etc / pam.d / openvpnに何かを追加する必要があることはわかっていますが、正確にはどうなりますか?

どんな助けでも大歓迎です!

/追加情報

私はこの記事をフォローしました:http : //www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ubuntu ソースからコンパイルする代わりに、aptを使用してGoogle認証システムをインストールしました-get libpam-google-authenticatorをインストールします。私はこれらの記事も読みましたが、この場合は使用していません。http//www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/およびhttp ://zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/。そして、提案されたように、私はPAMについて読みました;)

さて、ここにいくつかの興味深い開発者がいます。

/etc/pam.d/openvpnにはこれがあります:

アカウント[success = 2 new_authtok_reqd = done default = ignore] pam_unix.so 
アカウント[success = 1 new_authtok_reqd = done default = ignore] pam_winbind.so 
アカウント必須pam_deny.so
アカウントに必要なpam_permit.so
auth必須pam_google_authenticator.so

Howtoのとおり、/ etc / pam.d / common-accountからオリジナルをコピーして、最後の行を追加しました。最後の行をコメントアウトすると、OpenVPN接続が成功します。ただし、最後の行がコメント化されていない場合、/ var / log / auth.logはこれをログに記録します。

PAMがdlopen(pam_google_authenticator.so)を実行できません:/lib/security/pam_google_authenticator.so:未定義のシンボル:pam_get_item
障害のあるモジュールを追加するPAM:pam_google_authenticator.so

/var/log/openvpn-otp-1096.logはこれを記録します:

PLUGIN_CALL:プラグイン関数PLUGIN_AUTH_USER_PASS_VERIFYがステータス1で失敗しました:/usr/lib/openvpn/openvpn-auth-pam.so
TLS認証エラー:ピアの認証ユーザー名/パスワードの検証に失敗しました
e-SSL / TLSコンテキストを使用
AUTH-PAM:背景:ユーザー「martin」が認証に失敗しました:モジュールが不明です

問題は、PAMとGoogle認証システムの間にあるようです。

Googleは他のプラグインの問題を一覧表示していますが、具体的にはGoogle認証システムに関する情報を見つけることができません。


「Google Authenticatorを実行するためにいくつかのハウツーを試しました」それらのいくつかにリンクできますか?あなたが正確に試みたのはどちらかと言えばあいまいであり、他のユーザーがあなたがすでに試みたアプローチを思いついたら悲しいでしょう。ちなみに、libpam-google-authenticatorPAMでGoogle認証システムを使って認証するためのものです。OpenVPNでは証明書を使用しているため、これは役に立ちません。PAMとは何かをお読みになることをお勧めします-あなたの場合、それはOpenVPNとは何の関係もないことを理解するでしょう。
gertvdijk 2013年

@「OpenVPNでは証明書を使用しているため、これは役に立ちません。」それで大丈夫です。OpenVPNでの認証の2番目の要素として、PAMを介してGoogle認証システムからの証明書とワンタイムパスワードを使用できます。
くそーターミナル

元の質問に情報を追加します。私がこれを正しく行っているかどうか
Forkbeard

@gertvdijk:冗長であるという点は理解できますが、証明書とワンタイムパスワードの両方を使用したいと思います。どちらかの方法を個別に使用する方が安全だと思います。
Forkbeard 2013年

うーん、それはGoogle Authenticatorのバグのようです。LDFLAGSでそれを構築する= -助けるが、私はそれを行うかどうかはわかりませんする必要があり、向けHowtoForge(元の質問内のリンク)上の例では動作しません「LPAMは」、URLは404を返します
Forkbeard

回答:


2

OK、Googleは私の友達です。

これは私がしました:

#apt-get purge libpam-google-authenticator
#ダウンロードhttps://code.google.com/p/google-authenticator/downloads/list
#apt-get install libpam-dev

これをライセンスの直後のMakefileに追加します。

LDFLAGS = "-lpam"

その後

#作る
#インストールする
#service openvpn restart

また、/ home / username / .google_authenticatorには、それを使用するユーザーの読み取り権限以外の権限がないことを確認してください。

次に、OpenVPNユーザー名としてサーバー(私のシェルアカウント)上のローカルユーザー名である私のユーザー名と、パスワードとしてGoogle認証システムの6桁のコードを入力する必要があります。

今では動作します。

お時間をありがとうございました:)

(この投稿を解決済みとしてマークするにはどうすればよいですか?トピックのタイトルを編集するだけですか?)


2

OpenVPNのOTP認証のみが必要な場合は、ネイティブOTP OpenVPNプラグインを利用できます。Google Authenticator秘密鍵と互換性があります。すべてのシークレットは1つのテキストファイルに保存され、PAMを構成したりユーザーディレクトリを作成したりする必要はありません。

それをチェックしてくださいhttps//github.com/evgeny-gridasov/openvpn-otp


返信ありがとう、egridasov。現在は有効な設定になっているので、試すつもりはありませんが、別のシステムで試してみるかもしれません。私が特に役立つreneg-sec 0ビット、3600秒後に接続がドロップしないようにする方法に頭を悩ませていました
Forkbeard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.