LDAP配置与安装

news2024/11/24 4:05:06

LDAP配置与安装

  • 一、安装LDAP
    • 1、安装OpenLDAP及相关依赖包
    • 2、查看OpenLDAP版本
    • 3、配置OpenLDAP数据库
    • 4、设置OpenLDAP的管理员密码
    • 5、修改配置文件
      • 5.1. 修改{2}hdb.ldif文件
      • 5.2. 修改{1}monitor.ldif文件
      • 5.3. 修改{-1}frontend.ldif文件
    • 6、验证LDAP的基本配置
    • 7、修改LDAP文件权限、端口(不强求)
    • 8、启动OpenLDAP服务
    • 9、导入基本Schema
    • 10、修改migrate_common.ph文件
    • 11、配置LDAP基础数据库
    • 12、导入基础数据库
    • 13、添加用户及用户组
    • 14、查询LDAP的相关信息
    • 15、开启OpenLDAP日志访问功能
  • 二、安装PHPldapAdmin管理软件
    • 1、安装
    • 2、修改配置文件
    • 3、启动httpd
  • 三、使用LdapAdmin
  • 四、数据迁移
    • 1、获取数据到指定文件
    • 2、查看数据是否备份成功
    • 3、插入数据
  • 五、卸载LDAP
  • 参考

一、安装LDAP

1、安装OpenLDAP及相关依赖包

[root@nano ~]# yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

2、查看OpenLDAP版本

[root@nano ~]# slapd -VV

3、配置OpenLDAP数据库

# OpenLDAP默认使用的数据库是BerkeleyDB,/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径:
[root@localhost cn=config]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

4、设置OpenLDAP的管理员密码

(格式——slappasswd -s [password])

[root@nano ~]# slappasswd -s huawei
{SSHA}TlGs09uMOeFa5UJNhy1LB6cGW9i8N+tt		 	# 记住该密码,下面配置要用

5、修改配置文件

定位到/etc/openldap/slapd.d/cn=config中,修改相关配置文件{1}monitor.ldif、{2}hdb.ldif、{-1}frontend.ldif:

[root@nano ~]# cd /etc/openldap/slapd.d/cn\=config
[root@nano cn=config]# ll
> 总用量 24 drwxr-x---. 2 ldap 4096 32 10:14 cn=schema
> -rw-------. 1 ldap  378 32 10:14 cn=schema.ldif
> -rw-------. 1 ldap  513 32 10:14 olcDatabase={0}config.ldif
> -rw-------. 1 ldap ldap  443 32 10:14 olcDatabase={-1}frontend.ldif
> -rw-------. 1 ldap ldap  562 32 10:14 olcDatabase={1}monitor.ldif
> -rw-------. 1 ldap ldap  609 32 10:14 olcDatabase={2}hdb.ldif

5.1. 修改{2}hdb.ldif文件

[root@nano cn=config]# vim olcDatabase\=\{2\}hdb.ldif
  • 修改域信息: olcSuffix: dc=ss,dc=com olcRootDN: cn=admin,dc=ss,dc=com
  • 定位到最后添加一行密码: olcRootPW: {SSHA}dXgO/Ipy5SQiKFZ0u7m79Xo7uzKIr038
  • 注意:其中cn=admin中的admin表示OpenLDAP管理员的用户名,dc为ldap的服务器域名(dc=ss是自行创建的服务器域名),olcRootPW表示OpenLDAP管理员的密码

5.2. 修改{1}monitor.ldif文件

[root@nano cn=config]# vim olcDatabase\=\{1\}monitor.ldif

5.3. 修改{-1}frontend.ldif文件

[root@localhost cn=config]# vim olcDatabase\=\{-1\}frontend.ldif
# 权限设置,指定用户密码只能由本人和管理员能更改。添加如下两行代码:
	olcAccess: {0}to attrs=userPassword by self write by anonymous auth by users none
	olcAccess: {1}to * by * read

6、验证LDAP的基本配置

# 若出现succeeded就表示成功了
[root@nano cn=config]# slaptest -u

7、修改LDAP文件权限、端口(不强求)

[root@localhost cn=config]# chown -R ldap:ldap /var/lib/ldap/
[root@localhost cn=config]# chown -R ldap:ldap /etc/openldap/

