我在我的红帽企业Linux 5.8服务器上有一个给定的用于身份validation的LDAP服务器。 我得到了连接到LDAP服务器的工作,我能够通过LDAP用户“用户名”login到Linux服务器。
现在我希望只有来自一个LDAP组的用户才能login到我的RHEL服务器。 我尝试通过在/etc/ldap.confconfiguration以下内容来完成此操作:
pam_groupdn cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=sbb,dc=CH pam_member_attribute AppRoles
当我尝试login后configuration这个我得到以下消息:
“您必须是cn = RW的AppRoles,ou = ApplRoles,ou = App,ou =应用程序,dc = sbb,dc = CH”。
但是,当我浏览LDAP服务器时,我发现用户是这个组的一部分:
# ldapsearch -h ldapi.company.ch -D cn=binduser,ou=Administrators,dc=company,dc=CH -w bindpw -b dc=company,dc=ch -x "(cn=username)" AppRoles companyAppRoles: cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=company,dc=CH
请求和答案在Wireshark中看起来像这样(由Linux服务器上的tcpdump转储):
请求(来自Wireshark转储):
LDAPMessage compareRequest(5) "cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=company,dc=CH" messageID: 5 protocolOp: compareRequest (14) compareRequest entry: cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=company,dc=CH ava attributeDesc: AppRoles assertionValue: cn=username,ou=OU,dc=company,dc=CH
答(从Wireshark转储):
LDAPMessage compareResponse(5) noSuchObject ([DSA]:No such object:cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=company,dc=CH) messageID: 5 protocolOp: compareResponse (15) compareResponse resultCode: noSuchObject (32) matchedDN: ou=Applications,dc=company,dc=CH errorMessage: [DSA]:No such object:cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=company,dc=CH
所以LDAPpipe理员说,我应该尝试将“assertionValue”更改为“cn = username”。
有没有人有一个想法如何改变这个价值? 还是有其他选项来限制访问我的服务器到LDAP组的用户?
我可以通过在/etc/ldap.conf设置pam_filter来解决这个问题:
# Filter to AND with uid=%s pam_filter AppRoles=cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=company,dc=CH
如果用户Filter和pam_filter将返回属性,则密码将仅作为新的bindRequest发送到LDAP服务器。 所以用户必须在这个组中才能够检查证书。