IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> LDAP搭建 -> 正文阅读

[系统运维]LDAP搭建

LDAP

LDAP 的全称是 Lightweight Directory Access Protocol,「轻量目录访问协议」。

具体可以参考:
https://www.openldap.org/doc/admin24/intro.html

环境

Linux版本:centos 7.9.2009

Ldap版本:openldap 2.4

安装和配置

安装openldap及相关包

yum install openldap openldap-servers openldap-clients

拷贝数据库配置文件

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

DB_CONIFG中主要是关于Berkeley DB的相关的一些配置

启动OpenLDAP Server

systemctl start slapd 
systemctl enable slapd
systemctl status slapd

slapd即standard alone ldap daemon,该进程默认监听389端口

如下图所示:
在这里插入图片描述

设置root用户密码

先用一个命令生成一个LDAP管理用户root密码:

slappasswd
New password:
Re-enter new password:
{SSHA}CfZVRdbczsjDA8xDSCcp2GmfitlRge7f  # 记住这个生成的加密密码,下面会用到  admin

新建一个rootpwd.ldif(名称是自定义的)的文件:

vi rootpwd.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}CfZVRdbczsjDA8xDSCcp2GmfitlRge7f
  • ldifLDAP Data Interchange Format,是LDAP中数据交换的一种文件格式。文件内容采用的是key-value形式,注意value后面不能有空格。
  • 上面内容中dndistingush name
  • olcOnline Configuration,表示写入LDAP后不需要重启即可生效
  • changetype: modify表示修改一个entrychangetype的值可以是add,delete,modify等。
  • add: olcRootPW表示对这个entry新增了一个olcRootPW的属性
  • olcRootPW: {SSHA}CfZVRdbczsjDA8xDSCcp2GmfitlRge7f指定了属性值

下面使用ldapadd命令将上面的rootpwd.ldif文件写入LDAP:

ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.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"

导入schema

导入schema,schema包含为了支持特殊场景相关的属性,可根据选择导入,这里先全部导入:

ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done

设定默认域

先使用slappasswd生成一个密码:

slappasswd
New password:
Re-enter new password:
{SSHA}koOW+gXaDu5tiGTg5W1ZI7dKZhXpwPFh

新建一个domain.ldif的文件:

vi domain.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=zhidaoauto,dc=com" read by * none

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

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


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}koOW+gXaDu5tiGTg5W1ZI7dKZhXpwPFh #替换上面生成的密码  admin1


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

  • olcAccessaccess,该key用于指定目录的ACL即谁有什么权限可以存取什么
  • olcRootDN设定管理员root用户的distingush name
  • 注意替换上面文件内容中cn为具体的域信息
  • olcRootPW用上面新生成的密码替换

写入

# shell执行
ldapmodify -Y EXTERNAL -H ldapi:/// -f domain.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"

添加基本目录

新建一个basedomain.ldif的文件:

dn: dc=zhidaoauto,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: zhidaoauto com
dc: zhidaoauto

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

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

dn: ou=Group,dc=zhidaoauto,dc=com
objectClass: organizationalUnit
ou: Group
  • 注意替换上面文件内容中dn为具体的域信息
  • 理解dn,cn,dc
    • DCDomain ComponentLDAP目录类似文件系统目录dc=zhidaoauto,dc=com相当于/com/zhidaoauto
    • CNCommon NameCN有可能代表一个用户名,例如cn=Manager,dc=zhidaoauto,dc=com表示在/com/zhidaoauto域下的管理员用户Manager
    • OUOrganizational Unit,例如ou=People,dc=zhidaoauto,dc=com表示在/com/zhidaoauto域下的一个组织单元People

写入

# 执行
ldapadd -x -D cn=Manager,dc=zhidaoauto,dc=com -W -f basedomain.ldif
# 输入密码
Enter LDAP Password:
# 会有如下提示 
adding new entry "dc=zhidaoauto,dc=com"

adding new entry "cn=Manager,dc=zhidaoauto,dc=com"

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

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

测试一下

ldapsearch -LLL -W -x -D "cn=Manager,dc=zhidaoauto,dc=com" -H ldap://localhost -b "dc=zhidaoauto,dc=com"
Enter LDAP Password:
dn: dc=zhidaoauto,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: zhidaoauto com
dc: zhidaoauto

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

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

dn: ou=Group,dc=zhidaoauto,dc=com
objectClass: organizationalUnit
ou: Group

管理工具

LDAP Account Manager

docker安装

镜像地址:https://hub.docker.com/r/ldapaccountmanager/lam

拉取镜像 Docker Pull Command

docker pull ldapaccountmanager/lam

在这里插入图片描述

运行此命令:

# 我这里已经有一个了,又做了一次,所以图片中端口中改为了8081
docker run -p 8080:80 -it -d ldapaccountmanager/lam:stable

在这里插入图片描述

然后通过http://localhost:8080/访问 LAM Pro
在这里插入图片描述

如果需要,您可以更改端口 8080

配置文件存放在:

  • /etc/ldap-account-manager
  • /var/lib/ldap-account-manager

在此处查看可能的环境变量:https ://github.com/LDAPAccountManager/lam/blob/develop/lam-packaging/docker/.env

配置

在这里插入图片描述
在这里插入图片描述

  1. 通用配置中修改 ldap服务器地址
  2. 树状结构后缀,对应ldap设置的dc
  3. 合法用户列表,对应ldap设置的dc
  4. 账号类型中修改用户及组的LDAP后缀,对应ldap设置的dc
  5. 修改完毕之后进行保存,即可发现前台管理员用户已经变为ldap中设置的用户名,输入密码即可进入进行管理

LDAP Admin

类似上方设置,后续有机会补充

参考

https://www.cnblogs.com/chadiandianwenrou/p/9522756.html

https://blog.frognew.com/2017/05/openldap-install-notes.html#ldapadmin

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 19:20:33  更:2022-07-20 19:23:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 16:43:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码