Я использую openldap, nslcd и nss-pam-ldapd. Я хочу ограничить доступ пользователей к клиенту ldap. Я без проблем настроил это в CentOS 6.5, используя groupdn. но в CentOS 7 нет pam_ldap.conf
файл. Я попытался сделать это, добавив следующую строку в nslcd.conf
:
filter passwd (memberOf=cn=groupname,ou=groups,dc=example,dc=com)
но он не позволяет никому входить в систему, даже если он является членом группы. Как я могу решить эту проблему?
Я установил sssd и настроил его следующим образом, но все же каждый может войти в систему, даже если он не является членом указанной группы. и когда я пытаюсь войти в систему, журнал не записывается в sssd.log
и /var/log/messages
. Я могу просто проверить журнал nslcd, используя nslcd -d
. sssd.conf
:
[sssd]
config_file_version = 2
services = nss, pam
domains =example.com
debug_level = 10
[nss]
[pam]
[domain/example.com]
ad_server= app.example.com
ad_domain= example.com
sssd-ldap = app.example.com
ldap_access_order = filter, expire
ldap_access_filter = (memberOf=cn=groupname,ou=groups,dc=app,dc=example,dc=com)
ldap_schema = rfc2307bis
ldap_group_member = uniqueMember
ldap_search_base = dc=app,dc=example,dc=com
id_provider = ldap
auth_provider = ldap
access_provider = ldap
ldap_uri = ldap://app.example.com/
Вы должны использовать SSSD и настроить его для использования LDAP вместо работы напрямую с PAM.
Затем вы можете использовать в конфигурации домена SSSD следующее:
access_provider = simple
simple_allow_groups = groupname
это очень простой способ ограничить пользователей, но вы также можете использовать access_provider=ldap
а затем использовать более сложные запросы LDAP для управления доступом.
Видеть man sssd
и man sssd-ldap
.