centos7部署openldap开启memberof并接入jumpserver

news2025/2/13 5:09:32

文章目录

  • 前言
  • 1.yum安装openldap
  • 2.配置密码
  • 3.导入配置
  • 4.定义域
  • 5.配置memberof
  • 6.配置base dn
  • 7.安装phpldapadmin管理
  • 8.调整httpd的配置
  • 9.调整php的配置
  • 10.登陆php管理页面
  • 11.同步旧ldapsever用户数据(可省略)
  • 12.客户端配置
  • 13.对接jumpserver


前言

介绍如何在centos7上部署openldap,并配置memberof进行组管理用户并介入jumpserver堡垒机

openldap参考的是这位大佬的博客,大佬文章的ldif格式有点乱,添加的时候不处理会报错 https://blog.csdn.net/weixin_41004350/article/details/89521170


1.yum安装openldap

[root@ldapserver 10:37:52 ~]# yum install -y openldap openldap-clients openldap-servers
[root@ldapserver 10:39:08 ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@ldapserver 10:39:10 ~]# chown -R ldap. /var/lib/ldap/DB_CONFIG
[root@ldapserver 10:39:14 ~]# systemctl start slapd
[root@ldapserver 10:39:14 ~]#systemctl enable slapd
[root@ldapserver 10:39:20 ~]# systemctl status slapd
● slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2023-07-12 10:39:20 CST; 3s ago

2.配置密码

我这里涉及到的密码都是000000

[root@ldapserver 10:39:24 ~]# slappasswd -s 000000
{SSHA}LSgYPTUW4zjGtIVtuZ8cRUqqFRv1tWpE


最后一行使用上面生成的密码
[root@ldapserver 10:39:32 ~]# vim changepwd.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}LSgYPTUW4zjGtIVtuZ8cRUqqFRv1tWpE

[root@ldapserver 10:39:47 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

3.导入配置

这里可以根据需要导入,不知道需要什么都执行一遍

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
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

4.定义域

我这里定义的是:dc=yinhan,dc=com,可根据自己的修改,比如改成dc=test,dc=com
这里修改建议是在vim模式下批量改:%s/dc=yinhan,dc=com/dc=xxx,dc=xxxx/g

这里olcRootPW的密码使用的也是前面生成的000000加密后的密文
[root@ldapserver ~]# cat changedomain.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=yinhan,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=yinhan,dc=com

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

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}LSgYPTUW4zjGtIVtuZ8cRUqqFRv1tWpE

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=yinhan,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=yinhan,dc=com" write by * read


