Назад | Перейти на главную страницу

Настройка pam_groupdn в RHEL 5.8 LDAP

У меня есть LDAP-сервер, который я хочу использовать для аутентификации пользователей на моем сервере Red Hat Enterprise Linux 5.8. У меня работает соединение с LDAP-сервером, и я могу войти на Linux-сервер с помощью «имени пользователя» пользователя LDAP.

Теперь я хочу, чтобы только пользователи из одной группы LDAP могли войти на мой сервер RHEL. Я попытался сделать это, настроив в /etc/ldap.conf:

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

Когда я пытаюсь войти в систему после настройки, я получаю следующее сообщение:

«Вы должны быть AppRoles cn = RW, ou = ApplRoles, ou = App, ou = Applications, 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 выглядят следующим образом (сбрасываются tcpdump на Linux-сервере):

Запрос (из дампа 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

Итак, администратор LDAP сказал, что я должен попытаться изменить "assertionValue" только на "cn = username".

Есть у кого-нибудь идея как изменить это значение? Или есть другие варианты ограничения доступа к моему серверу для пользователей группы LDAP?

Мне удалось решить проблему, установив 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

Пароль будет передан на сервер LDAP только как новый запрос bindRequest, если пользовательский фильтр и pam_filter вернут атрибуты. Таким образом, пользователь должен быть в этой группе, чтобы иметь возможность проверять учетные данные.