centos7下搭建ldap服务器

参考:

全网最全Centos7.9搭建LDAP服务器+图形界面_ldap服务器搭建-CSDN博客

LDAP服务搭建 - 简书

LDAP服务器搭建教程​​​​​​​

通过docker安装openldap并通过ldapadmin配置用户与第三方软件集成ldap配置

安装

#安装ldap服务
yum install -y openldap-servers openldap-clients openldap openldap-devel compat-openldap openldap-servers-sql
#启动LDAP服务
systemctl start slapd
#设置LDAP服务开机启动
systemctl enable slapd
#查看LDAP服务状态
systemctl status slapd
#重新加载配置文件
systemctl reload slapd
#查看ldap版本信息
slapd -VV
#ldap的默认端口是389
lsof -i:389

创建根密码

该密码是LADP服务器的管理员根密码,输入slappasswd后提示输入密码(123456)与确认密码,系统会输出一串加密后的字符串

slappasswd
#会输出这样的结果,保存好这个字符串,后面需要使用
{SSHA}NzxogzZEjaWKetR4FpLliMGtXLpxg5j3

编辑数据文件db.ldif

可以将‘dc=example,dc=com’替换为您的域名,这个域名将用于OpenLDAP服务器

cd /etc/openldap/slapd.d/
vim db.ldif
#粘贴下面内容,检查空行里不要有空格,不然会报错wrong attributeType at line xx
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}NzxogzZEjaWKetR4FpLliMGtXLpxg5j3
#发送配置
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif

创建monitor.ldif文件

cd /etc/openldap/slapd.d/
vim monitor.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=admin,dc=example,dc=com" read by * none
#发送配置
ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif

创建ldap基础库

#复制ldap原有配置,并赋予它所有权限
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*
#向数据库添加schemas,包括cosine、nis、inetorgperson三个文件
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

编辑域文件

cd /etc/openldap/slapd.d/
vim base.ldif
#粘贴下面内容
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain

dn: cn=admin,dc=example,dc=com
objectClass: organizationalRole
cn: admin
description: LDAP Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group
#保存至数据库
ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f base.ldif
Enter LDAP Password:
输入前面设置过的根密码

ldap服务器基础配置完成

配置SSL

获取或生成SSL证书和密钥文件。您可以从证书颁发机构(CA)购买证书,或者使用自签名证书。确保证书文件(以.crt或.pem为后缀)和密钥文件(以.key为后缀)位于服务器上,并且只有管理员可以访问

vim /usr/share/openldap-servers/slapd.ldif
#修改下面内容
#olcTLSCACertificatePath: /etc/openldap/certs
#olcTLSCertificateFile: "OpenLDAP Server"
#olcTLSCertificateKeyFile: /etc/openldap/certs/password
olcTLSCACertificateFile: /path/to/server.crt
olcTLSCertificateKeyFile: /path/to/server.key
olcTLSCertificateFile: /path/to/server.crt
#配置监听端口
vim /etc/sysconfig/slapd
#修改下面内容(缺省的值为ldapi=/var/run/ldapi, ldap=389, ldaps=636)
SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"
#重启ldap
systemctl restart slapd
#ldap的默认端口是636
lsof -i:636
#验证ssl证书信息
openssl s_client -connect <hostname>:636
openssl s_client -showcerts -CAfile /path/to/server.crt -connect <hostname>:636

如何管理ldap

下载Ldap Admin

官网:LDAP Admin - a free LDAP directory browser and editor

百度网盘:链接:https://pan.baidu.com/s/13kau93reCkAx7-GgSe3oAQ      提取码:oc4d 

连接ldap服务器

点击start-->connect,双击New connection,然后输入Connection name、Host、Base(dc=example,dc=com)以及管理员用户名(cn=admin,dc=example,dc=com)和密码,如下图所示

点击Test connection,弹出“Connection is successful”表示连接成功

双击刚才添加的服务器进入管理

添加用户

可以看到左侧已经出现ou=People,我们可以在这里开始新建用户,选中People,右键New--User,如下,建立一个用户名为zhangsan,展示名为张三的用户,点击ok,左侧即可看到创建后的zhangsan

