web-dev-qa-db-ja.com

リモートログインの認証にパスコードジェネレーターを使用するにはどうすればよいですか?

別の要素を追加して、SSHログインの認証を強化したいと思います。パスコードジェネレーターデバイス、または携帯電話のパスコード生成アプリケーションです。デフォルト設定の明白なオプションは、固定パスワードとキーペアのみです。これどうやってするの?

(パスワードとパスコードジェネレーターを使用する場合、これは 2要素認証 (2FA)を提供します。パスワードは「私が知っていること」であり、パスコードは「持っているもの」です。)

55
Jorge Castro

これを行う1つの方法は、Googleが提供する Google Authenticator というツールを使用することです。

  1. インストール libpam-google-authenticatorInstall libpam-google-authenticator

    • または単にSudo apt-get install libpam-google-authenticator
  2. /etc/pam.d/sshdを編集してモジュールを含めます:

    • sudoedit /etc/pam.d/sshd
    • そして、ファイルのtopにこの行を含め、保存します:

      auth required pam_google_authenticator.so
      
  3. SSH構成ファイルを編集して、チャレンジをオンにします。

    • sudoedit /etc/ssh/sshd_configを選択し、応答認証を次から変更します。

      ChallengeResponseAuthentication no 
      

      ChallengeResponseAuthentication yes
      

      そして、ファイルを保存します。

  4. Sudo restart sshはSSHを再起動します

  5. google-authenticatorを実行します

    • これにより、秘密鍵、検証コード、緊急スクラッチコードが提供されます。また、レート制限に関する質問もあります。

モバイルアプリケーション:

別のデバイスで認証コードを受信するには、これらのいずれかが必要です。

関連および有用:

パスワードと使い捨てのパスコードを組み合わせることは、2要素認証であることに注意してください。「知っていること」(パスワード)と「持っているもの」(パスコード生成デバイス)を組み合わせます。一方、使い捨てのパスコードとSSHキーペアを組み合わせた場合、それはすべて「持っているもの」になります。 2つの認証要素が同じタイプの場合、2要素認証はありません。これは「1.5因子認証」と呼ばれることもあります。

49
Jorge Castro

Google Authenticatorはパーソナルサーバーには適していますが、既存のIDインフラストラクチャとうまく連携していない場合があります。他のオプションを調べたい場合は、RADIUSを認証プロトコルおよびpam-radiusプラグインとして使用することを検討してください。エンタープライズ指向の2要素認証システムはすべて、半径をサポートしています。 buntuにpam-radiusを介したWiKID二要素認証 を追加する方法に関するドキュメントを作成しました。

Radiusを使用すると、SSH以外のシステムを同じ認証サーバーに結び付けることができます。また、認証リクエストをfreeradius経由でLDAPにルーティングし、次に2FAサーバーにルーティングして、認証と認証を分離することもできます。 AD btwでも同じことができます。

12
nowen

前に説明したように、/etc/pam.d/sshdtopではなくtopに次の行を配置することを皆さんに勧めます(現在修正済みです)。

auth required pam_google_authenticator.so

そうしないと、システムはパスワードにブルートフォース攻撃にさらされるのままになり、2要素認証の最初の部分であるパスワードが危険にさらされます。

最初に確認コードを求められ、次にパスワードが求められます(コードが正しいかどうかは関係ありません)。どちらかが間違っている場合は、両方を再度入力する必要があります。他の方法で設定することもできますが、現在のデフォルトのubuntu(15.04)sshd設定で説明するのは少し難しい変更です。

それが必要な理由の詳細については、この問題を確認してください。

https://github.com/google/google-authenticator/issues/514

1
Maarten