もっと詳しく

この記事では、LinuxでSSHログインの2要素認証(2FA)を有効にする方法を紹介します。 Google PAM (Pluggable Authentication Module)および Microsoft Authenticator モバイルアプリ。 2FAを使用すると、SSHを介してLinuxホストで認証するときに、セキュリティレイヤーを追加できます。 2FAを有効にした後、LinuxにSSHで接続するには、ユーザー名とパスワード(またはRSAキー)に加えて、スマートフォンからワンタイムデジタルパスワード(TOTP)を入力する必要があります。

をインストールします Microsoft Authenticator スマートフォンのモバイルアプリ(GoogleストアとApp Storeの両方で利用できます)。

このガイドでは、AzureでのMFA認証に既に使用しているため、MicrosoftAuthenticatorを選択しました。 必要に応じて、代わりにGoogle認証システムを使用できます。

次に、LinuxホストにGooglePAMをインストールして構成する必要があります。

  1. SSH経由でLinuxホストに接続します。
  2. パッケージマネージャーを使用してGooglePAM認証システムをインストールします。
    Debian / Ubuntu: sudo apt-get install libpam-google-authenticator
    RHEL / CentOS / Fedora: yum install google-authenticator
  3. 次のコマンドを実行します。 google-authenticator
  4. ツールはコンソールにQRコードを生成して表示します。 Linuxコンソールでgoogle-authenticatorQRコードを生成する
  5. スマートフォンでMicrosoftAuthenticatorアプリを実行します。[アカウントの追加]->[個人アカウント]->[QRコードのスキャン]を選択します。
  6. アプリでQRコードをスキャンします。 ユーザー名とサーバーの新しいエントリが認証システムアプリに表示されます。 このアイテムを使用して、ホストに接続するためのワンタイムパスワードを取得します。 LinuxホストをMicrosoft認証システムに追加します
  7. Linuxコンソールには秘密鍵と緊急コードが表示されることに注意してください。

    スマートフォンを紛失/破損した場合にホストに接続するには、これらのコードが必要になります。 それらを安全な場所に保管してください!

  8. 次に、google-authenticatorは他のいくつかの質問を表示します。
  9. 認証トークンを時間ベースにしますか? Y -> Enter
  10. 「/home/sysops/.google_authenticator」ファイルを更新しますか? Y -> Enter
  11. 同じ認証トークンの複数の使用を禁止しますか? Y -> Enter
  12. デフォルトでは、トークンは30秒間有効です… Y -> Enter

    デフォルトでは、ワンタイムトークンは30秒ごとに変更されます。 これは、ほとんどの場合に最適なオプションです。 ただし、Linuxホストとスマートフォンが時間同期されていることが重要です。

  13. レート制限を有効にしますか? Y -> Enter Linuxへのsshログイン用に2FA設定を構成します

    すべての設定を一度に構成できます。 $ google-authenticator -t -f -d -w 3 -e 5 -r 3 -R 30
    -t –ワンタイムコードを使用したログオンを有効にします
    -f –構成を〜/.google_authenticatorに保存します
    -d –以前のコードの使用を拒否します
    -w 3 –前のトークンと後続のトークンを1つずつ使用できます(時刻が同期されていない場合)
    -e 5 –5つの緊急コードを生成します
    -r 3 -R 30 –30秒ごとに3つ以下のログインを使用できます

  14. 次に、次のディレクティブを/etc/pam.d/sshdに追加します。auth required pam_google_authenticator.so nullokauth required pam_google_authenticator.so nullok

    The nullok このオプションを使用すると、2要素認証を設定していないユーザーが、ユーザー名とパスワードを使用してログオンできます。 2FAの構成とテストの後、2要素認証の使用を要求するオプションを無効にすることをお勧めします。

  15. 次に、/ etc / ssh/sshd_configを編集します。 sudo mcedit /etc/ssh/sshd_config
  16. 変更 ChallengeResponseAuthentication の値 Yes
    ChallengeResponseAuthentication yes
  17. 変更をsshd_configに保存し、sshdを再起動します。 service ssh restart ChallengeResponseAuthentication

次に、SSH経由でLinuxホストに接続してみます。 パスワードを入力する前に、確認コードを入力するように求められます。

スマートフォンで認証システムアプリを開き、Linuxホストのユーザーを見つけます。 オーセンティケーターが生成した6文字のワンタイムパスワードコードをコンソールに入力します。

Microsoft認証システムアプリのワンタイムパスワードコード

ワンタイムパスワードコードは限られた時間(デフォルトでは30秒)有効であることに注意してください。 正しいコードを入力すると、Linuxユーザーのパスワードを入力するように求められます。

LinuxUbuntuで2要素認証を使用するようにSSHを構成する

ログオンが成功すると、認証ログに次の行が表示されます。

cat /var/log/auth.log

Jul 20 11:12:22 srvubun01 sshd(pam_google_authenticator)[6242]: Accepted google_authenticator for sysops

間違ったコードが入力された場合、ログにはエラーが表示されます。

Jul 20 11:14:20 srvubun01 sshd(pam_google_authenticator)[6436]: Invalid verification code for sysops
Jul 20 11:14:22 srvubun01 sshd[6436]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.10.15 user=sysops

SSHキー認証と一緒に2FAを使用する場合は、次のディレクティブを/ etc / ssh/sshd_configに追加します。

PasswordAuthentication no
PubkeyAuthentication yes
AuthenticationMethods publickey,keyboard-interactive

The post LinuxでのSSHに2要素認証(2FA)を使用する appeared first on Gamingsym Japan.