我已经在 ubuntu 18.04 上用 back-sql 配置了 openldap,但无法在客户端计算机 (centos 7) 上使用 ldapusers 登录。我可以使用ldap搜索命令在客户端计算机上,但登录没有发生。登录时出现“用户不存在”错误。
请查看 ldapsearch 命令的以下输出。
[root@ldapclient ~]# ldapsearch -x -b "dc=mobilewaretech,dc=com"
# extended LDIF
#
# LDAPv3
# base <dc=mobilewaretech,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# mrugesh, mobilewaretech.com
dn: cn=mrugesh,dc=mobilewaretech,dc=com
objectClass: inetOrgPerson
seeAlso: documentTitle=book1,dc=mobilewaretech,dc=com
seeAlso: documentTitle=book2,dc=mobilewaretech,dc=com
givenName: mrugesh
userPassword:: cXdlcnR5MTIz
telephoneNumber: 222-3234
telephoneNumber: 332-2334
# amey, mobilewaretech.com
dn: cn=amey,dc=mobilewaretech,dc=com
objectClass: inetOrgPerson
seeAlso: documentTitle=book1,dc=mobilewaretech,dc=com
givenName: amey
userPassword:: YW1leQ==
telephoneNumber: 545-4563
# Kishor Toraskar, mobilewaretech.com
dn: cn=Kishor Toraskar,dc=mobilewaretech,dc=com
objectClass: inetOrgPerson
objectClass: pkiUser
cn: Kishor Toraskar
sn: Toraskar
givenName: Kishor
userCertificate;binary:: MIIDazCCAtSgAwIBAgIBAjANBgkqhkiG9w0BAQQFADB3MQswCQYDV
QQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEfMB0GA1UEChMWT3BlbkxEQVAgRXhhbXBsZSwgTH
RkLjETMBEGA1UEAxMKRXhhbXBsZSBDQTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhc
NMDMxMDE3MTYzMzE5WhcNMDQxMDE2MTYzMzE5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2Fs
aWZvcm5pYTEfMB0GA1UEChMWT3BlbkxEQVAgRXhhbXBsZSwgTHRkLjEYMBYGA1UEAxMPVXJzdWxhI
EhhbXBzdGVyMR8wHQYJKoZIhvcNAQkBFhB1aGFtQGV4YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQ
UAA4GNADCBiQKBgQDuxgp5ELV9LmhxWMpV7qc4028QQT3+zzFDXhruuXE7ji2n3S3ea8bOwDtJh+q
nsDe561DhHHHlgIjMKCiDEizYMpxvJPYEXmvp0huRkMgpKZgmel95BSkt6TYmJ0erS3aoimOHLEFi
mmnTLolNRMiWqNBvqwobx940PGwUWEePKQIDAQABo4H/MIH8MAkGA1UdEwQCMAAwLAYJYIZIAYb4Q
gENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSjI94TbBmuDEeUUO
iC37EK0Uf0XjCBoQYDVR0jBIGZMIGWgBRLbyEaNiTSkPlDsFNHLX3hwOaYI6F7pHkwdzELMAkGA1U
EBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExHzAdBgNVBAoTFk9wZW5MREFQIEV4YW1wbGUsIEx0
ZC4xEzARBgNVBAMTCkV4YW1wbGUgQ0ExHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tggEAM
A0GCSqGSIb3DQEBBAUAA4GBAIgUcARb3OlWYNbmr1nmqESuxLn16uqI1Ot6WkcICvpkdQ+Bo+R9AP
05xpoXocZtKdNvBu3FNxB/jFkiOcLU2lX7Px1Ijnsjh60qVRy9HOsHCungIKlGcnXLKHmKu0y//5j
ds/HnaJsGcHI5JRG7CBJbW+wrwge3trJ1xHJI8prN
# book1, mobilewaretech.com
dn: documentTitle=book1,dc=mobilewaretech,dc=com
objectClass: document
description: abstract1
documentTitle: book1
documentAuthor: cn=amey,dc=mobilewaretech,dc=com
documentAuthor: cn=mrugesh,dc=mobilewaretech,dc=com
documentIdentifier: document 1
# book2, mobilewaretech.com
dn: documentTitle=book2,dc=mobilewaretech,dc=com
objectClass: document
description: abstract2
documentTitle: book2
documentAuthor: cn=mrugesh,dc=mobilewaretech,dc=com
documentIdentifier: document 2
# mobilewaretech.com
dn: dc=mobilewaretech,dc=com
objectClass: organization
objectClass: dcObject
o: Mobileware
dc: mobileware
# search reference
ref: ldap://localhost:389/dc=mobilewaretech,dc=com??sub
# search result
search: 2
result: 0 Success
# numResponses: 8
# numEntries: 6
# numReferences: 1
我已经提到了https://gist.github.com/mahirrudin/9b7754e54f1e8e532049484864beba42使用 back-sql 配置 openldap 服务器的 URL。这是我的客户端计算机上的 nsswitch.conf 文件。
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Valid entries include:
#
# nisplus Use NIS+ (NIS version 3)
# nis Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the local database (.db) files
# compat Use NIS on compat mode
# hesiod Use Hesiod for user lookups
# [NOTFOUND=return] Stop searching if not found so far
#
# To use db, put the "db" in front of "files" for entries you want to be
# looked up first in the databases
#
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis
passwd: mysql files sss
shadow: mysql files sss
group: mysql files sss
#initgroups: files sss
#hosts: db files nisplus nis dns
hosts: files dns myhostname
# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss
publickey: nisplus
automount: files sss
aliases: files nisplus
请找到 nslcd.conf 文件。
这是 LDAP 名称服务的配置文件
switch 库的 nslcd 守护进程。它配置映射
NSS 名称(参见 /etc/nsswitch.conf)和 LDAP 之间
目录中的信息。
有关更多信息,请参阅手册页 nslcd.conf(5)。
应该以用户和组 nslcd 的身份运行。
uid nslcd gid ldap
指向用于名称查找的 LDAP 服务器的 uri。
可以指定多个条目。使用的地址
这里应该无需使用 LDAP 即可解决(显然)。
uri ldap://127.0.0.1/
uri ldaps://127.0.0.1/
uri ldapi://%2fvar%2frun%2fldapi_sock/
注意:%2f 对用作目录分隔符的“/”进行编码
uri ldap://192.168.0.227:389/
要使用的 LDAP 版本(默认为 3
如果客户端库支持)
ldap_version 3
搜索基础的可分辨名称。
基地 dc=mobilewaretech,dc=com
绑定到服务器的专有名称。
可选:默认是匿名绑定。
binddn cn = 代理用户,dc = 示例,dc = com
要绑定的凭证。
可选:默认无凭证。
请注意,如果您设置了 bindpw,则应该检查此文件的权限。
bindpw 秘密
由 root 执行密码修改的专有名称。
rootpwmoddn cn=admin,dc=example,dc=com
默认的搜索范围。
范围子
范围一
范围基础
定制某些数据库查找。
基本组 ou=Groups,dc=example,dc=com
基本密码 ou=People,dc=example,dc=com
基本影子 ou=People,dc=example,dc=com
范围组一级
范围主机子
绑定/连接时间限制。
绑定时间限制 30
搜索时间限制。
时限 30
空闲时间限制。如果
已在指定秒数内未联系服务器。
空闲时间限制 3600
使用 StartTLS 而不验证服务器证书。
ssl start_tls
tls_reqcert 永不
用于服务器证书验证的 CA 证书
tls_cacertdir /etc/ssl/certs
tls_cacert文件 /etc/ssl/ca.cert
如果没有提供 /dev/urandom,则为 PRNG 提供种子
tls_randfile /var/run/egd 池
SSL 密码套件
请参阅 man ciphers 了解语法
tls_ciphers TLSv1
客户端证书和密钥
如果您的服务器需要客户端身份验证,请使用这些。
tls_cert
tls_key
UNIX 3.5 服务的映射
过滤密码(objectClass=User)
映射密码 uid msSFU30Name
映射密码用户密码 msSFU30密码
映射密码主目录 msSFU30HomeDirectory
映射密码主目录 msSFUHomeDirectory
过滤阴影(objectClass=User)
映射阴影 uid msSFU30Name
映射影子用户密码 msSFU30Password
过滤器组(objectClass=Group)
映射组成员 msSFU30PosixMember
UNIX 2.0 服务的映射
过滤密码(objectClass=User)
映射密码 uid msSFUName
map passwd 用户密码 msSFU密码
映射密码主目录 msSFUHomeDirectory
映射密码 gecos msSFUName
过滤阴影(objectClass=User)
映射阴影 uid msSFUName
映射影子用户密码 msSFUPassword
地图阴影 shadowLastChange 密码LastSet
过滤器组(objectClass=Group)
映射组成员 posixMember
Active Directory 映射
页面大小 1000
推荐关闭
空闲时间限制 800
过滤密码 (&(objectClass=user)(!(objectClass=computer))(uidNumber=)(unix主目录=))
映射密码 uid sAMAccountName
映射密码主目录 unixHomeDirectory
地图密码 gecos 显示名称
过滤阴影 (&(objectClass=user)(!(objectClass=computer))(uidNumber=)(unix主目录=))
映射影子 uid sAMAccountName
地图阴影 shadowLastChange 密码LastSet
过滤器组(objectClass=group)
Active Directory 的替代映射
(将 objectSid 映射中的 SID 替换为您的域的值)
页面大小 1000
推荐关闭
空闲时间限制 800
过滤密码 (&(objectClass=user)(objectClass=person)(!(objectClass=computer)))
映射 密码 uid cn
映射密码 uidNumber objectSid:S-1-5-21-3623811015-3361044348-30300820
映射密码 gidNumber objectSid:S-1-5-21-3623811015-3361044348-30300820
map passwd homeDirectory "/home/$cn"
地图密码 gecos 显示名称
映射密码登录Shell“/ bin / bash”
过滤组 (|(objectClass=group)(objectClass=person))
映射组 gidNumber objectSid:S-1-5-21-3623811015-3361044348-30300820
AIX SecureWay 的映射
过滤密码(objectClass=aixAccount)
映射密码 uid 用户名
map passwd 用户密码 passwordChar
映射密码 uidNumber uid
map 密码 gid编号 gid
过滤器组(objectClass=aixAccessGroup)
映射组 cn 组名
映射组 gidNumber gid
此注释可防止重复自动迁移设置。
ssl 没有 tls_cacertdir /etc/openldap/cacerts
答案1
这些用户缺少登录所需的必要字段。
uidNumber:
gidNumber:
loginShell:
homeDirectory:
userPassword:
此属性是 的标准部分objectClass: posixAccount
。
此外,您应该查看您的/etc/nsswitch.conf
原样,它可能没有 ldap 作为源。