使用组的 openvpn LDAP 身份验证
openvpn LDAP authentication with Group
我在 ubuntu 19.04 上安装了 openvpn,我正在使用插件“openvpn-auth-ldap.so”进行身份验证,我可以从 windows server 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 目录中定义的组能够访问我的 OpenVPN 服务器,而不是整个 OU。
我认为您误解了 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>
我在 ubuntu 19.04 上安装了 openvpn,我正在使用插件“openvpn-auth-ldap.so”进行身份验证,我可以从 windows server 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 目录中定义的组能够访问我的 OpenVPN 服务器,而不是整个 OU。
我认为您误解了 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>