1000人を超えるユーザーが使用するRedHat Linuxサーバーがあります。
ユーザー名はLDAPプロトコルを介してサーバーに到達するため、ログイン認証はLDAPから来ます。
私の質問:ユーザー名がLDAPから来る場合、ユーザーがローカルコンピュータにログインするのを防ぐことはできますか?
答え1
今日、認証ロジックは通常PAMによって処理されます。私の考えでは、PAMの設定ファイル(私の場合)でそれを設定できるはずです/etc/pam.d
。
一般的な認証ロジックはに保存されていますcommon-auth
。あなたの場合は、次のようなものが必要です。
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
...または、次のように単純なものかもしれません。
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
...標準のUNIX認証と比較して、LDAPが最初のソースか2番目のソースかによって異なります(それも含まれることを考慮してください)。
これで、コンピュータでLDAP認証を無効にしたい場合、または否定的なLDAP認証ユーザーにアクセスするには、PAM構成からソースを削除し、UNIX認証にのみ依存するようにします。
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so
- 成功したら、残りのチェーンで
pam_unix.so
1つの要素()をスキップし、次の要素()を評価します。これは、UNIX認証が失敗するとユーザーが閉じ込められ、認証が失敗することを意味します。成功すると、到着してシステムへのアクセス権が付与されます。pam_deny.so
pam_permit.so
pam_deny.so
pam_permit.so
- これにはLDAPは含まれていません。つまり、保存されていないユーザーは
/etc/passwd
システムにアクセスできません。
これでLDAPユーザーを具体的にブロックするには...
auth [success=die] pam_ldap.so
auth sufficient pam_unix.so
- 成功すると、
pam_ldap.so
失敗コードが返され、チェーンが終了します。失敗した場合は、pam_unix.so
システムにアクセスするだけで十分です。 - これにより、LDAP 資格情報が一致する限り、すべての PAM 認証が中断されます。 UNIXユーザーは引き続きシステムにアクセスできます。
もちろん、PAMを構成する他の多くの方法があり、それらのいくつかは、先ほど説明したものよりもよく/より効率的です。これについて詳しくは、次をご覧ください。このページ。ただし、注意が必要な場合は、PAM設定を開始する前に、root
どこかにセキュリティ端末が実行されていることを確認してください。認証ロジックが混乱している場合は、再び訪問して/etc/pam.d
変更を元に戻すことができます。:)
もう1つの注意:PAMが認証(およびその他のいくつか)を処理している間、名前解決はNSS(ネームサービススイッチ)、その構成はにあります/etc/nsswitch.conf
。このファイルに LDAP を残しておくと、システムはこれらの LDAP ユーザーについて引き続き知ることができますが、そのユーザーは許可されません。デフォルトでは、これによりシステムはUIDを名前と一致させることができます。たとえば、ディレクトリ(ls -l
)内のファイルの内容を一覧表示し、ファイルの所有者をインポートするときです。
NSS設定を編集してこのLDAP名ソースを削除することもできますが、ユーザーが実際に自分のコンピュータで使用できるファイルを所有している場合は、この方法をお勧めしません。