четверг, 3 августа 2017 г.

Генерация конфигурации OpenLDAP + SSSD

Необходимо работающий на сервере LDAP соединить с SSSD, который позволяет подключаться к LDAP, как локально, так и удаленно.
Представим что LDAP-server уже настроен и отзывается на команду:
# ldapsearch -D cn=Manager,dc=domain,dc=com -H ldaps://localhost:636 -b ou=it,dc=domain,dc=com -w

Во-первых нужно установить sssd и authconfig, который нам пригодится далее:
# yum install -y sssd authconfig

Затем нужно привести конфигурационный файл примерно к такому виду, параметры подключения к LDAP конечно же использовать свои:
# cat sssd.conf 
[domain/default]
debug_level=9
ldap_tls_reqcert = never
auth_provider = ldap
ldap_schema = rfc2307bis
krb5_realm = #
ldap_search_base = ou=it,dc=domain,dc=com
ldap_group_member = uniquemember
id_provider = ldap
ldap_id_use_start_tls = True
chpass_provider = ldap
ldap_uri = ldaps://localhost
krb5_kdcip = #
cache_credentials = True
ldap_tls_cacertdir = /etc/openldap/cacerts
entry_cache_timeout = 600
ldap_network_timeout = 3
krb5_server = localhost
autofs_provider = ldap
[sssd]
services = nss, pam, autofs
config_file_version = 2
domains = default

Для того, чтобы вручную не добавлять в конфиги PAM изменения, можно использовать authconfig:
# authconfig --enablesssd --enablesssdauth --enableldap --enableldapauth --enablemkhomedir --ldapserver="ldaps://localhost:636" --ldapbasedn="ou=it,dc=domain,dc=com" --enablelocauthorize --enableldaptls --update

Перед запуском этой команды можно сделать бекап текущих конфигов:
# authconfig --savebackup=/tmp/bak

Восстановиться из бекапа можно аналогично:
# authconfig --restorebackup=/tmp/bak

Перезапускаем sssd и проверяем есть ли коннект к LDAP, если все прописано корректно и сервис завелся, то все ок:
# cat /etc/passwd | grep user1
# getent passwd user1
user1:*:10000:1005:user1:/data/user1:/bin/bash
# id user1
uid=10000(user1) gid=1005(web) groups=1005(web)

Т.е. видим что локального пользователя user1 не существует, но в базе LDAP он есть.

Комментариев нет: