web-dev-qa-db-ja.com

sshd:特定のユーザーに対してPAM認証を有効にする方法

私はsshdを使用しており、公開鍵認証でのログインを許可しています。

選択したユーザーがPAM 2要素認証モジュールでログインできるようにしたい。

特定のユーザーにPAM 2要素認証を許可する方法はありますか?

同じように-特定のアカウントに対してのみパスワード認証を有効にしたい。私のSSHデーモンがパスワード認証の試みを拒否して、ハッカーになる可能性があるユーザーがパスワード認証を受け入れないと考えるのを阻止しようとしています-誰かが私の厳重に保護された秘密アカウントを知っている場合を除いてisパスワードが有効です。 SSHクライアントでシークレットキーまたは2要素認証を実行できない場合に、これを実行します。

8
Brad

おそらく、これをpam_listfileモジュールで処理できます。次のような/etc/pam.d/sshdファイルを作成します。

auth requisite  pam_listfile.so item=user sense=allow file=/etc/authusers
auth sufficient pam_securid.so
auth required   pam_deny.so

これにより、/etc/authusersにリストされている人だけが、2要素モジュール(この場合は、secureid)で認証できるようになります。私は実際にこの構成をテストしていませんが、理論は確かです。

anyoneに2要素認証を使用した認証を許可することで、より簡単にすることができます。おそらく、適切なデバイス/構成を持っている人だけが成功することができるので、効果的に同じ動作を得るでしょう。

8
larsks

以下のソリューションを使用して、PAMモジュール(googleオーセンティケーター)を特定のユーザーに対して無効にすることができます。

1)Linuxインスタンス上にユーザーグループを作成します。この新しいグループに存在するユーザーのMFA/PAMは無効になります

Sudo groupadd <groupname>

2)ユーザーを作成するか、新しく作成したグループに既存のユーザーを追加します

Sudo useradd <username>
Sudo usermod -a -G <groupname> <username>

3)/etc/pam.d/sshdファイルを編集し、以下のステートメントを追加して、新しく作成されたグループのPAMモジュールをスキップします。

auth [success=done default=ignore] pam_succeed_if.so user ingroup <groupname>

オプション-

この新しいグループにフルアクセスが必要な場合は、visudoファイルに次の行を追加します。

%<groupname>ALL=(ALL)       NOPASSWD: ALL

ユーザーが作成されて新しいグループに追加されると、それらのユーザーのMFAはスキップされます。

- TechManyu Blog からの参照

3
Abhimanyu Garg

Google Authenticatorが構成されていないユーザーの2要素認証を無効にするには、/etc/pam.d/sshdnullokオプションを追加します。

auth   required   pam_google_authenticator.so nullok

詳細については、次を参照してください: https://github.com/google/google-authenticator-libpam#setting-up-a-user

2
Adam