Centos 客户端通过 ldap 对 zentyal DC 进行身份验证

Centos 客户端通过 ldap 对 zentyal DC 进行身份验证

我遇到了一点问题。3 个月前,我们在工作场所部署了一个 zentyal dc,因为它是针对同一台服务器对 Windows、Linux 和 Mac 进行身份验证的好方法。我在 Windows 上进行的身份验证非常顺利。我通过 ldap 对 ubuntu 客户端进行了身份验证,它们运行良好,但我在下一个操作系统上遇到了问题。

在我们的 centos 客户端上,我首先尝试实施与我们的 ubuntu 客户端上相同的 ldap 配置。然后我尝试使用 winbind 和 kerberos 进行身份验证。是的,这有效,但出现了一个大问题。当我运行 getent passwd 时,我发现 UID 和 GID 与 zentyal DC 不匹配,这意味着当我 nfs 挂载主文件夹时,用户无权进入它们,因为主文件夹具有 zentyal dc 的 UID 和 GID。我研究发现它与 idmaps 有关。我尝试了一些不同的方法,但最终放弃了。

这就是为什么我认为我应该再次尝试 ldap,因为它在 ubuntu 客户端上运行良好。所以我现在的问题是:如何配置 centos 6-7 机器以通过 ldap 对 zentyal DC 进行身份验证?

我的 ubuntu 机器上的 ldap.conf 如下所示:

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.confCentOS 客户端上:

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: [email protected]
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 服务器

相关内容