我们上一篇你文章介绍了Centos7+openvpn使用本地用户和密码验证登陆的配置介绍,今天我们介绍Centos7+Openvpn使用Windows AD验证登陆,具体就不多介绍了,今天还是使用的是上一节安装的配置环境,对于今天的环境介绍,我们只是简单的修改即可
我们要使用Centos7+Openvpn使用Windows AD验证登陆,所以需要准备一条windows AD,其实说到windows AD,对于很多企业都在使用,看网上的很多文档都是使用的是openldap在做验证,但是对于大企业及一般企业来说,环境内都会有windows AD环境,所以跟windows AD集成起来相对还是比较方便管理用户的,具体见下:
环境介绍:
Hostname:DC
IP:192.168.5.10
Role:AD、DNS、CA
DomainName:ixmsoft.com
Hostname:OPenvpn
IP:192.168.5.20
Role:Openvpn
Hostname:Client
IP:192.168.5.23
Role:openvpn client
以下为我的AD配置信息
我们新建了一个OU:IXMSOFTLDAP,然后在找个OU下我们创建了一些测试用户和使用OPenvpn来验证的usergroup,我们后面会将用户a、zs、添加到这组里面,只要是这个组的用户都可以使用openvpn
[root@openvpnopenvpn]#cat/etc/yum.repos.d/epel.repo
[epel] name=aliyunepel baseurl= http://mirrors.aliyun.com/epel/7Server/x86_64/ gpgcheck=0
[root@openvpn openvpn]#
yuminstallopenvpn-auth-ldap-y
cd/etc/openvpn/auth/
vimldap.conf
查看默认的配置文件内容
<LDAP> #LDAPserverURL URLldap://ldap1.example.org #BindDN(IfyourLDAPserverdoesn'tsupportanonymousbinds) #BindDNuid=Manager,ou=People,dc=example,dc=com #BindPassword #PasswordSecretPassword #Networktimeout(inseconds) Timeout15 #EnableStartTLS TLSEnableyes #FollowLDAPReferrals(anonymously) FollowReferralsyes #TLSCACertificateFile TLSCACertFile/usr/local/etc/ssl/ca.pem #TLSCACertificateDirectory TLSCACertDir/etc/ssl/certs #ClientCertificateandkey #IfTLSclientauthenticationisrequired TLSCertFile/usr/local/etc/ssl/client-cert.pem TLSKeyFile/usr/local/etc/ssl/client-key.pem #CipherSuite #Thedefaultsareusuallyfinehere #TLSCipherSuiteALL:!ADH:@STRENGTH </LDAP> <Authorization> #BaseDN BaseDN"ou=People,dc=com" #UserSearchFilter SearchFilter"(&(uid=%u)(accountStatus=active))" #RequireGroupMembership RequireGroupfalse #Addnon-groupmemberstoaPFtable(disabled) #PFTableips_vpn_users <Group> BaseDN"ou=Groups,dc=com" SearchFilter"(|(cn=developers)(cn=artists))" MemberAttributeuniqueMember #AddgroupmemberstoaPFtable(disabled) #PFTableips_vpn_eng </Group> </Authorization>
cpldap.confldap.conf.bak
echo>ldap.conf
然后粘贴以下内容
<LDAP> #LDAPserverURL #更改为AD服务器的ip URLldap://192.168.5.10 #BindDN(IfyourLDAPserverdoesn'tsupportanonymousbinds) #BindDNuid=Manager,dc=com #更改为域管理的dn,可以通过ldapsearch进行查询,-h的ip替换为服务器ip,-d换为管理员的dn,-b为基础的查询dn,*为所有 #ldapsearch-LLL-x-h172.16.76.238-D"administrator@xx.com"-W-b"dc=xx,dc=com""*" BindDN"CN=Administrator,CN=Users,DC=ixmsoft,DC=com" #BindPassword #PasswordSecretPassword #域管理员的密码 Password123 #Networktimeout(inseconds) Timeout15 #EnableStartTLS TLSEnableno #FollowLDAPReferrals(anonymously) #FollowReferralsyes #TLSCACertificateFile #TLSCACertFileca.crt #TLSCACertificateDirectory #TLSCACertDir/etc/ssl/certs #ClientCertificateandkey #IfTLSclientauthenticationisrequired #TLSCertFile/usr/local/etc/ssl/client-cert.pem #TLSKeyFile/usr/local/etc/ssl/client-key.pem #CipherSuite #Thedefaultsareusuallyfinehere #TLSCipherSuiteALL:!ADH:@STRENGTH </LDAP> <Authorization> #BaseDN #查询认证的基础dn BaseDN"OU=IXMSOFTLDAP,DC=com" #UserSearchFilter #SearchFilter"(&(uid=%u)(accountStatus=active))" #其中sAMAccountName=%u的意思是把sAMAccountName的字段取值为用户名,后面“memberof=CN=myvpn,DC=xx,DC=com”指向要认证的vpn用户组,这样任何用户使用vpn,只要加入这个组就好了 #SearchFilter"(&(sAMAccountName=%u)(memberof=CN=myvpn,OU=IXMSOFTLDAP,DC=com)" SearchFilter"(&(sAMAccountName=%u))" #RequireGroupMembership RequireGroupfalse #Addnon-groupmemberstoaPFtable(disabled) #PFTableips_vpn_users <Group> #BaseDN"ou=Groups,dc=com" #SearchFilter"(|(cn=developers)(cn=artists))" #MemberAttributeuniqueMember #AddgroupmemberstoaPFtable(disabled) #PFTableips_vpn_eng BaseDN"OU=IXMSOFTLDAP,DC=com" SearchFilter"(|(cn=myvpn))" MemberAttribute"member" </Group> </Authorization>
保存退出后,我们还需要修改openvpn的配置文件,