LDAP Linux Auth Client: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 16 промежуточных версий этого же участника) | |||
Строка 2: | Строка 2: | ||
[[Категория:Linux]] |
[[Категория:Linux]] |
||
=Клиентская часть - линуксбокс который будет авторизоваться в LDAP= |
=Клиентская часть - линуксбокс который будет авторизоваться в LDAP= |
||
+ | Есть 2 варианта - простой и плохо работающий и второй который вроде-бы работает лучше |
||
+ | ==Простой но проблемный== |
||
+ | Настройка описанным ниже способом хорошо работает но в случае потери связи с сервером LDAP залогиниться не смогут даже локальные пользователи из-за таймаутов. |
||
+ | Кроме того, попытка перезагрузить систему приведет к тому, что загрузка займет очень много времени. После дебага я выяснил, что при исполнении каждой комманды производиться проверка принадлежности пользователя к группе, что при неработающем LDAP занимает много времени. В результате это выглядит как очень очень медленная загрузка системы (часы!) |
||
<PRE> |
<PRE> |
||
DEBIAN_FRONTEND=noninteractive apt-get install libnss-ldap |
DEBIAN_FRONTEND=noninteractive apt-get install libnss-ldap |
||
</PRE> |
</PRE> |
||
+ | |||
+ | Sudosh2 |
||
+ | <PRE> |
||
+ | dpkg -i /root/sudosh2_2.0.1-1_amd64.deb |
||
+ | </PRE> |
||
+ | |||
+ | /etc/shells |
||
+ | <PRE> |
||
+ | /usr/bin/sudosh |
||
+ | </PRE> |
||
+ | /etc/nsswitch.conf |
||
+ | <PRE> |
||
+ | #passwd: compat |
||
+ | #group: compat |
||
+ | #shadow: compat |
||
+ | |||
+ | passwd: ldap files |
||
+ | group: ldap files |
||
+ | shadow: ldap files |
||
+ | </PRE> |
||
+ | |||
+ | /etc/ldap.conf |
||
+ | <PRE> |
||
+ | udi ldap://:10.20.0.3/ |
||
+ | base dc=fuel_domain |
||
+ | ldap_version 3 |
||
+ | pam_password md5 |
||
+ | </PRE> |
||
+ | |||
+ | /etc/ssh/sshd_conf |
||
+ | <PRE> |
||
+ | PasswordAuthentication yes |
||
+ | </PRE> |
||
+ | ==Альтернативный вариант настройки== |
||
+ | * libnss-ldapd - замена libnss-ldap |
||
+ | * nscd - кеширующий процесс и на время дебага его лучше отключать. |
||
+ | * |
||
+ | <PRE> |
||
+ | export DEBIAN_FRONTEND=noninteractive |
||
+ | apt-get -y install libpam-ldap nscd ldap-utils libnss-ldapd |
||
+ | </PRE> |
||
+ | |||
+ | Конфигурация - /etc/nslcd.conf |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | Если используется TLS то нужен сертификат (подробнее в секции про TLS) |
||
+ | <PRE> |
||
+ | tls_cacertfile /etc/ssl/certs/rootca.crt |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | Если есть желание что бы getent shadow показывал хеши паролей - то нужно добавить опцию |
||
+ | <PRE> |
||
+ | map shadow userPassword userPassword |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | |||
+ | Аналогично предыдущему варианту настройки: |
||
+ | /etc/nsswitch.conf |
||
+ | <PRE> |
||
+ | passwd: ldap files |
||
+ | group: ldap files |
||
+ | shadow: ldap files |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | |||
+ | Для PAM нужен /etc/ldap.conf и /etc/ldap.secret (с паролем) |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | |||
+ | После окончания настройки - рестартовать оба сервиса, <B>nscd</B> и <B>nslcd</B> |
||
+ | <PRE> |
||
+ | /etc/init.d/nslcd restart |
||
+ | * Restarting LDAP connection daemon nslcd |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | root@node-2:/etc# /etc/init.d/nscd start |
||
+ | * Starting Name Service Cache Daemon nscd |
||
+ | |||
+ | </PRE> |
||
+ | |||
+ | ==Автосоздание домашних директорий== |
||
+ | Нужно в любом случае |
||
+ | |||
+ | /etc/pam.d/common-account: |
||
+ | <PRE> |
||
+ | session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | ==Ссылки== |
||
+ | * https://lists.arthurdejong.org/nss-pam-ldapd-users/2013/msg00113.html |
||
+ | * https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1024475 |
||
+ | * https://blog.shichao.io/2015/05/21/setup_nss_ldapd_on_ubuntu_14_04.html |
||
+ | * https://wiki.debian.org/LDAP/NSS#Configuring_LDAP_Authentication |
Текущая версия на 15:17, 20 мая 2016
Клиентская часть - линуксбокс который будет авторизоваться в 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