OpenLDAP 介绍及安装部署实战
ldap 介绍
OpenLDAP 是由 OpenLDAP 项目开发的轻量级目录访问协议的开源实现。LDAP 是一种互联网协议,电子邮件和其他程序用于从服务器查找联系人信息。它在 OpenLDAP 公共许可证下发布;它适用于所有主要的 Linux 发行版、AIX、Android、HP-UX、OS X、Solaris、Windows 和 z/OS。
它在某些方面的功能类似于关系数据库,可用于存储任何信息。LDAP 不限于存储信息;它还用作“单点登录”的后端数据库,其中用户的一个密码在许多服务之间共享。
在本教程中,我们将为集中登录配置 OpenLDAP,其中用户使用单个帐户登录多个服务器。
测试环境
主机名 | IP | 操作系统 | 角色 |
---|---|---|---|
elk02.lavenliu.com | 192.168.6.35 | CentOS 7 64位 | LDAP server |
elk03.lavenliu.com | 192.168.6.36 | CentOS 7 64位 | LDAP client |
两台机器的 /etc/hosts 文件要能够解析对方:
[root@elk02 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.6.46 ansibile.lavenliu.com ansible
192.168.6.25 elk01.lavenliu.com elk01
192.168.6.35 elk02.lavenliu.com elk02
192.168.6.36 elk03.lavenliu.com elk03
192.168.6.165 elk04.lavenliu.com elk04
[root@elk03 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.6.46 ansibile.lavenliu.com ansible
192.168.6.25 elk01.lavenliu.com elk01
192.168.6.35 elk02.lavenliu.com elk02
192.168.6.36 elk03.lavenliu.com elk03
192.168.6.165 elk04.lavenliu.com elk04
如果我们想使用域名而非IP地址的话,那么我们就要配置DNS服务了。本文将在配置文件中使用IP地址。
安装 LDAP 服务端
在服务端安装如下软件包:
yum -y install openldap \
compat-openldap openldap-clients \
openldap-servers openldap-servers-sql \
openldap-devel
安装完毕,启动LDAP服务并加入开机自启动:
[root@elk02 ~]# systemctl start slapd.service
[root@elk02 ~]# systemctl enable slapd.service
验证服务是否启动成功:
[root@elk02 ~]# netstat -antup |grep 389
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 2984/slapd
tcp6 0 0 :::389 :::* LISTEN 2984/slapd
设置 LDAP 的 root 密码
运行以下命令以创建LDAP根密码;我们将在整个文章中使用此根密码。所以记下这一点,并把它放在一边。
[root@elk02 ~]# slappasswd
New password: 123456
Re-enter new password: 123456
{
SSHA}gf3vwkGq/ykoX4qhFVuGTa3PgpzAXQsc
配置 LDAP 服务端
OpenLDAP 服务器配置文件可以在 /etc/openldap/slapd.d/ 中找到。首先配置 LDAP,我们需要更新变量 “olcSuffix” 和 “olcRootDN”。
- olcSuffix: 数据库后缀,它是 LDAP 服务器提供信息的域名。简而言之,它应该更改为我们的域名。
- olcRootDN: 拥有不受限制访问权限以在LDAP上执行所有管理活动的用户的根杰出名称(DN)条目,如根用户。
- olcRootPW: 上述RootDN的密码。
上述条目将在/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif文件中更新。不建议手动编辑LDAP配置,因为每当您运行ldapmodify命令时,您都会丢失更改。
[root@elk02 ~]# cd /etc/openldap/slapd.d/cn=config
[root@elk02 cn=config]# vim db.ldif
[root@elk02 cn=config]# cat >> db.ldif <<EOF
dn: olcDatabase={
2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=lavenliu,dc=com
dn: olcDatabase={
2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=lavenliu,dc=com
dn: olcDatabase={
2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {
SSHA}gf3vwkGq/ykoX4qhFVuGTa3PgpzAXQsc
EOF
[root@elk02 cn=config]# ldapmodify -Y EXTERNAL \
-H ldapi:/// \
-f db.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber