OpenVPN服务端集成OpenLDAP认证,目地是能够方便维护各系统的账户,当有人员或权限变动时我们只需要在OpenLDAP上为用户添加到相应的分组,便能实现各个系统对用户的权限控制。
一、OpenLDAP权限分组
这里为了测试登录权限,只允许openvpn
分组下的dev1
和ops1
用户登录。
LDAP group需要使用
groupOfUniqueNames
用户组属性,请参考前面的文章进行配置
二、OpenVPN服务端配置
2.1 安装openvpn-auth-ldap
从yum源安装openvpn-auth-ldap
1 | [root@centos7 openvpn]# yum -y install epel-release |
安装完后会生成 /etc/openvpn/auth/ldap.conf 文件
2.2 配置ldap.conf
备份原先的配置文件
1 | [root@centos7 openvpn]# cp /etc/openvpn/auth/ldap.conf /etc/openvpn/auth/ldap.conf.bak |
编辑ldap.conf
1 | [root@centos7 openvpn]# cat auth/ldap.conf |
上面的ldap.conf中如果设置
RequireGroup true
以及Group的配置实际我们期望必须是LDAP中的名称为openvpn
组下的用户才可以登录VPN。
2.3 配置OpenVPN服务端
编辑server.conf
文件,添加如下2行配置
1 | [root@centos7 openvpn]# vim server.conf |
- 使用了上面安装的
openvpn-auth-ldap
认证插件client-cert-not-requir
不再需要客户端证书,将改为使用OpenLDAP中的用户认证
配置好后重启openvpn服务端
三、客户端配置
3.1 客户端配置
1 | [root@centos7 client]# cat client.conf |
- 上面的配置注释掉了
;cert client.crt
和;key client.key
不再需要客户端证书client.crt和秘钥client.keyns-cert-type server
和auth-user-pass
是新加入的配置开启了用户名密码认证
3.2 客户端连接测试
当使用dev1登录时,用户在openvpn组里,可以成功登录
当使用dev2登录时,用户不在openvpn组里,便会登录失败