Назад | Перейти на главную страницу

LDAP показывает слишком много пользователей и групп на клиентах Linux

Мы размещаем LDAP на сервере Solaris и используем 150 клиентов Solaris и 50 клиентов Linux. У пользователей и групп есть список сетевых групп (имен хостов серверов), к которым они могут получить доступ. Это означает, что пользователь apacheman01 может получить доступ к определенным серверам через SSH только со своим именем пользователя и паролем. Пока все работает хорошо.

ldap.conf:
[root@tst-01 ~]# cat /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://ldap1.tst.domain.tld ldap://ldap2.tst.domain.tld
BASE dc=tst,dc=domain,dc=tld

Однако эти команды показывают всех пользователей и группы, доступные на сервере LDAP, а не только пользователей, которые имеют доступ на этом сервере. Это также означает, что когда пользователь вошел в систему, он может «su -» другому пользователю, у которого даже не должно быть доступа к серверу.

getent passwd
getent group

Таким образом, аутентификация LDAP работает так же, как и для начальной аутентификации LDAP SSH, но getent passwd / group не должен перечислять ВСЕ пользователи / группы в LDAP, а только для серверов / сетевых групп, которые назначены этим пользователям / группам.

Это ожидаемое поведение, как описано в getent(1):

The getent command displays entries from databases supported by the Name Service Switch libraries, which are
configured in /etc/nsswitch.conf.  If one or more key arguments are provided, then only the entries that
match the supplied keys will be displayed.  Otherwise, if no key is provided, all entries will be displayed
(unless the database does not support enumeration).

Если вы хотите ограничить использование su, используйте /etc/pam.d/su вместо:

auth       required   pam_wheel.so