openvpn LDAP-аутентификация с группой

У меня установлен openvpn на ubuntu 19.04, и я использую плагин "openvpn-auth-ldap.so" для аутентификации, я могу аутентифицировать пользователей из организационного подразделения в моем активном каталоге на сервере Windows 2012, но пытаясь дополнительно ограничить доступ только к одному группа не возможна. Конфигурация, используемая в archvo: "auth-ldap.conf", выглядит следующим образом:

<Authorization>
        BaseDN          "OU=<MyOUWhereisMyGroupWithVPNUsers>,DC=<mydomain>,DC=<local>"
        SearchFilter    "(CN=%u)"
        RequireGroup    true
        <Group>
                BaseDN  "OU=<MyOUWhereisMyGroupWithVPNUsers>,DC=<mydomain>,DC=<local>"
                SearchFilter  "(&(objectClass=top;group)(memberOf=CN=<NameofMyGroupVPNUsers> ,OU=<MyOUWhereisMyGroupWithVPNUsers>,DC=mydomain,DC=local))"
                MemberAttribute uniqueMember
        </Group>
</Authorization>

Любая идея, как должна идти эта конфигурация. Я просто хочу, чтобы группа, определенная в моем Active Directory, имела доступ к моему серверу OpenVPN, а не ко всему OU.

2 ответа

Решение

Я думаю, вы неправильно поняли, как работает конфигурация ldap.

Первый раздел позволяет искать пользователей, второй позволяет дополнительно фильтровать пользователей на основе членства в группе.

Таким образом, вы должны иметь возможность делать то, что хотите, с любой из этих двух конфигураций:

<Authorization>
        BaseDN          "OU=<where_users_accounts_are>,DC=<mydomain>,DC=<local>"
        SearchFilter    "(&(samaccountname=%u)(memberOf=<DN_of_the_group>))"
        RequireGroup    false
</Authorization>

или

<Authorization>
        BaseDN          "OU=<where_users_accounts_are>,DC=<mydomain>,DC=<local>"
        SearchFilter    "(samaccountname=%u)"
        RequireGroup    true
        <Group>
                BaseDN  "<FULL DN OF YOUR GROUP>"
                SearchFilter  "(objectClass=group)"
                MemberAttribute uniqueMember
        </Group>
</Authorization>

Если второй не работает, попробуйте вот так:

<Authorization>
        BaseDN          "OU=<where_users_accounts_are>,DC=<mydomain>,DC=<local>"
        SearchFilter    "(samaccountname=%u)"
        RequireGroup    true
        <Group>
                BaseDN  "OU=<where_group_vpn_is>,DC=<mydomain>,DC=<local>"
                SearchFilter  "(&(objectClass=group)(cn=<CN_OF_THE_GROUP>))"
                MemberAttribute uniqueMember
        </Group>
</Authorization>

Проблема была в подключении к ldap, мне пришлось указать порт 3268, а не порт по умолчанию.

Полный файл выглядит так:

<LDAP>
       
        URL             ldap://myip:3268
        BindDN "CN=myuser,OU=MyOU,DC=my,DC=domain"    
        Password        myuserpass       
        Timeout        30       
        TLSEnable       no
        FollowReferrals yes
</LDAP>

<Authorization>
        BaseDN "DC=my,DC=domain"
        SearchFilter "(&(sAMAccountName=%u)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"
        RequireGroup    true
        <Group>
                BaseDN "OU=MyOU,DC=my,DC=domain"
                SearchFilter "(cn=NameofGroupwithAccess)"
                MemberAttribute        "member"
        </Group>
</Authorization>
Другие вопросы по тегам