openvpn配置ldap

        企业内一般都有ldap,基本上所有的系统都支持ldap登录,openvpn也不例外,使用ldap认证登录好处是员工可以使用一个账号就可以进行登录,不需要去记录N个账号密码。

安装 openvpn-auth-ldap 插件

1
yum -y install epel-release && yum -y install openvpn-auth-ldap

        安装完成后,在目录 /usr/lib64/openvpn/plugin/lib/ 会出现 openvpn-auth-ldap.so 文件。在目录 /etc/openvpn 目录下自动生成 auth 目录,该目录里面存在 ldap.conf ,用于配置 LDAP 相关信息。

配置 LDAP 相关信息

备份原先的配置文件

1
cp /etc/openvpn/auth/ldap.conf /etc/openvpn/auth/ldap.conf.bak

编辑ldap.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
vim /etc/openvpn/auth/ldap.conf
<LDAP>
URL ldap://xx.xx.xx.xx:389
Password 123456
Timeout 15
TLSEnable no
FollowReferrals no
</LDAP>
<Authorization>
BaseDN "ou=People,dc=xxlaila,dc=cn"
SearchFilter "uid=%u"
RequireGroup false
</Authorization>

编辑 openvpn 的配置文件

1
2
3
4
5
6
# 增加如下内容
vim /etc/openvpn/server.conf

plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf"
client-cert-not-required
username-as-common-name

使用了上面安装的 openvpn-auth-ldap 认证插件,client-cert-not-required 表示不再需要客户端证书,将改为使用 LDAP 中的用户认证。

重新启动 OpenVPN 服务

1
systemctl restart openvpn@server

客户端配置修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
client
dev tun
proto tcp
remote xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun

ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC

ns-cert-type server # 增加此行
auth-user-pass # 增加此行,开启 "用户名/密码" 认证

comp-lzo
verb 3

注释:

  • 看到一些文档说开启ldap以后需要注释cert client.crtkey client.key,因为配置了 LDAP 不再需要客户端证书和密钥,但是在实际应用中,只要添加了auth-user-pass,不注释该两行也是可行的。因为在连接的时候就会提示输入账号和密码,否则不过。
坚持原创技术分享,您的支持将鼓励我继续创作!
0%