# OpenLDAP默认监听的端口是389,我们可在/etc/sysconfig/slapd文件中修改其监听端口,如下修改为4567端口
[root@localhost cn=config]# vim /etc/sysconfig/slapd
SLAPD_URLS= "ldapi://0.0.0.0:4567/ldap://0.0.0.0:4567/"

8、启动OpenLDAP服务

[root@localhost cn=config]# systemctl enable --now slapd		# 设置slapd服务开机自启,并启动

# 验证端口状态
# 前提是要安装net-tools才能使用netstat命令
[root@localhost cn=config]# netstat -antup | grep 389

在这里插入图片描述

9、导入基本Schema

导入基本Schema,使用如下命令:

[root@nano cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
[root@nano cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
[root@nano cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

10、修改migrate_common.ph文件

# migrate_common.ph文件主要是用于生成ldif文件使用,修改migrate_common.ph文件,如下:
[root@localhost cn=config]# vim /usr/share/migrationtools/migrate_common.ph +71

11、配置LDAP基础数据库

# 配置如下信息(修改对应的dc数据值):
[root@localhost ~]# mkdir /root/openldap
[root@localhost ~]# vim openldap/base.ldif
#管理员信息
dn: dc=ss,dc=com
o: ss com
dc: ss
objectClass: top
objectClass: dcObject
objectclass: organization

dn: cn=admin,dc=ss,dc=com
cn: admin
objectClass: organizationalRole
description: Directory Manager

#基本分组
dn: ou=People,dc=ss,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=ss,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

12、导入基础数据库

# -x 进行简单认证、-D 用来绑定服务器的DN、-w 绑定管理员的密码(最开始设置的)
[root@localhost ~]# ldapadd -x -D 'cn=admin,dc=ss,dc=com' -w '123456' -f /root/openldap/base.ldif

13、添加用户及用户组

默认情况下OpenLDAP是没有普通用户的,只有一个管理员用户(最开始配置的)

[root@localhost ~]# groupadd ldapgroup1
[root@localhost ~]# groupadd ldapgroup2
[root@localhost ~]# useradd -g ldapgroup1 ldapuser1
[root@localhost ~]# useradd -g ldapgroup2 ldapuser2
[root@localhost ~]# echo '123456' | passwd --stdin ldapuser1
[root@localhost ~]# echo '123456' | passwd --stdin ldapuser2

# 提取刚添加的用户和用户组相关信息
[root@localhost ~]# grep ":10[0-9][0-9]" /etc/passwd > /root/openldap/users
[root@localhost ~]# grep ":10[0-9][0-9]" /etc/group > /root/openldap/groups
[root@localhost ~]# cat openldap/users
[root@localhost ~]# cat openldap/groups

# 使用migrate_passwd.pl文件生成要添加用户和用户组的ldif
[root@localhost ~]# /usr/share/migrationtools/migrate_group.pl /root/openldap/groups > /root/openldap/groups.ldif
[root@localhost ~]# /usr/share/migrationtools/migrate_passwd.pl /root/openldap/users > /root/openldap/users.ldif

# 导入用户及用户组到Ldap数据库
[root@localhost ~]# ldapadd -x -w '123456' -D 'cn=admin,dc=ss,dc=com' -f /root/openldap/groups.ldif
[root@localhost ~]# ldapadd -x -w '123456' -D 'cn=admin,dc=ss,dc=com' -f /root/openldap/users.ldif

把LDAP用户加入到用户组

# 尽管我们已经把用户和用户组信息,导入到OpenLDAP数据库中了。但实际上目前OpenLDAP用户和用户组之间是没有任何关联的
# 如果我们要把OpenLDAP数据库中的用户和用户组关联起来的话,我们还需要做另外单独的配置
[root@localhost ~]# cat > /root/openldap/add_user_to_groups.ldif << "EOF"
dn: cn=ldapgroup1,ou=Group,dc=ss,dc=com
changetype: modify
add: memberuid
memberuid: ldapuser1

dn: cn=ldapgroup2,ou=Group,dc=ss,dc=com
changetype: modify
add: memberuid
memberuid: ldapuser2
EOF
[root@localhost ~]# ldapadd -x -w '123456' -D 'cn=admin,dc=ss,dc=com' -f /root/openldap/add_user_to_groups.ldif

14、查询LDAP的相关信息

1》 查询LDAP全部信息

[root@localhost ~]# ldapsearch -x -b 'dc=ss,dc=com' -H ldap://127.0.0.1

2》 查询添加的LDAP用户组信息

[root@localhost ~]# ldapsearch -LLL -x -D 'cn=admin,dc=ss,dc=com' -w '123456' -b 'dc=ss,dc=com' 'cn=ldapgroup1'

3》 查询添加的LDAP用户信息

[root@localhost ~]# ldapsearch -LLL -x -D 'cn=admin,dc=ss,dc=com' -w '123456' -b 'dc=ss,dc=com' 'uid=ldapuser1'

15、开启OpenLDAP日志访问功能

默认情况下OpenLDAP是没有启用日志记录功能的,但是在实际使用过程中,我们为了定位问题需要使用到OpenLDAP日志

# 新建日志配置ldif文件,如下:
[root@localhost ~]# cat > /root/openldap/loglevel.ldif << EOF
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
EOF
[root@localhost ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/openldap/loglevel.ldif

# 修改rsyslog配置文件,并重启rsyslog服务,如下:
[root@localhost ~]# cat >> /etc/rsyslog.conf << EOF
local4.* /var/log/slapd.log
EOF

# 重启服务
[root@localhost ~]# systemctl restart rsyslog
[root@localhost ~]# systemctl restart slapd

# 使用ldapuser1认证下
[root@localhost ~]# ldapwhoami -x -D uid=ldapuser1,ou=People,dc=ss,dc=com -w 123456

查看OpenLDAP日志,如下:

[root@localhost ~]# tail /var/log/slapd.log

到此,LDAP已配置完成。


二、安装PHPldapAdmin管理软件

1、安装

先安装Apache和PHP:

[root@localhost ~]# yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml

再安装phpldapadmin:

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum --enablerepo=epel -y install phpldapadmin

2、修改配置文件

》修改config.php文件:

[root@nano cn=config]# vim /etc/phpldapadmin/config.php +397
> // 397行取消注释,398行添加注释 
> $servers->setValue('login','attr','dn'); 	
> // $servers->setValue('login','attr','uid');

》修改phpldapadmin.conf文件:

[root@nano cn=config]# vim /etc/httpd/conf.d/phpldapadmin.conf +11
> 	<IfModule mod_authz_core.c>
>  		# Apache 2.4 	
>  		Require local 	
>  		# 添加一行内容,指定可访问的ip段 或者输入:Require all granted 开放外网访问 	
>  		Require ip 192.168.77.0/24
>  </IfModule>

3、启动httpd

修改Apache的端口!一般来说80端口会被占用,所以需要改一下端口,如果不需要的可以跳过此步骤。

vim /etc/httpd/conf/httpd.conf 
将配置文件中的Listen 80 改成Listen 8081

启动httpd

[root@nano cn=config]# systemctl enable --now httpd

浏览器访问 phpldapadmin:

  • url: http://服务器地址/phpldapadmin/
  • 用户名:cn=admin,dc=ss,dc=com
  • 密码:设定的管理员密码

Phpldap使用方法参考:https://blog.csdn.net/u010543388/article/details/107682769


三、使用LdapAdmin

该软件更容易创建用户组、用户和移动等


四、数据迁移

1、获取数据到指定文件

[root@nano cn=config]# ldapsearch -LLL -W -x -D "cn=admin,dc=ss,dc=com" -b "dc=ss,dc=com" > ldap_data_2023.ldif

如果公司有多个域,请将命令执行多次,修改命令中-b 后面的域名就行;
注意: 以上命令只适合数据量小的时候,数据量在10000以内可以这么做,如果超过了请就选择其他方法;

2、查看数据是否备份成功

[root@nano cn=config]# cat ldap_data_2023.ldif

3、插入数据

[root@nano cn=config]# ldapadd -x -D "cn=admin,dc=ss,dc=com" -w "你的密码" -f ldap_data_2023.ldif

若出现如下报错,则证明数据库中已有该条记录,需要到ldap_data_2023.ldif中删除,再继续导入即可
adding new entry "dc=test,dc=com"
ldap_add: Already exists (68)


五、卸载LDAP

1、停止openldap

[root@nano cn=config]# systemctl stop slapd
[root@nano cn=config]# systemctl disable slapd

2、卸载

[root@nano cn=config]# yum -y remove openldap-servers openldap-clients

3、删除残留文件

[root@nano cn=config]# rm -rf /var/lib/ldap

4、删除ldap用户

[root@nano cn=config]# userdel ldap

5、删除openldap目录

[root@nano cn=config]# rm -rf /etc/openldap

参考

  • OpenLDAP安装与配置 -博客园

  • LDAP安装、LDAP数据迁移、LDAP卸载指南及PHPldapAdmin管理软件安装-博客园

  • 在CentOS 7上安装OpenLDAP服务器 - 简书 (jianshu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/518930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python-39-异步aiohttp爬取数据

Python分别用单线程&#xff0c;多线程&#xff0c;异步协程爬取一部小说&#xff0c;最快仅需要5s Python异步爬虫之协程抓取妹子图片(aiohttp、aiofiles) Python爬虫——教你异步爬虫二十秒爬完两百多万字六百多章的小说 python爬虫-异步爬虫 用python批量把小说编号由大写数…

RVO的寻路障碍物改进

先说下原理&#xff1a;RVO的障碍识别是通过链接的坐标点数组围成的区域&#xff0c;收尾相接形成的。 namespace RVO { /** * <summary>Defines static obstacles in the simulation.</summary> * 障碍区的点坐标数据结构&#xff0c;是个双向链表结构 *通过Sim…

【Java】认识String类

【Java】认识String类 1. String类的重要性2. 常用方法2.1 字符串构造求字符串长度2.2 String对象的比较2.3 字符串查找2.4 转化2.5 字符串替换2.6 字符串截取2.7 字符串拆分2.8 其他操作方法2.8.1 String trim()2.8.2 String toUpperCase()2.8.3 String.format&#xff08;&am…

在C#WinForm中调用julia函数及在C#中传递参数到julia函数的使用示例

特别声明&#xff1a;未经允许&#xff0c;请勿转载&#xff01; https://discourse.juliacn.com/t/topic/7189https://discourse.juliacn.com/t/topic/7189我在julia中国社区已提交了文章的最后部分未解决问题&#xff0c;大家后续可以在该链接中跟踪问题的回答进度。 好几…

Neck网络 FPN + PAN 改进解读

呃 这篇文章的目的在于补充一些知识以便于理解Neck部分的网络 特征提取网络 与 目标检测之间的关系 一个特征提取网络&#xff0c;假设有1000层&#xff0c;开始的特征图包含的细节信息就很多&#xff0c;而随着网络的加深&#xff0c;特征提取网络经过多次被卷积和池化操作&…

让你的SQL变得更简洁:学会ChatGPT活用技巧,轻松实现SQL格式化

文章目录 前言让你的SQL变得更简洁&#xff01;学会ChatGPT活用技巧&#xff0c;轻松实现SQL格式化ChatGPT格式化SQL效果讯飞星火认知大模型格式化SQL效果文心一言格式化SQL效果格式化SQL效果结果比较 总结 【免责声明】文章仅供学习交流&#xff0c;观点代表个人&#xff0c;与…

Vue--》如何在Vue3中书写TSX

在vue2的时候就已经可以使用 jsx 语法&#xff0c;但是不是很友好&#xff0c;写起来是一件很痛苦的事情&#xff0c;所以你很少见到有人会在vue2中书写 jsx 语法&#xff0c;官方也不建议我们在vue2中进行书写 jsx 的代码风格&#xff1a; 但随着vue3版本的到来&#xff0c;对…

SBUS协议解析图解

SBUS协议在硬件上是串口反相协议。 在软件上就是普通串口协议&#xff0c;波特率100k&#xff0c;8位数据位&#xff0c;2位停止位&#xff0c;偶校验even。注意&#xff0c;stm32把校验位也当做数据&#xff0c;所以数据位要设置成9&#xff0c;而不是8。 其报文格式为&…

scala---spark本地调式远程获取hdfs数据注意事项

文章目录 前言一、Hadoop配置注意事项1.1 core-site.xml1.2 core-site.xml 二、本地hadoop环境配置注意事项三、本地scala项目spark代码调试总结 前言 这篇文章主要帮大家绕开一些本地使用spark调试获取远程hdfs数据的坑&#xff0c;个人在使用时也是基本把这些坑踩了一遍。希望…

永远不该忘记!科技才是硬道理,手中没有剑,跟有剑不用,是两回事

今天是全国防灾减灾日&#xff0c;距离2008年汶川大地震也已经过去15年了。但时至今日&#xff0c;看到那些图像视频资料&#xff0c;那种触及灵魂的疼痛仍是存在的&#xff0c;2008年的大地震在每个中国人身上都留下了无法抚平的伤疤。 2008年是所有中国人都无法忘记的一年&am…

设计模式——单一职责模式之装饰模式

文章目录 前言一、“单一职责” 模式二、Decorator 装饰模式1、动机2、模式定义3、伪代码示例①、第一种写法②、第二种写法③、第三种写法 4、结构 总结 前言 一、“单一职责” 模式 在软件组件的设计中&#xff0c;如果责任划分的不清晰&#xff0c;使用继承得到的结果往往是…

深度指南:WhatsApp广播vs WhatsApp群组(二)

如何为创建WhatsApp群组&#xff1f; 建立 WhatsApp 群组&#xff0c;请按下列步骤操作。 1. 导航到您的WhatsApp或WhatsApp for Business&#xff08;布局或界面相同&#xff09;&#xff0c;然后点击“新建组”。 2.现在&#xff0c;您可以将参与者添加到您的WhatsApp群组…

华为OD机试真题 Java 实现【静态代码扫描服务】【2023Q1 100分】

一、题目描述 静态扫描快速识别源代码的缺陷&#xff0c;静态扫描的结果以扫描报告作为输出&#xff1a; 文件扫描的成本和文件大小相关&#xff0c;如果文件大小为N&#xff0c;则扫描成本为N个金币&#xff1b;扫描报告的缓存成本和文件大小无关&#xff0c;每缓存一个报告…

算法修炼之练气篇——练气十层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

华为网络篇 静态路由与BFD联动-21

实验难度2实验复杂度2 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 BFD&#xff08;Bidirectional Forwarding Detection&#xff0c;双向转发检测&#xff09;是一种实验网络可靠性的机制&#xff0c;它可用于快速检测网络中的链路状况…

常见自动化测试工具及框架有哪些?怎么选?

目录 一、自动化测试简介 1、什么是自动化测试 2、它可以做自动化测试么 二、工具篇 1、UFT&#xff08;QTP&#xff09; 2、Selenium 3、Appium 4、工具对比 三、框架篇 1、TestNG 2、unittest 3、pytest 4、Robot Framework 5、框架对比 四、如何选择 总结 一…

ES6知识点

目录 1、let、cons、var的区别 2、const对象的属性可以修改吗 3、如果new一个箭头函数会怎么样 4、箭头函数和普通函数的区别&#xff1a; 5、扩展运算符的作用及使用场景 1、let、cons、var的区别 1️⃣&#xff1a;块级作用域&#xff1a;块作用域由{}包括&#xff0c;le…

Flink 常用API(1)—— 源算子

目录 执行环境&#xff08;Execution Environment&#xff09; 创建执行环境 执行模式配置 触发程序执行 源算子&#xff08;Source&#xff09; 从集合中读取数据 从文件中读取数据 从Socket读取数据 从Kafka读取数据*** 自定义 Source&#xff08;数据源&#xff0…

【结构与算法】—— 游戏概率常用算法整理 | 游戏中的常见概率设计分析

&#x1f4e2;博客主页&#xff1a;肩匣与橘&#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;本文由肩匣与橘编写&#xff0c;首发于CSDN&#x1f649;&#x1f4e2;生活依旧是美好而又温柔的&#xff0c;你也是✨ …

Smartbi X 广州轻工集团,打造集团价值创造型总部

广州轻工工贸集团有限公司&#xff08;简称“广州轻工集团”&#xff09;是广州市第一家工贸合一的大型企业集团公司&#xff0c;最早起源于1950年9月成立的广州市合作事业管理局&#xff0c;逐渐演化形成广州市轻工业局。1995年10月&#xff0c;广州市轻工业局成建制改建为经济…