centos7部署openldap开启memberof并接入jumpserver

文章目录

  • 前言
  • 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 DaemonLoaded: 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 * nonedn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=yinhan,dc=comdn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=yinhan,dc=comdn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}LSgYPTUW4zjGtIVtuZ8cRUqqFRv1tWpEdn: 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/openldapdn: 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: yinhandn: cn=admin,dc=yinhan,dc=com
objectClass: organizationalRole
cn: admindn: ou=People,dc=yinhan,dc=com
objectClass: organizationalUnit
ou: Peopledn: 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 servers3  #45  Alias /phpldapadmin /usr/share/phpldapadmin/htdocs6  Alias /ldapadmin /usr/share/phpldapadmin/htdocs78  <Directory /usr/share/phpldapadmin/htdocs>9    <IfModule mod_authz_core.c>10      # Apache 2.411      Require local12      Require ip 192.168.0.0/1613    </IfModule>14    <IfModule !mod_authz_core.c>15      # Apache 2.216      Order Deny,Allow17      Allow from 127.0.0.118      Allow from ::119    </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 eth0inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0inet 172.20.0.1/16 brd 172.20.255.255 scope global br-b76db9453ac8inet 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 --updateallgetsebool:  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: 1dn: cn=test_mem,ou=Group,dc=yinhan,dc=com
uniqueMember: cn=liliangde,ou=People,dc=yinhan,dc=com

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

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

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

相关文章

Unity Shader特效:人物模型动态流动光特效

本文写于2017-6-6&#xff0c;转载请注明 以下为正文 ………………………………………………………………………………………………………………………………………………………… 先上效果图&#xff1a; Shader界面图&#xff1a; 因为特效师的攻击特效做得过为酷炫&#…

python实现两个图片的叠加融合

python通过PIL将两个图片叠加融合 我想到将一个图片去除背景将其放到另一张图片上以此实现融合。 1**. 打开想要融合的图片** file Image.open(6.png) verse 9.png我选取的两个图片 2**. 将附在上面的图片的背景进行透明化** verse transPNG(verse)# 图片背景透明化 …

壁纸网站研究:强大到没朋友的壁纸网站整理(动漫/二次元/宅男/风景/真人)

1、wallhaven 域名&#xff1a;https://wallhaven.cc 介绍&#xff1a;一个强大的壁纸网站&#xff0c;包含人物、动漫、风景&#xff0c;同时有一些老司机内容&#xff0c;需要选择NSFW&#xff0c;但需要登录才能观看&#xff0c;隐藏功能。但是海外网站&#xff0c;国内网…

java 人物头像识别

一、功能描述&#xff1a; 人物头像识别&#xff0c;识别图片中的是否含有人物头像。 二、准备工作&#xff1a; 创建需要识别的图片目录 &#xff0c;如F:/img&#xff0c;链接中files\img中为示例图片。导入所需jar包&#xff0c;见files\jar。新建依赖文件haarcascade_fro…

日常问题——使用Java转将long类型为date类型,日期是1970年

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 long类型的日期为&#xff1a;1646718195 装换为date类型&#xff1a; Date date new Dat…

google浏览器截取长图

方法一&#xff1a; 首先F12选中手机模式 然后点击右上角 选择capture full size screenshot 或者ctrl shift p 方法二&#xff1a; 按F12打开调试页面&#xff0c;然后按下ctrlshiftp&#xff0c;输入命令Capture full size screenshot&#xff0c;敲回车&#xff0c;浏览…

edge便捷截取长图

edge便捷截取长图 右上角 三点 ——》网页捕获 ——》捕获整页 简简单单 方便食用~

Mac上使用Chrome浏览器截取长图

首先按下 ⌘Command ⌥Option I 快捷键&#xff0c;召唤出调试界面。 按下 ⌘Command ⇧Shift P 输入 Capture full size screenshot 敲下回车&#xff0c;Chrome 就会自动截取整个网页内容并保存至本地。

Linux上安装温度监控软件

