私はsshdを使用しており、公開鍵認証でのログインを許可しています。
選択したユーザーがPAM 2要素認証モジュールでログインできるようにしたい。
特定のユーザーにPAM 2要素認証を許可する方法はありますか?
同じように-特定のアカウントに対してのみパスワード認証を有効にしたい。私のSSHデーモンがパスワード認証の試みを拒否して、ハッカーになる可能性があるユーザーがパスワード認証を受け入れないと考えるのを阻止しようとしています-誰かが私の厳重に保護された秘密アカウントを知っている場合を除いてisパスワードが有効です。 SSHクライアントでシークレットキーまたは2要素認証を実行できない場合に、これを実行します。
おそらく、これを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要素認証を使用した認証を許可することで、より簡単にすることができます。おそらく、適切なデバイス/構成を持っている人だけが成功することができるので、効果的に同じ動作を得るでしょう。
以下のソリューションを使用して、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 からの参照
Google Authenticatorが構成されていないユーザーの2要素認証を無効にするには、/etc/pam.d/sshd
にnullok
オプションを追加します。
auth required pam_google_authenticator.so nullok
詳細については、次を参照してください: https://github.com/google/google-authenticator-libpam#setting-up-a-user