LDAP Linux Auth Client
Клиентская часть - линуксбокс который будет авторизоваться в LDAP
Есть 2 варианта - простой и плохо работающий и второй который вроде-бы работает лучше
Простой но проблемный
Настройка описанным ниже способом хорошо работает но в случае потери связи с сервером LDAP залогиниться не смогут даже локальные пользователи из-за таймаутов. Кроме того, попытка перезагрузить систему приведет к тому, что загрузка займет очень много времени. После дебага я выяснил, что при исполнении каждой комманды производиться проверка принадлежности пользователя к группе, что при неработающем LDAP занимает много времени. В результате это выглядит как очень очень медленная загрузка системы (часы!)
DEBIAN_FRONTEND=noninteractive apt-get install libnss-ldap
Sudosh2
dpkg -i /root/sudosh2_2.0.1-1_amd64.deb
/etc/shells
/usr/bin/sudosh
/etc/nsswitch.conf
#passwd: compat #group: compat #shadow: compat passwd: ldap files group: ldap files shadow: ldap files
/etc/ldap.conf
udi ldap://:10.20.0.3/ base dc=fuel_domain ldap_version 3 pam_password md5
/etc/ssh/sshd_conf
PasswordAuthentication yes
Альтернативный вариант настройки
- libnss-ldapd - замена libnss-ldap
- nscd - кеширующий процесс и на время дебага его лучше отключать.
export DEBIAN_FRONTEND=noninteractive apt-get -y install libpam-ldap nscd ldap-utils libnss-ldapd
Конфигурация - /etc/nslcd.conf
uid nslcd gid nslcd uri ldaps://ldap-srv.example.com base dc=fuel_domain ldap_version 3 binddn uid=nssproxy-node3,ou=service_users,dc=customer_organization,dc=fuel_domain bindpw node3 tls_reqcert never nss_initgroups_ignoreusers ALLLOCAL bind_timelimit 3 timelimit 3
Если используется TLS то нужен сертификат (подробнее в секции про TLS)
tls_cacertfile /etc/ssl/certs/rootca.crt
Если есть желание что бы getent shadow показывал хеши паролей - то нужно добавить опцию
map shadow userPassword userPassword
Аналогично предыдущему варианту настройки: /etc/nsswitch.conf
passwd: ldap files group: ldap files shadow: ldap files
Для PAM нужен /etc/ldap.conf и /etc/ldap.secret (с паролем)
uri ldaps://ldap-srv.example.com base dc=fuel_domain ldap_version 3 rootbinddn uid=nssproxy-node3,ou=service_users,dc=customer_organization,dc=fuel_domain tls_cacertfile /etc/ssl/certs/rootca.crt
После окончания настройки - рестартовать оба сервиса, nscd и nslcd
/etc/init.d/nslcd restart * Restarting LDAP connection daemon nslcd
root@node-2:/etc# /etc/init.d/nscd start * Starting Name Service Cache Daemon nscd
Автосоздание домашних директорий
Нужно в любом случае
/etc/pam.d/common-account:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022