RHEL 5.8 LDAP pam_groupdn 定制

RHEL 5.8 LDAP pam_groupdn 定制

我有一个给定的 LDAP 服务器,我想使用它在我的 Red Hat Enterprise Linux 5.8 服务器上进行用户身份验证。我已与 LDAP 服务器建立连接,并且能够通过 LDAP 用户“用户名”登录 Linux 服务器。

现在我希望只有来自一个 LDAP 组的用户才能登录到我的 RHEL 服务器。我尝试通过配置以下内容来实现此目的/etc/ldap.conf

pam_groupdn cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=sbb,dc=CH
pam_member_attribute AppRoles

当我配置完后尝试登录时收到以下消息:

“您必须是 cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=sbb,dc=CH 的 AppRoles”。

但是当我浏览 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 Dump):

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

因此 LDAP 管理员说,我应该尝试将“assertionValue”仅更改为“cn=username”。

有人知道如何更改此值吗?或者是否有其他选项可以将对我的服务器的访问限制为 LDAP 组的用户?

答案1

我能够通过设置pam_filter来解决问题/etc/ldap.conf

# Filter to AND with uid=%s
pam_filter AppRoles=cn=RW,ou=ApplRoles,ou=App,ou=Applications,dc=company,dc=CH

如果用户过滤器和 pam_filter 返回属性,则密码将仅作为新的 bindRequest 传输到 LDAP 服务器。因此,用户必须属于此组才能检查凭据。

相关内容