Ubuntu 12.04で動作するOpenVPNシステムがあり、セキュリティを強化するためにGoogle Authenticatorを追加したいと思います。
これは私の現在のopenvpn設定です:
dev tun proto udp port 1096 ca ubuserv04-ca.crt cert ubuserv04.crt key ubuserv04.key dh dh1024.pem server 10.10.0.0 255.255.255.0 "redirect-gateway def1" "route 192.168.0.0 255.255.255.0" Push "dhcp-option DNS 8.8.8.8" Push "dhcp-option DNS 8.8.4.4" float log-append/var/log/openvpn-otp -1096-status.log
(これは単なるテストのセットアップであり、特定の側面を変更する必要があることはわかっていますが、今のところ機能します。)
クライアントには次のものがあります。
dev tun client proto udp remote my.server.fqdn 1096 resolv-retry infinite ca ubuserv04-ca .crt cert user1.crt key user1.key 動詞3
上記の設定は正常に機能します。エラーがなく、高速で安定しています。
Google Authenticatorを実行するための方法をいくつか試しましたが、毎回これらの記事で副次的な問題のトラブルシューティングを行っています。サーバーのローカルユーザー/パスワードデータベースに対して認証するのではなく、既に配置されているシステムとGoogle認証システムだけを認証します。
Google認証システムを実行しています。 apt-get install libpam-google-authenticatorを使用してインストールし、sshセッションの認証に使用したことがあります。これは正常に機能しましたが、テストサーバーに過ぎず、特定のテストが終了したため、無効にしました。
具体的にご記入ください。サーバーのovpn構成にプラグインを追加する必要があること、およびsomethingを/etc/pam.d/openvpnに追加する必要があることを知っていますが、正確には何ですか?
どんな助けも大歓迎です!
/追加情報
この記事をフォローしました: http://www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ubunt ソースIからコンパイルする代わりに'apt-get install libpam-google-authenticatorを使用して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には次のものがあります。
account [success = 2 new_authtok_reqd = done default = ignore] pam_unix.so account [success = 1 new_authtok_reqd = done default = ignore] pam_winbind.so account requisite pam_deny.so アカウントが必要pam_permit.so authが必要pam_google_authenticator.so
方法に従って、オリジナルを/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-using SSL/TLSコンテキスト AUTH-PAM:背景:ユーザー 'martin'は認証に失敗しました:モジュールは不明です
問題は、PAMとGoogle認証システムの間にあるようです。
Googleは他のプラグインの問題をリストしていますが、Google Authenticatorに関する情報は特に見つけることができません。
OK、Googleは私の友人です。
これは私がしました:
#apt-get purge libpam-google-authenticator #ダウンロードhttps://code.google.com/p/google-authenticator/downloads/list # apt-get libpam-dev をインストールします
ライセンスの直後に、これをMakefileに追加します。
LDFLAGS = "-lpam"
それから
#make #make install #service openvpn restart
また、/ home/username/.google_authenticatorに、使用するユーザーの読み取り権限以外の権限がまったくないことを確認してください。
次に、サーバー上のローカルユーザー名(シェルアカウント)であるユーザー名をOpenVPNユーザー名として入力し、パスワードとしてGoogle Authenticator 6桁のコードを入力する必要があります。
今では動作します。
お時間をありがとうございました:)
(この投稿を解決済みとしてマークするにはどうすればよいですか?トピックのタイトルを編集するだけですか?)
OpenVPNのOTP認証が必要な場合は、ネイティブOTP OpenVPNプラグインが利用可能です。 Google Authenticatorシークレットキーと互換性があります。すべてのシークレットは単一のテキストファイルに保存され、PAMを構成したり、ユーザーディレクトリを作成したりする必要はありません。
チェックしてください: https://github.com/evgeny-gridasov/openvpn-otp