环境信息
Centos: 7.9
openldap: 2.4.44
1.配置文件
openldap 2.4开始可以使用动态配置文件,可以实时加载到内存中,不用重启服务。配置是向后兼容的,这里依然使用老配置文件/etc/openldap/slapd.conf作为主配置
2.安装服务
yum install openldap openldap-servers openldap-clients -y
#openladp 是ldap的规范协议
#openldap-servers 是ldap服务端
#openldap-clientss是ldap客户端
3.配置一下修改配置文件均为/etc/openldap/slapd.conf
3.1 启用slapd.conf为主配置
touch /etc/openldap/slapd.conf
mv /etc/openldap/slapd.d /etc/openldap/slapd.dbak
3.2 配置数据库
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap
修改数据库配置/etc/openldap/slapd.conf
database bdb
directory /var/lib/ldap
3.3 引入schema文件(在配置文件中不引入,会报objectClass无法找到)
schema
定义了objectClass,schema只是一个文件
objectClass
,相当于定义了每一级的条目的字段(相当于mysql的创建表语句,官方提供的基本够用)。目录的每一级都是独立的,使用的object都可以是不一样。
attribute
定义了字段遵守的协议规范、字段名称、匹配规则。这个不用太关注,如果需要自定义条件属性就要深入理解
常用schema属性说明参考
http://www.zytrax.com/books/ldap/ape/
配置文件/etc/openldap/slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/nis.schema
#因为nis.schema中的 objectClass ipHost依赖于cosine.schema manager属性,所以最少引入三个schema
备注
:posixGroup 常用的用户组描述对象也在nis.schema文件中存在上述文档描述不完整
3.4 配置ldap管理员
suffix "dc=asd,dc=cn" #定义ldap 的域
rootdn "cn=admin,dc=asd,dc=cn"
rootpw xxxxx #可以明文,也可以用密文,密文调用slappasswd生成,将生成的字符串替换
pidfile /var/run/openldap/slapd.pid #服务pid
argsfile /var/run/openldap/slapd.args #不知道
授权目录权限
chown -R ldap:ldap /var/run/openldap
3.5 配置ldap 的链接 /etc/openldap/ldap.conf
BASE dc=asd,dc=cn
URI ldap://192.168.19.12 #安装主机的ip
3.6 配置日志
ldap服务端的日志依赖于rsyslog服务收集输出
-
/etc/openldap/slapd.conf配置
loglevel 256 #开启调试日志
-
/etc/rsyslog.conf 配置
输出位置要保证目录存在
local4.* /var/log/slapd/slapd.log #输出到/var/log/slapd/slapd.log
3.7 这是一个最小配置,启动服务
systemctl start slapd
4. 使用ldap创建组织结构
4.1)创建base.ldif文件
随便一个目录都可以,一般在/etc/openldap/下
#创建顶层域(根),如果这个域不创建则无法创建二级组织
dn: dc=asd,dc=cn
dc: asd
objectclass: top
objectclass: domain
####创建二级组织结构
dn: ou=Control,dc=asd,dc=cn
ou: Control
objectClass: organizationalUnit
dn: ou=Group,dc=asd,dc=cn
ou: Group
objectClass: organizationalUnit
dn: ou=People,dc=asd,dc=cn
ou: People
objectClass: top
objectClass: organizationalUnit
####创建用户
dn: uid=santiago.tian,ou=people,dc=asd,dc=cn
uid: santiago.tian
uidNumber: 900004133
homeDirectory: /home/santiago.tian
gidNumber: 900004133
cn: santiago.tian
sn: tian
loginShell: /bin/bash
userPassword:: akksjdjjhhsllj
objectClass: person
objectClass: posixAccount
####创建用户组
dn: cn=santiago.tian,ou=group,dc=asd,dc=cn
gidNumber: 900004133
cn: santiago.tian
objectClass: posixGroup
4.2)导入数据
ldapadd -D "cn=admin,dc=asd,dc=cn" -wpasswd -f base.ldif
5. 验证
执行命令,返回如下信息说明搭建成功
ldapsearch -LLL -x
image.png
6、删除用户
ldapdelete -x -D "cn=admin,dc=asd,dc=cn" -wpasswd 'cn=santiao.tiang,ou=people,dc=asd,dc=cn'
网友评论