[root@ldapserver ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f changedomain.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

5.配置memberof

[root@ldapserver ~]# cat add-memberof.ldif 
dn: cn=module{0},cn=config
cn: modulle{0}
objectClass: olcModuleList
objectclass: top
olcModuleload: memberof.la
olcModulePath: /usr/lib64/openldap

dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf

[root@etcd-test 10:45:41 ~]# vim refint1.ldif
dn: cn=module{0},cn=config
add: olcmoduleload
olcmoduleload: refint

[root@etcd-test 10:45:53 ~]# vim refint2.ldif
dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: refint
olcRefintAttribute: memberof uniqueMember  manager owner


[root@ldapserver ~]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add-memberof.ldif
adding new entry "cn=module{0},cn=config"

adding new entry "olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config"

[root@ldapserver ~]# echo $?
0
[root@ldapserver ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
modifying entry "cn=module{0},cn=config"

[root@ldapserver ~]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif
adding new entry "olcOverlay=refint,olcDatabase={2}hdb,cn=config"

6.配置base dn

[root@ldapserver ~]# cat base.ldif 
dn: dc=yinhan,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: yinhan Company
dc: yinhan

dn: cn=admin,dc=yinhan,dc=com
objectClass: organizationalRole
cn: admin

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

dn: ou=Group,dc=yinhan,dc=com
objectClass: organizationalRole
cn: Group

[root@ldapserver ~]# ldapadd -x -D cn=admin,dc=yinhan,dc=com -f base.ldif -w 000000
Enter LDAP Password: 
adding new entry "dc=yinhan,dc=com"

adding new entry "cn=admin,dc=yinhan,dc=com"

adding new entry "ou=People,dc=yinhan,dc=com"

adding new entry "ou=Group,dc=yinhan,dc=com"

7.安装phpldapadmin管理

这里需要有epel的yum源

[root@ldapserver ~]# yum install phpldapadmin -y

8.调整httpd的配置

增加12行IP为自己的网段

[root@ldapserver ~]# cat -n  /etc/httpd/conf.d/phpldapadmin.conf 
     1  #
     2  #  Web-based tool for managing LDAP servers
     3  #
     4
     5  Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
     6  Alias /ldapadmin /usr/share/phpldapadmin/htdocs
     7
     8  <Directory /usr/share/phpldapadmin/htdocs>
     9    <IfModule mod_authz_core.c>
    10      # Apache 2.4
    11      Require local
    12      Require ip 192.168.0.0/16
    13    </IfModule>
    14    <IfModule !mod_authz_core.c>
    15      # Apache 2.2
    16      Order Deny,Allow
    17      Allow from 127.0.0.1
    18      Allow from ::1
    19    </IfModule>
    20  </Directory>

9.调整php的配置

注释掉389行 开启397行
[root@ldapserver ~]#vim /etc/phpldapadmin/config.php 
397 $servers->setValue('login','attr','dn');
398 //$servers->setValue('login','attr','uid');
[root@ldapserver phpldapadmin]# systemctl restart httpd

10.登陆php管理页面

登陆地址: http://ip/ldapadmin
账号为第四步定义的:cn=admin,dc=yinhan,dc=com
密码也是前面定义的

登陆报错解决

[root@ldapserver ~]# setsebool -P httpd_can_connect_ldap on

在这里插入图片描述

11.同步旧ldapsever用户数据(可省略)

我这里原来有一套ldapserver已经跑了很多年了,可以通过slapcat跟slapadd把数据导入到新的server里

[root@ldapserver bak]# systemctl stop slapd  
[root@ldapserver bak]# grep 'dn: uid='  user.ldif      
dn: uid=test1,ou=People,dc=yinhan,dc=com
dn: uid=test2,ou=People,dc=yinhan,dc=com

[root@ldapserver bak]# slapadd -n 2 -l user.ldif 
.#################### 100.00% eta   none elapsed            none fast!         
Closing DB...
[root@ldapserver bak]# systemctl start slapd

12.客户端配置

[root@compute02_11bak]# yum install -y openldap-clients nss-pam-ldapd
[root@compute02_11:58:44_~ $ip a|grep 'inet 17'
    inet 172.16.4.80/16 brd 172.16.255.255 scope global eth0
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
    inet 172.20.0.1/16 brd 172.20.255.255 scope global br-b76db9453ac8
    inet 172.23.0.1/16 brd 172.23.255.255 scope global br-f422a62a0cc9
root@compute02_11:58:55_~ $authconfig --enablemkhomedir --enableshadow --enableldap --enableldapauth --ldapserver=ldap://192.168.11.21 --ldapbasedn=dc=yinhan,dc=com --disableldaptls --enablecache --disablewinbindauth --disablesssdauth --updateall

getsebool:  SELinux is disabled
getsebool:  SELinux is disabled
root@compute02_11:59:03_~ $id liliangde
uid=1000(liliangde) gid=500(sa_test)=908(monitorUsers),917(hc_group),902(sa_group),903(dba_group),500(sa_test)
root@compute02_11:59:06_~ $id liliangde1
uid=1001(liliangde1) gid=500(sa_test)=500(sa_test)

root@compute02_11:59:07_~ $ssh liliangde1@172.16.4.80
liliangde1@172.16.4.80's password: 
Creating directory '/data/home/liliangde1'.
Last login: Tue Jun 28 18:37:23 2022
liliangde1@compute02_11:59:35_~ $who
root     pts/0        2023-08-11 11:57 (mirrors.yh.com)
liliangde1 pts/1        2023-08-11 11:59 (compute02)

13.对接jumpserver

添加一个新的组,按照红色框勾选的操作
在这里插入图片描述

这里需要勾选groupOfUnxxx
在这里插入图片描述
新组的名称我设置为 test_mem
在这里插入图片描述
添加完成通过命令可以通过uniqueMember查看组里面包含哪些用户

[root@ldapserver bak]# ldapsearch -LL -Y EXTERNAL -H ldapi:/// "(cn=test_mem)" -b dc=yinhan,dc=com uniqueMember
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
version: 1

dn: cn=test_mem,ou=Group,dc=yinhan,dc=com
uniqueMember: cn=liliangde,ou=People,dc=yinhan,dc=com

jumpserver上面配置
在这里插入图片描述
配置完导入可以看到新的组
在这里插入图片描述

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

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

相关文章

SpringBoot复习:(29)静态资源的配置路径

WebMvcAutoConfiguration 首页处理&#xff1a;

Linux用户管理命令

一、系统存储用户信息的文件 &#xff08;1&#xff09;/etc/passwd 存储用户基本信息&#xff1a; 通过vi /etc/passwd查看用户基本信息&#xff1a; &#xff08;2&#xff09;/etc/group 存储用户组的信息&#xff1a; 通过vi /etc/group查看用户组信息&#xff1a; &…

SAP MM学习笔记16-在库品目评价

在库品目评价是指评估物料。具体比如物料价格&#xff0c;数量&#xff0c;保管场所等发生变化的时候&#xff0c;判断是否发生了变化&#xff0c;要不要生成 FI票&#xff0c;用哪个FI科目来进行管理等内容就叫在库品目评价。 在库品目评价有很多层级&#xff0c;这里先讲3兄弟…

【C++手撕系列】——设计日期类实现日期计算器

【C手撕系列】——设计日期类实现日期计算器&#x1f60e; 前言&#x1f64c;C嘎嘎类中六大护法实现代码&#xff1a;获取每一个月天数的函数源码分享构造函数源码分享拷贝构造函数源码分享析构函数源码分享赋值运算符重载函数源码分享取地址和const取地址运算符重载函数源码分…

如何写一篇吸引人的新闻稿?揭秘新闻稿写作的技巧!

一篇高质量的新闻稿不仅能够吸引读者的眼球&#xff0c;还能提高文章的曝光量。下面&#xff0c;伯乐网络传媒将给大家揭秘新闻稿写作的十大技巧&#xff0c;帮助大家写出更有吸引力的新闻稿。 1. 选择热门而有吸引力的话题或爆点 要想写出一篇吸引人的新闻稿&#xff0c;首先…

【前端】CSS水平居中的6种方法

左右两边间隔相等的居中 文章目录 flex绝对定位margin:auto绝对定位margin:负值定位transformtext-align: center;margin: 0 auto;思维导图 flex display: flex;justify-content: center; <div classparent><div class"son"></div> </div>…

【VUE】7、VUE项目中集成watermark实现页面添加水印

在网站浏览中&#xff0c;常常需要网页水印&#xff0c;以便防止用户截图或录屏暴露敏感信息后&#xff0c;方便追踪用户来源。 1、安装 watermark 在 package.json 文件 dependencies 节点增加 watermark-dom 依赖 "watermark-dom": "2.3.0"然后执行命…

fastadmin 自定义搜索分类和时间范围

1.分类搜索&#xff0c;分类信息获取----php 2.对应html页面&#xff0c;页面底部加搜索提交代码&#xff08;这里需要注意&#xff1a;红框内容&#xff09; 图上代码----方便直接复制使用 <script id"countrySearch" type"text/html"><!--form…

初识鸿蒙跨平台开发框架ArkUI-X

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上&#xff0c;HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备&#xff0c;提供全场景&#…

vue项目里面有多个模块的服务,前端处理url转发

先看下vue的代理配置里面&#xff1a; 现在是在 /pca 基础上增加了 2个模块的服务&#xff1a; /dca、 /api 现在服务器的nginx 没有在/pca 服务里面做转发接受 /dca、 /api的服务&#xff0c;所以需要前端自己去配置每个服务模块对应的 URL 先拿登录的api 做示例吧: 先定义…

多用户微商城多端智慧生态电商系统搭建

多用户微商城多端智慧生态电商系统的搭建步骤如下&#xff1a; 系统规划&#xff1a;在搭建多用户微商城多端智慧生态电商系统之前&#xff0c;需要进行系统规划。包括确定系统的目标、功能、架构、技术选型、开发流程等方面。市场调研&#xff1a;进行市场调研&#xff0c;了…

解决createRoot is not a function

报错&#xff1a; 出现的原因&#xff1a;在于把react18使用的vite构建&#xff0c;在开发中因react版本太高与其他库不兼容&#xff0c;而在降级的时候&#xff0c;出现以上dom渲染出现报错。 解决&#xff1a;将 src/index.j文件改成如下 import React from react; import…

玩转C链表

链表是C语言编程中常用的数据结构&#xff0c;比如我们要建一个整数链表&#xff0c;一般可能这么定义&#xff1a; struct int_node {int val;struct int_node *next;}; 为了实现链表的插入、删除、遍历等功能&#xff0c;另外要再实现一系列函数&#xff0c;比如&#xff1a…

微星游戏本旗舰性价比爆款:泰坦GP68 HX新品开启预售

微星游戏本金字塔尖的旗舰泰坦系列&#xff0c;讲究的就是一个“极致的性能释放”&#xff1a;除了机皇泰坦GT&#xff0c;旗舰性能的泰坦GE以外&#xff0c;泰坦GP则成为了泰坦系列中、甚至所有旗舰游戏本产品中的“旗舰游戏本的守门员”&#xff0c;让更多性能控玩家&#xf…

linux pwn 基础知识

环境搭建 虚拟机安装 镜像下载网站为了避免环境问题建议 22.04 &#xff0c;20.04&#xff0c;18.04&#xff0c;16.04 等常见版本 ubuntu 虚拟机环境各准备一份。注意定期更新快照以防意外。虚拟机建议硬盘 256 G 以上&#xff0c;内存也尽量大一些。硬盘大小只是上界&#…

Mongodb:业务应用(1)

环境搭建参考&#xff1a;mongodb&#xff1a;环境搭建_Success___的博客-CSDN博客 需求&#xff1a; 在文章搜索服务中实现保存搜索记录到mongdb 并在搜索时查询出mongdb保存的数据 1、安装mongodb依赖 <dependency><groupId>org.springframework.data</groupI…

rknn3588如何查看npu使用情况

cat /sys/kernel/debug/rknpu/load在Linux中&#xff0c;你可以使用一些工具和命令来绘制某一进程的实时内存折线图。一个常用的工具是gnuplot&#xff0c;它可以用来绘制各种图表&#xff0c;包括折线图。 首先&#xff0c;你需要收集进程的实时内存数据。你可以使用pidstat命…

餐馆包厢隔断装修该怎么去设计

餐馆包厢隔断装修设计需要综合考虑以下几个方面&#xff1a; 1. 功能布局&#xff1a;根据包厢的面积和形状来确定餐桌、椅子、电视等家具的摆放方式&#xff0c;保证客人的用餐舒适度和便利性。 2. 音响设备&#xff1a;安装合适的音响设备&#xff0c;提供一定的音乐背景&…

商城-学习整理-基础-库存系统(八)

一、整合ware服务 1、配置注册中心 2、配置配置中心 3、配置网关&#xff0c;重启网关 二、仓库维护 http://localhost:8001/#/ware-wareinfo 在前端项目module中创建ware文件夹保存仓库系统的代码。 将生成的wareinfo.vue文件拷贝到项目中。 根据功能&#xff0c;修改后台接…

电感与磁珠

电感最重要的公式&#xff1a; 它说明了电感的很多特性。比如&#xff1a; 电感电流不能突变 电感的储能大小 电感的电流与电压的相位关系 还有电感的阻抗为什么是jwL。 电感电流不能突变 电感电流为什么不能突变呢&#xff1f;来看这个公式&#xff0c;U等于负的L乘以di…