Image

ナレッジベース → Debian 12 で root の ssh で 2 要素認証を設定する

[仮想サーバー]
公開日: 05.10.2023

rootユーザーに対して二要素認証を設定するために、Google Authenticatorを使用します。このアプリケーションはすべてのプラットフォームで利用可能で、時間に依存します。したがって、Googleのサービスにアクセスできなくても、時間が同期していれば問題なく動作します。

今回の設定では、通常のユーザーは従来通りパスワードでSSHにログインし、rootユーザーに権限を昇格させる際に、su -コマンドでパスワードを入力した後、Google Authenticatorアプリのコードを入力する必要があります。

また、rootユーザーでのSSHログインを禁止し、強制的に二要素認証を使用させるようにします。

1. 必要なパッケージをインストールします:

apt install libpam-google-authenticator

2. 初期設定を行います:

./google-authenticator

2.1 アプリからのコードの入力が求められます。Googleアプリの代わりにFreeOTPを使用することもできます。

2.2 SSHサービスを設定します:

nano /etc/ssh/sshd_config

PermitRootLogin no
UsePAM yes
ChallengeResponseAuthentication yes

設定を反映するため、SSHサービスを再起動します:

systemctl restart ssh

2.3 su -コマンドでパスワードを入力した後にコードの入力を要求する設定を行います。

以下の行を追加し、ファイルを次のように編集します:

nano /etc/pam.d/su
...
auth       sufficient pam_rootok.so
...
auth required pam_unix.so no_warn try_first_pass
auth   required   pam_google_authenticator.so
...

3. 完了です。 通常のユーザーでログインした後、suコマンドを使用してrootに切り替える際に、パスワード入力後、アプリのコードを要求されることを確認できます。




追加設定:

3.1 SSH接続時にコードを要求したい場合は、以下の行をファイルに追加します:

nano /etc/pam.d/sshd
...
@include common-auth
...
auth required pam_unix.so no_warn try_first_pass
auth   required   pam_google_authenticator.so
...

rootユーザーを使用する場合は、SSH設定でログインを許可する必要があります。別のユーザーの場合は、通常のユーザーで次のコマンドを実行し、rootユーザーの設定と同様に行います:

./google-authenticator




No Comments Yet