ホームサーバーでの2要素認証-高速、安価、使いやすい

二要素認証-2種類の情報認証[ " ]からの情報を提供します



たとえば、ボタンでトークンを発行するパスワードとコードを連続して入力できます。 多くの人がそのようなデバイスを見たことがあると思いますし、誰かが定期的にそれらを使用しています。







ドアに2番目のロックがかけられたようです。 最初の鍵は、通常のパスワードです。 秒-30秒間有効な1回限りのコード。 前と同じように、両方のキーが正しく、1つではない場合にのみ、ドアから出ることができます。



しばらくの間、Googleはサービスで2要素認証を利用できるようにしました。 これで、トークンがAndroid携帯電話に移動しました! iPhoneとBlackberryもその役割に適合します。 とても快適です。 Gmailでテストした後、私は自分で同じことをしたかったのですが、突然libpam-google-authenticatorを見つけました。



最初に、初期化中に秘密キーが作成されます。秘密キーはサーバーに記録され、電話のアプリケーションに入力する必要があります。 これは1回限りの手順であり、その後は独自に動作します。 毎回、特殊なアルゴリズムを使用して、秘密鍵と現在の時刻から30秒間有効なコードが計算されます



Googleのサーバーは認証に関与していないことを強調します。アルゴリズムとキー形式のみがGoogleのサービスで使用されるものと互換性があるため、既製のモバイルアプリケーションを使用できます。 妄想的な人々のために-ソースは公開されており、それらへのリンクは投稿の最後にあります:)

設定して準備します



Debianのテスト(Wheezy)があるので、すべてがすぐに利用できます。



aptitude install libpam-google-authenticator







Debian安定版(Sqeeze)はまだこのモジュールを追加していませんが、テストのパッケージは問題なくインストールされています。



電話を入手する時間です。 Androidが搭載されている場合は、 Google認証システムをダウンロードしますこのようなQRコードスキャナーも便利です。 スマートフォンが異なる場合は、 ここにいます



そこに到達することを計画しているサーバー上の各ユーザーは、最初にコンソールツールを起動する必要があります。



google-authenticator







そして、すぐに秘密鍵を含むこのような素敵なQRコードを描画します







また、万が一の場合に備えて、5つのバックアップコードが突然電話で発生します。 また、ツールが書き込むURLにアクセスする必要はありません。より美しいQRコードのみがそこに描画されます。 秘密のコードをGoogleに見せたくないですか? :)



アプリケーションからQRコードをすぐにスキャンし、質問に答えます。

-すべてを~/.google_authenticator



永続的に保存しますか?

-y

-1つのコードの使用を複数回禁止しますか? 中間者攻撃をキャッチまたは防止するのに役立ちます。

-y

-時間枠を約1.5分から4分に拡大しますか?

-n( ここで、電話の時刻が正確かどうかをすぐに確認します

-期間ごとのログイン試行回数を制限しますか?

-y



~/.google_authenticator



(ちなみに、対応するモジュールオプションでパスを変更できます)がない場合、ユーザーは許可されません。



SSHとPAMを構成する



すべてが機能するまで、ルートシェルは開いたままにしておくのが最適です。



/ etc / ssh / sshd_configでチャレンジレスポンスを有効にし、sshを再起動します。



ChallengeResponseAuthentication yes







認証を管理するには、ファイル/etc/ssh/two-factor-skip.confを作成します。次に例を示します。



 #        + : ALL : 192.168.1.0/24 #       + : bezmobilki : ALL #         - : ALL : ALL
      
      







/etc/pam.d/sshdに次の2行を入力します。



 auth [success=1 default=ignore] pam_access.so accessfile=/etc/ssh/two-factor-skip.conf auth required pam_google_authenticator.so
      
      







@include common-auth



前に入力するのが最善です



確認する



設定した場所にsshします。 一時コードを入力してから、パスワードを入力します。 お楽しみください。



OpenSSHの現在の機能により、キーを使用する場合、2要素認証は機能しません(PAMは使用されません)。 ごめんなさい



次は?



この方法で、PAMを使用する他のサービスを改善できます。



参照資料



  1. code.google.com/p/google-authenticator/wiki/PamModuleInstructions
  2. code.google.com/p/google-authenticator
  3. tools.ietf.org/html/rfc6238
  4. habrahabr.ru/blogs/google/125193
  5. www.google.com/support/accounts/bin/answer.py?hl=ja&answer=1066447



All Articles