设置密码

选中左侧用户zhangsan,右键Set Password,输入密码即可,加密方式可以选择SSHA。OpenLDAP SSHA 加密算法是 SHA-1 加密算法加盐的一种处理方法,具体算法是这样:{SSHA}+base64(SHA1(明文密码+盐)+盐)

命令行方式添加用户

#创建
vim user.ldif
#粘贴下面内容,在People组下面创建用户,uidNumber可以自己指定(每个用户唯一)
dn: uid=wangwu,ou=People,dc=example,dc=com
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
objectClass: shadowAccount
cn: wangwu
uid: wangwu
sn: wu
gidNumber: 0
uidNumber: 9999
homeDirectory: /home/wangwu
loginShell: /sbin/nologin
shadowMin: 0
shadowMax: 99999
#保存至数据库
ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f user.ldif
#设置密码
ldappasswd -s 密码 -W -D "cn=admin,dc=example,dc=com" -x "uid=wangwu,ou=People,dc=example,dc=com"

常用命令

#搜索用户
-x表示使用简单身份验证;
-b表示搜索DN;
-H表示使用LDAP服务器的URL。
ldapsearch -x -b dc=example,dc=com -H ldap://localhost
#搜索指定用户
ldapsearch -x cn=wangwu -b dc=example,dc=com -H ldap://localhost

名词解释

LDIF 是什么?

LDIF 是 LDAP 数据交换格式的缩写。

它是文件的标准纯文本数据交换格式,用于表示 LDAP 目录内容,文件的扩展名是“.ldif”。

LDIF 文件中有多个字段,详细了解一下:

LDIF 文件中有哪些常见字段?

1)dn:专有名称

“dn”代表唯一标识目录中条目的名称。

DN 是必填字段,如果 DN 中存在逗号,则必须使用反斜杠(\)对逗号进行转义。例如,dn: uid=sam, ou=people, o=example.com Bolivia\,S.A.

2)o:组织

“o”代表组织名称。例如:juejin.cn

3)dc:域分量

“dc”代表域的每个组成部分。例如 www.example.com 将写为 DC = www, DC = example, DC = com

4)ou:组织单位

“ou”代表用户所属的组织单位(或有时是用户组)。如果用户属于多个组,您可以通过提供多个条目来指定它。例如:OU = 员工,OU = 管理员。

5)cn:通用名

“cn”代表您正在查询的单个对象(人名、会议室、菜谱名称、职位等)。它是人们常用的。例如,cn:郭德纲。至少需要一个通用名称。

6)sn:姓氏

“sn”代表人的姓氏。例如,sn:郭。需要提供姓氏。

7)objectClass:对象类

“objectClass”指定与此条目一起使用的对象类。

它是必填字段。例如:objectClass:person,objectClass:organizationalPerson。

应包含此对象类规范,因为许多 LDAP 客户端在对个人或组织人员进行搜索操作期间需要它。

LDIF 文件的格式是什么?

LDIF 由一个或多个以空行分隔的目录条目组成。每个 LDIF 条目都包含一个可选的条目 ID、一个必需的专有名称、一个或多个对象类以及多个属性定义。

LDIF 格式在 RFC 2849 LDAP 数据交换格式 (LDIF) 中定义。 Sun Java System Directory Server 符合此标准。

LDIF 中表示的目录项的基本形式如下:

dn: distinguished_name 
objectClass: object_class 
objectClass: object_class 
...
attribute_type[;subtype]:attribute_value
attribute_type[;subtype]:attribute_value 
... 

我们必须提供 DN 和至少一个对象类定义。此外,我们必须包含为条目定义的对象类所需的任何属性。

所有其他属性和对象类都是可选的。我们可以按任何顺序指定对象类和属性。冒号后面的空格也是可选的。

例如,下面是 LDIF 文件中的有效条目,这里的“uid”字段代表该人的用户 ID。

dn: uid=bob,ou=people,dc=springframework,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
cn: Bob Hamilton
sn: Hamilton
uid: bob
userPassword: bobspassword

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值