ホームサーバーでの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

Source: https://habr.com/ru/post/J133481/


All Articles