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

OpenVPN auth-ldap не может найти пользователя в группе, но ldapsearch может его найти

Я могу без проблем искать пользователя:

ldapsearch -h ldap.my.server.name -b "cn=vpnusers,ou=groups,dc=example,dc=com" -x "memberUid=myusername"

Полученные результаты:

# extended LDIF
#
# LDAPv3
# base <cn=vpnusers,ou=groups,dc=example,dc=com> with scope subtree
# filter: memberUid=myusername
# requesting: ALL
#

# vpnusers, groups, example.com
dn: cn=vpnusers,ou=groups,dc=example,dc=com
gidNumber: 10000
description: Group account
cn: vpnusers
objectClass: posixGroup
memberUid: myusername
memberUid: someuser

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Итак, я знаю, что запись есть и доступна для поиска. Однако теперь я пытаюсь найти эту группу с помощью openvpn, используя auth-ldap плагин

Вот мой auth-ldap.conf, отлично работает (когда RequireGroup знак равно false:

<LDAP>
        URL             ldap://ldap.my.server.name
        Timeout         10
        TLSEnable       yes
        FollowReferrals yes
</LDAP>

<Authorization>
        BaseDN          "ou=users,dc=example,dc=com"
        SearchFilter    "(uid=%u)"
        RequireGroup    false
                <Group>
                        BaseDN  "ou=groups,dc=example,dc=com"
                        SearchFilter "cn=vpnusers"
                        MemberAttribute memberUid
                </Group>
</Authorization>

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

<LDAP>
        URL             ldap://ldap.my.server.name
        Timeout         10
        TLSEnable       yes
        FollowReferrals yes
</LDAP>

<Authorization>
        BaseDN          "ou=users,dc=example,dc=com"
        SearchFilter    "(uid=%u)"
        RequireGroup    true
                <Group>
                        BaseDN  "ou=groups,dc=example,dc=com"
                        SearchFilter "cn=vpnusers"
                        MemberAttribute memberUid
                </Group>
</Authorization>

Ошибка, которую выдает сервер openvpn:

Dec  6 18:54:37 openvpn01 openvpn: Thu Dec  6 18:54:37 2018 47.153.170.228:1194 PLUGIN_CALL: POST /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so/PLUGIN_AUTH_USER_PASS_VERIFY status=1
Dec  6 18:54:37 openvpn01 openvpn: Thu Dec  6 18:54:37 2018 47.153.170.228:1194 PLUGIN_CALL: plugin function PLUGIN_AUTH_USER_PASS_VERIFY failed with status 1: /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so
Dec  6 18:54:37 openvpn01 openvpn: Thu Dec  6 18:54:37 2018 47.153.170.228:1194 TLS Auth Error: Auth Username/Password verification failed for peer

Работает нормально, если я не использую RequireGroup вариант, поэтому я предполагаю, что мой MemberAttribute или SearchFilter неправильно. Любые идеи? Кто-нибудь раньше сталкивался с этой проблемой?

Недавно я столкнулся с той же проблемой, пытаясь использовать службу JumpCloud LDAP. Для меня сработало заключить фильтр поиска в скобки:

searchFilter "(cn=vpnusers)"