OpenLDAP 内容概述与使用yum安装部署

1.本章内容概述

我们主要以centos7.5 为基础系统进行讲解,包括服务端的安装以及客户端,centos6系列的没有涉及,如
果您需要在centos6上进行安装客户端,得需要您自行研究了。

目前主要安装方式有两种,一种是通过源码编译安装,一种是在线rpm安装,两种都有优缺点。

1.1源码编译安装:

1.2在线rpm安装:

后面会以yum 安装为主。
1.3 常用的属性名如下:
openlda:                                           OpenLDAP服务端和客户端用的库文件
openldap-servers:                         服务端程序
openldap-clients:                          客户端程序
openldap-devel:                            开发包,可选
openldap-servers-sql:                 支持sql模块,可选
migrationtools:                              实现OpenLDAP用户及用户组的添加,导入系统账户,可选
compat-openldap:                        OpenLDAP 兼容性库

2.初始化准备,配置yum源

yum -y install wget
mkdir /etc/yum.repos.d.bak
/bin/mv  /etc/yum.repos.d/* /etc/yum.repos.d.bak
wget -O /etc/yum.repos.d/aliyun-centos7-base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/aliyun-centos7-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

3.安装OpenLDAP

yum -y install openldap \
compat-openldap \
openldap-clients \
openldap-servers \
openldap-servers-sql \
openldap-devel migrationtools \
yum clean all && yum makecache

查看OpenLDAP版本,使用如下命令:

slapd -VV

查看OpenLDAP版本

4.配置OpenLDAP
OpenLDAP安装完毕后,接下来我们开始配置OpenLDAP,OpenLDAP配置比较复杂牵涉到的内容比较多,接下来我们一步一步对其相关的配置进行介绍。
注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,建议不再使用slapd.conf作为配置文件。
生成openldap的管理加密密钥(记下来,下面将用到)

slappasswd -s fooher.com
Re-enter new password: 
{SSHA}0yaWMzjeuDBghcqsp2kg6xA+AfAG6SSQ

复制 slapd.ldif 到 /etc/openldap 下面

/bin/cp /usr/share/openldap-servers/slapd.ldif /etc/openldap

在第83行左右 corba.ldif 下面添加以下内容:

vim /etc/openldap/slapd.ldif
include: file:///etc/openldap/schema/collective.ldif
include: file:///etc/openldap/schema/corba.ldif
include: file:///etc/openldap/schema/cosine.ldif
include: file:///etc/openldap/schema/duaconf.ldif
include: file:///etc/openldap/schema/dyngroup.ldif
include: file:///etc/openldap/schema/inetorgperson.ldif
include: file:///etc/openldap/schema/java.ldif
include: file:///etc/openldap/schema/misc.ldif
include: file:///etc/openldap/schema/nis.ldif
include: file:///etc/openldap/schema/openldap.ldif
include: file:///etc/openldap/schema/pmi.ldif
include: file:///etc/openldap/schema/ppolicy.ldif

5.或者使用 Schemas 命令导入

ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/ppolicy.ldif

6.修改 slapd.ldif文件 Server status monitoring 下面相关内容,在139行
vim /etc/openldap/slapd.ldif

olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by
 dn.base="cn=fooheradmin,dc=fooher,dc=com" read by * none

7.修改 Backend database definitions 下面为以下内容,在149行
vim /etc/openldap/slapd.ldif

olcSuffix: dc=fooher,dc=com
olcRootDN: cn=fooheradmin,dc=fooher,dc=com
olcRootPW: {SSHA}0yaWMzjeuDBghcqsp2kg6xA+AfAG6SSQ

8.查看配置文件目录

cd /etc/openldap
tree slapd.d/
slapd.d/
├── cn=config
│   ├── cn=schema
│   │   └── cn={0}core.ldif
│   ├── cn=schema.ldif
│   ├── olcDatabase={0}config.ldif
│   ├── olcDatabase={-1}frontend.ldif
│   ├── olcDatabase={1}monitor.ldif
│   └── olcDatabase={2}hdb.ldif
└── cn=config.ldif

9.备份配置文件

/bin/mv slapd.d slapd.d.bak
mkdir -p slapd.d

10.配置配置文件权限

chown -R ldap:ldap /etc/openldap/slapd.d

11.初始化生成配置文件

cd  /etc/openldap/
slapadd -n 0 -F slapd.d -l slapd.ldif
_###############       79.86% eta   none elapsed            none spd   1.0 M/s
Closing DB...

12.复制数据库配置文件到数据库目录里

/bin/cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

13配置数据库目录权限

chown -R ldap:ldap /var/lib/ldap  /etc/openldap/slapd.d

14.启动slapd服务区

systemctl start slapd

15.slapd服务状态

systemctl status slapd

16.开机启动slapd

systemctl enable slapd

17.查看启动端口

ss -tunlp|grep 389

18.配置基本域修改为下面值

/bin/cp /usr/share/migrationtools/migrate_common.ph{,_bak}
vim /usr/share/migrationtools/migrate_common.ph
$DEFAULT_MAIL_DOMAIN = "ldap.fooher.com";
$DEFAULT_BASE = "dc=fooher,dc=com";
$EXTENDED_SCHEMA = 1;

19.生成ldif文件

mkdir -p /etc/openldap/ldif
/usr/share/migrationtools/migrate_base.pl > /etc/openldap/ldif/basedomain.ldif

20.导入数据

ldapadd -x -D cn=fooheradmin,dc=fooher,dc=com -W -f /etc/openldap/ldif/basedomain.ldif

21.使用工具LdapAdmin管理添加一个连接如图
OpenLDAP LdapAdmin

22.然后我们全部删除手动建一个
OpenLDAP LdapAdmin
OpenLDAP LdapAdmin

sudo tee /etc/openldap/ldif/config_init.ldif <<-EOF
dn: dc=fooher,dc=com
objectclass: dcObject
objectclass: organization
o: https://www.fooher.com
dc: fooher
EOF

23.导入数据

ldapadd -x -D "cn=fooheradmin,dc=fooher,dc=com" -W -f /etc/openldap/ldif/config_init.ldif
Enter LDAP Password:
adding new entry "dc=fooher,dc=com"

24.查询所有 objectClass=*

ldapsearch -x -b 'dc=fooher,dc=com' '(objectClass=*)'
ldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" -LLL –Q
ldapsearch -x -b "dc=fooher,dc=com" -H ldap://127.0.0.1