私はいくつかのLinuxワークステーション(RedHat 7)を設定しようとしていますが、いくつかの珍しい要件を持つLDAPサーバーに対して認証を設定する方法を理解しようとしています。
デフォルトでは、sssdを使用してLDAP認証を設定する方法を知っていますが、要件に合わせて特定のユーザーにのみ認証を制限する方法はわかりません。
LDAP設定を有効にするには、次のコマンドラインを使用します。
authconfig --enableldap --enableldapauth --ldapserver="<redacted>" --ldapbasedn="<redacted>" --update --enablemkhomedir
これにより、すべてのLDAPユーザーがログインできるようになり、わかっている限りうまく機能します。しかし、私の要件は、LDAPの特定のユーザーだけがログインでき、ユーザーのリストが別のテキストファイル(ユーザーのログイン名別)として提供されることです。
追加情報:私たちは何千人ものユーザーを持つLDAPサーバー(実際にはActive Directory)を持っています。これらのワークステーションで作業する必要がある約20人だけが、このワークステーションにログインできます。残念ながら、LDAPにはこれに関する情報はなく、LDAPサーバーを制御することはできません。代わりに、数週間に一度のログインを許可する必要があるユーザー名のリストを含むテキストファイルを受け取ります。
このリストのユーザーのみに制限しながら、LDAPを使用してユーザー名/パスワード/ユーザーIDなどを取得するように認証を設定するにはどうすればよいですか?
答え1
私は必要なことを達成する2つの方法を見つけました。最初はthrigによって説明されます。各ユーザー名を/etc/security/access.confに個別に追加する必要がありました。
2番目のオプションは、sssd.confにLDAPクエリ文字列を指定することです。
ldap_access_filter = (|(userid=user1)(userid=user2).....)
2番目の解決策は構築するのが非常に面倒ですが、sssdは少数のLDAPレコードのみを取得するため、最終的に大規模なLDAP環境で大きなパフォーマンス上の利点を提供します。
答え2
これらのユーザーをグループに入れてから、ルールを使用してpam_access
その/etc/security/access.conf
グループ内のユーザー(およびroot
必要に応じてシステム管理者と監視)に対してのみログインを許可します。
+ : root wheel nagios : ALL
+ : yourusergrouphere : ALL
- : ALL : ALL