我正在运行 CentOS 7 VirtualBox 实例。我正在尝试通过我们公司的 Active Directory 服务器设置 LDAP 身份验证。
注意:AD 服务器没有安装 Unix 扩展。
设置:
- 我已经安装了 nss-pam-ldapd
- nslcd 和 nscd 服务设置为在启动时运行
/etc/nsswitch.conf 已被编辑以添加 ldap:
passwd: files ldap group: files ldap shadow: files ldap hosts: files ldap dns myhostname ethers: files ldap networks: files ldap protocols: files ldap rpc: files ldap services: files ldap sss aliases: files ldap nisplus
/etc/pam.d/password-auth 和 /etc/pam.d/system-auth 编辑以添加:
auth sufficient pam_ldap.so use_first_pas account [default=bad success=ok user_unknown=ignore] pam_ldap.so password sufficient pam_ldap.so use_authok session optional pam_ldap session required pam_mkhomedir.so skel=/etc/skel umask=0077
/etc/nslcd.conf 已编辑:
uid nslcd gid nslcd uri ldap://myserver.com/ base dc=myserver,dc=com binddn CN=My Name,OU=Users,OU=DV,DC=myserver,DC=com bindpw PASSWORDHERE # Alternative mappings for Active Directory pagesize 1000 referrals off idle_timelimit 800 filter passwd (&(objectClass=user)(!(objectClass=computer))) map passwd uid userPrincipalName map passwd uidNumber objectSid:CorrectSID map passwd gidNumber objectSid:CorrectSID map passwd homeDirectory "/home/$cn" map passwd gecos displayName map passwd loginShell "/bin/bash" filter group (objectClass=group) map group gidNumber objectSid:CorrectSID ssl no
重新启动虚拟机并使用默认用户进行远程操作后,我可以列出所有 AD 用户([电子邮件保护])和组,使用
$ getent passwd
and
$ getent group
但是,如果我尝试使用我的 AD 用户登录到 GUI 或远程登录:
$ ssh [email protected]@linuxboxip
[email protected]@linuxboxip's password:
Permission denied, please try again.
我已经查看过此网站上的相关问题,进行了调试,并从头开始重新配置。但还是不行。
有什么想法吗?
答案1
好的,我找到问题了。
看关联
编辑 PAM 文件时:/etc/pam.d/password-auth 和 /etc/pam.d/system-auth
编辑必须针对相应的部分进行,而不能仅仅添加到文件底部。特别是,这些password required pam_deny.so
行必须是该部分的最后一项。
我现在可以通过 SSH 和 GUI 使用 LDAP 用户/密码登录。