この記事では、LinuxでSSHログインの2要素認証(2FA)を有効にする方法を紹介します。 Google PAM (Pluggable Authentication Module)および Microsoft Authenticator モバイルアプリ。 2FAを使用すると、SSHを介してLinuxホストで認証するときに、セキュリティレイヤーを追加できます。 2FAを有効にした後、LinuxにSSHで接続するには、ユーザー名とパスワード(またはRSAキー)に加えて、スマートフォンからワンタイムデジタルパスワード(TOTP)を入力する必要があります。
をインストールします Microsoft Authenticator スマートフォンのモバイルアプリ(GoogleストアとApp Storeの両方で利用できます)。
次に、LinuxホストにGooglePAMをインストールして構成する必要があります。
- SSH経由でLinuxホストに接続します。
- パッケージマネージャーを使用してGooglePAM認証システムをインストールします。
Debian / Ubuntu:sudo apt-get install libpam-google-authenticator
RHEL / CentOS / Fedora:yum install google-authenticator
- 次のコマンドを実行します。
google-authenticator
- ツールはコンソールにQRコードを生成して表示します。
- スマートフォンでMicrosoftAuthenticatorアプリを実行します。[アカウントの追加]->[個人アカウント]->[QRコードのスキャン]を選択します。
- アプリでQRコードをスキャンします。 ユーザー名とサーバーの新しいエントリが認証システムアプリに表示されます。 このアイテムを使用して、ホストに接続するためのワンタイムパスワードを取得します。
- Linuxコンソールには秘密鍵と緊急コードが表示されることに注意してください。
スマートフォンを紛失/破損した場合にホストに接続するには、これらのコードが必要になります。 それらを安全な場所に保管してください!
- 次に、google-authenticatorは他のいくつかの質問を表示します。
- 認証トークンを時間ベースにしますか?
Y -> Enter
- 「/home/sysops/.google_authenticator」ファイルを更新しますか?
Y -> Enter
- 同じ認証トークンの複数の使用を禁止しますか?
Y -> Enter
- デフォルトでは、トークンは30秒間有効です…
Y -> Enter
デフォルトでは、ワンタイムトークンは30秒ごとに変更されます。 これは、ほとんどの場合に最適なオプションです。 ただし、Linuxホストとスマートフォンが時間同期されていることが重要です。
- レート制限を有効にしますか?
Y -> Enter
すべての設定を一度に構成できます。
$ 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つ以下のログインを使用できます - 次に、次のディレクティブを/etc/pam.d/sshdに追加します。
auth required pam_google_authenticator.so nullok
The nullok このオプションを使用すると、2要素認証を設定していないユーザーが、ユーザー名とパスワードを使用してログオンできます。 2FAの構成とテストの後、2要素認証の使用を要求するオプションを無効にすることをお勧めします。
- 次に、/ etc / ssh/sshd_configを編集します。
sudo mcedit /etc/ssh/sshd_config
- 変更
ChallengeResponseAuthentication
の値Yes
:ChallengeResponseAuthentication yes
- 変更をsshd_configに保存し、sshdを再起動します。
service ssh restart
次に、SSH経由でLinuxホストに接続してみます。 パスワードを入力する前に、確認コードを入力するように求められます。
スマートフォンで認証システムアプリを開き、Linuxホストのユーザーを見つけます。 オーセンティケーターが生成した6文字のワンタイムパスワードコードをコンソールに入力します。
ワンタイムパスワードコードは限られた時間(デフォルトでは30秒)有効であることに注意してください。 正しいコードを入力すると、Linuxユーザーのパスワードを入力するように求められます。
ログオンが成功すると、認証ログに次の行が表示されます。
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.