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>