Centos7.0安装LDAP

LDAP介绍及安装详解

1. LDAP简介

LDAP(Light Directory Access Portocol):轻量级目录访问协议,LDAP是基于X.500的DAP(目录访问协议),在说LDAP之前,先介绍一下目录服务。

1.目录服务

目录简单理解就是一种树状结构的数据库,而目录服务是一种以树状结构的目录数据库为基础,外加各种访问协议的信息查询服务。与关系型数据库(如:MariaDB)相比,目录服务最大的优势是在于读取性极高。但是写入性能就非常差,而且不支持事务处理、回滚等容错功能,因此不适合频繁修改数据。

2. LDAP

LDAP协议的主要特点:

  • 基于TCP/IP
  • 以树状结构存储数据
  • 读取速度快,写入数据慢
  • 服务器用于存放数据,客户端用于操作数据
  • 跨平台、维护简单
  • 支持SSL/TLS加密
  • 协议是开放的
    LDAP的四大模型:
  • 信息模型:规定了 LDAP 目录信息的表示方式以及数据的存储结构。
  • 命名模型:规定了 LDAP 目录中数据如何进行组织和区分。
  • 功能模型:规定了可以对 LDAP 目录进行的操作(如查询、更新、认证等)。
  • 安全模型:规定了保护 LDAP 目录中的数据的安全措施。
    LDAP的基本结构
  1. 目录树:如图
    在这里插入图片描述

  2. 条目(Entry)
    上图中的每一个方框就是一个条目。一个条目有若干个属性和若干个值。有些条目还能包含子条目。

  3. 识别名(Distinguished Name, DN)
    它表示条目在目录树中从根出发的绝对路径,是条目的唯一标识。可以跟 UNIX 文件系统中文件或目录的完整路径做类比。例如:上图图中右下角的条目的 DN 是 cn=group01,dc=example,dc=com.

  4. 相对识别名(Relative Distinguished Name, RDN),相对识别名就是识别名第一个逗号左侧的内容。
    可以跟 UNIX 文件系统中文件或目录名做类比。例如:上图中右下角的条目的 RDN 是 cn=group01.
    在一般情况下,RDN 以 dc=、ou=、c=、o= 开头的条目为容器。也就是说,它们可以包含子条目。

  5. 基准识别名(Base Distinguished Name, Base DN),一般指整个目录树的根。例如,上图的 Base DN 是 dc=example,dc=com.

  6. 模式(Schema)模式是对象类(ObjectClass)、属性类型(AttributeType)、属性语法(Syntax)和匹配规则(MatchingRules)的集合。可以跟关系型数据库的数据表结构做类比。LDAP 协议定义了一些标准的模式,一般直接使用即可。用户也可以根据自己的需求自行定义模式。

  7. LDIF(LDAP Data Interchange Format) 文件,LDAP 数据交换格式文件,它以文本形式存储,用于在服务器之间交换数据。添加数据以及修改数据都需要通过 LDIF 文件来进行。可以跟关系型数据库的SQL 文件做类比。LDIF 文件的格式一般如下:

dn: <识别名>
<属性 1>: <值 1>
<属性 2>: <值 2>
...

2. 在centos7.0安装并使用OpenLDAP

1.在centos中执行以下命令

yum install -y openldap-servers openldap-clients

安装成功后如图所示:
在这里插入图片描述
2.创建数据库配置文件,以下是直接套用模板,命令如下:

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && chown ldap:ldap /var/lib/ldap/DB_CONFIG 

3.启动OpenLDAP服务

systemctl start slapd
# 如需开机启动,命令如下
systemctl enable slapd

4.设置OpenLDAP管理员密码

# 生成密码
slappasswd # 执行完该命令之后,请输入您要设定的密码。然后会生成 {SSHA}xxxxx 这样一行东西,记录下来
# 生成LDIF文件
cat << EOF > chrootpw.ldif
# 分别执行以下命令,{SSHA}xxxxx 修改为上一步记下来的值
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}xxxxx
EOF 
# 执行LDIF文件
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
# 导入预设的模式
find /etc/openldap/schema/ -name "*.ldif" -exec ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f {} \;

在这里插入图片描述

# 新建一个根节点 注意:根节点管理员密码与 OpenLDAP 管理员密码不是同一回事!一个 LDAP 数据库可以包含多个目录树。
slappasswd # 执行完该命令之后,请输入您要设定的密码。然后会生成 {SSHA}xxxxx 这样一行东西,记录下来
# 生成LDIF文件 预备一个域名:如:itwangxiaobai.com
cat << EOF > chdomain.ldif
# 执行以下命令
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=xxx,dc=xxx" read by * none #修改 dc=xxx,dc=xxx 为自己的域名

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=xxx,dc=xxx    #修改 dc=xxx,dc=xxx 为自己的域名

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=xxx,dc=xxx #修改 dc=xxx,dc=xxx 为自己的域名

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}xxxxx  #{SSHA}xxxxx 修改为上一步记下来的值

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=xxx,dc=xxx" write by anonymous auth by self write by * none #修改 dc=xxx,dc=xxx 为自己的域名
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=xxx,dc=xxx" write by * read #修改 dc=xxx,dc=xxx 为自己的域名
EOF 

在这里插入图片描述

# 执行 LDIF 文件
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
# 添加用户、组节点
cat << EOF > basedomain.ldif
# 执行以下命令
dn: dc=xxx,dc=xxx   #修改 dc=xxx,dc=xxx 为自己的域名
objectClass: top
objectClass: dcObject
objectclass: organization
o: root_ldap
dc: xxx #修改 xxx 为自己域名第一个点左边的内容

dn: cn=Manager,dc=xxx,dc=xxx    #修改 dc=xxx,dc=xxx 为自己的域名
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=xxx,dc=xxx #修改 dc=xxx,dc=xxx 为自己的域名
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=xxx,dc=xxx  #修改 dc=xxx,dc=xxx 为自己的域名
objectClass: organizationalUnit
ou: Group
EOF 

在这里插入图片描述

# 执行 LDIF 文件 dc=xxx,dc=xxx 为自己的域名然后再执行
ldapadd -x -D cn=Manager,dc=xxx,dc=xxx -W -f basedomain.ldif
# 输入设定的根节点管理员密码
# 清理LDIF文件
rm basedomain.ldif chdomain.ldif chrootpw.ldif

在这里插入图片描述
至此,一个 LDAP 目录树就构建完毕了。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值