LDAP Linux Auth Client

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску

Клиентская часть - линуксбокс который будет авторизоваться в 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


Ссылки