文章目录 Linux上安装温度监控软件IDRAC设置 Linux上安装温度监控软件 服务器的温度是影响服务器性能重要条件&#xff0c;怎么监控机器的温度呢&#xff0c;这里知道的有两种方式 通过管理界面&#xff0c;查看机器的温度通过机器上安装监监控软件来监控温度 在物理机上怎么…

杂项 Chrome浏览器截取长图

WechatIMG18.jpeg 截取网页长图 image.png ⌘Command⌥OptionI快捷键&#xff0c;召唤出调试界面&#xff1b; 再按下⌘Command⇧ShiftP&#xff1b; 输入命令Capture full size screenshot&#xff0c;敲下回车&#xff1b; Chrome 就会自动截取整个网页内容并保存至本地。 自…

html怎么截取部分图片,【原创】详解css用坐标来截取部分图片

标题好像没有表述的十分清楚,直白的说就是在很大的图片上只截取我们需要的位置上的需要大小的图片。现在大家都知道网站技术发展的很快,很多技术较大的网站已经率先的使用了。大家可以看看腾讯会员的网页http://vip.qq.com/,当你想保存其中的一个栏目图片的时候你会发现点击…

Microsoft Edge 浏览器截取网页长图的方法

打开Edge 浏览器 在需要截长图的页面 点击右上角 如图下所示位置 出现 如下 弹窗 选择网页捕获 出现 捕获区域 、捕获整页 根据需求 就行选择 即可 &#xff0c;如选择部分截图 选择捕获区域进行框选即可&#xff0c;如要截取整个网页的长截图 选择 捕获整页即可 捕获区域 …

谷歌浏览器利用开发者工具截取长图

在浏览器的右上角处找到三个竖着的小黑点按钮&#xff0c;点击选择该按钮。 在弹出来的下拉菜单中选择“更多工具”功能按钮&#xff0c;将鼠标放置于该按钮处会弹出一个二级菜单。 在二级菜单中找到“开发者工具”&#xff0c;鼠标左键单击选择该功能按钮&#xff0c;进入开…

友盟分享长图片,如何截取长图片去分享

实际开发中有没有发现有很多应用都是分享长图片呢&#xff1f;咋一看分享图片这是怎么做的呢&#xff0c;是不是后台返回链接图片做的呢&#xff0c;再一看不像哎&#xff0c;那怎么解决呢&#xff1f; 其实很简单啦 // 长图 类型可以是 tableView或者scrollView 等可以滚动的…

Chrome 截取长图

首先打开一个你想要截图的页面然后按下F12按CtrlShiftP打开console菜单在有个红对勾的位置输入 Capture full size screenshot &#xff0c;找到Capture full size screenshot按下回车长页面截图自动生成并保存了

谷歌浏览器截取长图

1、单击左上角应用 2、单击chrome网上应用商店 3、输入full screen 搜索&#xff0c;点击Full Page Screen Capture 5、安装即可

selenium自动化学习--截取长图的方法

用gm实现基于node.js的selenium自动化截取长图的问题 解决思路具体代码效果总结 解决思路 主要运用gm方法对截图的拼接&#xff1a; 先运动webdriver.takeScreenshot()和scroll的操作分别截取出我们需要的截图。 gm().把所有的截图拼接在一起&#xff08;需要安装gm&#xff…

西安城市标识牌的缺陷

西安这座古城&#xff0c;是西北地区政治经济文化中心&#xff0c;西北各个行业的龙头企业也多立足于西安。就标识牌制作来说&#xff0c;西安的标识牌行业在西北地区也首屈一指。不过从专业的眼光观察西安城市标识牌的实际状况&#xff0c;还是有诸多缺陷&#xff0c;其中以下…

标签打印软件如何制作三角形合格证

产品合格证标签是产品生产出售过程中的一个重要的标牌&#xff0c;产品合格证的外观有很多种&#xff0c;方形合格证&#xff0c;圆形合格证&#xff0c;三角形合格证&#xff0c;那么这些各种各样的合格证标签是怎么制作出来的呢&#xff1f;下面以三角形合格证为例教大家如何…