web-dev-qa-db-ja.com

すべてのLDAPユーザーがgetent passwdで表示されるのはなぜですか?

LDAPサーバーをSolarisサーバーとRHELサーバーの両方で使用しており、より多くのサーバーをRHELに移行することを計画しています。ただし、すべてのRed HatサーバーでLDAPに問題があります。

「getent passwd」と入力すると、このサーバーにアクセスできるユーザーだけでなく、LDAPサーバー全体のすべてのユーザーが表示されます。通常、約10〜50人がサーバーにアクセスできるため、Solarisはこのユーザーのリストを出力し、Red HatフラットアウトはLDAPに存在するすべてのユーザーのリストを出力します(約650)。

私はSolarisのような動作を好みます。サーバーへのアクセス許可を持つユーザーのみが「getent passwd」と表示されます。

サーバーにアクセスできるユーザーのみを一覧表示するようにRHELを構成するにはどうすればよいですか?

6
ujjain

これはデフォルトの動作です。RHELはPAMを使用するユーザーを制限し、nssは指定されたLDAP検索ベースで使用可能なすべてのユーザー/グループエントリを解決しようとします。

システムにnfsマウントがあり、マシンにアクセスできないユーザーが所有するファイルが含まれている場合がありますが、すべてがOSに表示されている場合はユーザーを解決できます(アクセスはPAMによって制限されているため、ユーザーはアクセスできません)ログインできます)。

次のいずれかのオプションを使用して、動作を変更できます。

  1. SSSDを使用します。デフォルトではユーザー/グループは列挙されません。 (つまり、getent passwdはローカルユーザーのみをリストします)。

  2. LDAPフィルターを使用して、必要なユーザーのみがマシンに表示されるようにします。これは、ユーザーのフィルタリングに使用できる特定のフィルターがある場合にのみ可能です(たとえば、グループのmemberof属性を使用する)。

  3. ユーザーをフィルタリングするには、互換モードを使用します。

たとえば:

nsswitch.conf 
passwd: files compat
passwd_compat: ldap

in passwd file, add +@netgroup.
2
ujjain

/etc/security/access.confでアクセスを制限しています。これにより、サーバーにアクセスできるユーザーは制御されますが、サーバーに対してどのユーザーが可視に影響を与えることはありません。これは通常、あなたが望むものです。ユーザーaliceがサーバーにログインできない場合でも、彼女が見たい共有ファイルシステム上のファイルを所有している場合:

$ ls -l ~alice
-rw-rw-r--. 1 alice alice 0 Aug  1 09:09 afile

の代わりに:

$ ls -l ~alice
-rw-rw-r--. 1 5234 5234 0 Aug  1 09:09 afile

つまり、ユーザーがシステムにログインできない場合でも、システムにユーザーのことを知らせたいのです。

システムに表示されるユーザーのセットを制限する場合は、NSSサブシステムを構成して、ある種のLDAPフィルターを実装する必要があります。その方法は、使用しているツールによって異なります。

  • user993553は、LDAPと統合するためのレガシーツールであるnss_ldapについて言及しています。

  • 一部の新しいディストリビューションは [〜#〜] sssd [〜#〜] を使用します。これには、LDAPモジュールにldap_service_search_baseパラメータが含まれます。

  • nslcdプログラムには、各マップに適用できるfilterオプションがあります

使用するメカニズムは、実行しているRHELのバージョンによって異なります。RHEL6にはnslcdsssdの両方があります(私はnslcdを使用しています)。 nss_ldapに制限されています。

3
larsks

オプションの場合は、次のようにLDAPスキーマを拡張できます。

から http://www.secure-computing.net/wiki/index.php/OpenLDAP/Authentication

このホスト検証を取得するために、posixAccount objectClassのHost属性を許可するカスタムスキーマを追加します。新しいスキーマはここからダウンロードできます。この新しいスキーマを使用するには、scn.schemaファイルを解凍して/ usr/local/etc/openldap/schemaに保存し、slapd.confファイルに次の行を追加します。

...

次にnss_ldap.conf nss_base_passwd dc=base,dc=local?one?host=thismachinehostを追加します

構文はbase?scope?filterです。

これはfreebsdでテストされ、getent passwdはフィルターに一致するユーザーのみをリストします。

2
user993553