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