Клиент Centos проходит аутентификацию на zentyal DC через ldap
У меня есть небольшая проблема. 3 месяца назад мы установили zentyal dc на моем рабочем месте, потому что это был хороший способ аутентификации Windows, Linux и Mac на одном и том же сервере. Я получил аутентификацию на окнах, работающих как шарм. Клиенты Ubuntu, которые я аутентифицировал через ldap, работали нормально, но я столкнулся с проблемой следующей ОС.
на наших клиентах centos я сначала попытался внедрить те же самые конфиги ldap, что и на наших клиентах ubuntu. Затем я попытался пройти аутентификацию с помощью winbind и kerberos. Яи это работало, но возникла большая проблема. Когда я запустил getent passwd, я обнаружил, что UID и GID не совпадают с zentyal DC, что означает, что когда я монтирую домашнюю папку при монтировании, пользователи не имеют доступа к ним, потому что домашние папки имеют UID и GID zentyal DC. Я исследовал, что это как-то связано с idmaps. Я попробовал несколько разных подходов, но в конце концов сдался.
Вот почему я думаю, что я должен попробовать ldap снова, так как он работал на клиентах Ubuntu. Итак, мой вопрос: как мне настроить машину Centos 6-7 для аутентификации на zentyal DC через ldap?
мой ldap.conf на машине с Ubuntu выглядит так:
base dc=mosek,dc=zentyal
uri ldap://172.16.0.5:390
ldap_version 3
binddn cn=zentyalro,dc=mosek,dc=zentyal
bindpw secretpasswd
scope sub
bind_policy soft
pam_password md5
nss_base_passwd ou=Users,dc=mosek,dc=zentyal?one
nss_base_passwd ou=Computers,dc=mosek,dc=zentyal?one
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,colord,daemon,dnsmasq$
Как я могу преобразовать этот конфиг в то, что Centos может использовать?
То, что я сделал до сих пор:
побежал authconfig-tui
и настроить его для ldap
/etc/openldap/ldap.conf
а также /etc/ldap.conf
на клиенте centos:
TLS_CACERTDIR /etc/openldap/cacerts
SASL_NOCANON on
URI ldap://172.16.0.5:390
BASE dc=mosek,dc=zentyal
/etc/nsswitch.conf
на клиенте centos:
passwd: files sss ldap
shadow: files sss ldap
group: files sss ldap
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss ldap
publickey: nisplus
automount: files ldap
aliases: files nisplus
бегущая команда ldapsearch -D "uid=tomas,ou=Users,dc=mosek,dc=zentyal" -Z -LLL -W uid=tomas
выход:
ldap_start_tls: Protocol error (2)
additional info: unsupported extended operation
Enter LDAP Password:
dn: uid=tomas,ou=Users,dc=mosek,dc=zentyal
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: passwordHolder
objectClass: systemQuotas
objectClass: krb5Principal
objectClass: krb5KDCEntry
objectClass: shadowAccount
objectClass: zentyalSambaLink
uid: tomas
loginShell: /bin/bash
gidNumber: 1901
homeDirectory: /home/tomas
krb5PrincipalName: tomas@MOSEK.ZENTYAL
krb5MaxLife: 86400
krb5MaxRenew: 604800
krb5KDCFlags: 126
uidNumber: 3000044
....
перезагрузил клиент, но по-прежнему ни один пользователь с именем tomas при запуске команды id tomas
РЕДАКТИРОВАТЬ:
Я отредактировал мой /etc/nslcd.conf
выглядеть так:
# The user and group nslcd should run as.
uid nslcd
gid ldap
uri ldap://172.16.0.5:390
ldap_version 3
base dc=mosek,dc=zentyal
binddn cn=zentyalro,dc=mosek,dc=zentyal
bindpw secretpassword
# The distinguished name to perform password modifications by root by.
#rootpwmoddn cn=admin,dc=example,dc=com
# The default search scope.
scope sub
base group ou=Groups,dc=mosek,dc=zentyal?one
base passwd ou=Users,dc=mosek,dc=zentyal?one
Еще нет пользователей
РЕДАКТИРОВАТЬ:
Я попытался запустить nslcd в режиме отладки, и получил это:
[root@centosy ~]# nslcd -d
nslcd: DEBUG: add_uri(ldap://172.16.0.5:390)
nslcd: version 0.8.13 starting
nslcd: DEBUG: unlink() of /var/run/nslcd/socket failed (ignored): No such file or directory
nslcd: DEBUG: initgroups("nslcd",55) done
nslcd: DEBUG: setgid(55) done
nslcd: DEBUG: setuid(65) done
nslcd: accepting connections
после последней строки он просто застревает, поэтому он никогда не поднимает сервер ldap