Ubuntu22.04下安装LDAP

embedded/2024/9/23 9:27:16/

目录

  • 1 简单说明
  • 2 安装配置
    • 2.1 安装
      • 1、安装前准备
      • 2、安装 OpenLADP
      • 3、配置OpenLDAP
      • 4、设置基本组
      • 5、添加新组
      • 5、添加 OpenLDAP 用户
    • 2.2 安装 LDAP 帐户管理器
      • 1、安装
      • 2、配置 LDAP 帐户管理器
  • 3 简单使用
    • 3.1 创建一个组
    • 3.2 创建一个用户
  • 总结

1 简单说明

之前写过在Centos下的安装,以及使用源码包的方式安装OpenLADP,客户端使用的PHPLDAPadmin,在使用的时候创建用户时并不直观。

这次在Ubuntu22.04上安装使用的是apt来安装,同时使用 LDAP 帐户管理器 (LAM) 来作为 OpenLDAP 服务器的前端。

2 安装配置

2.1 安装

1、安装前准备

条件:
Ubuntu 22.04
在安装之前需要确认80端口没有被占用
具有根/管理员权限的非根用户

在开始 安装 OpenLDAP 服务器之前,需要确保 OpenLDAP 服务器的 FQDN(完全限定域名)配置正确。在这里使用 ldap.localdomain.com

# 在 /etc/hosts 中添加
192.168.92.10 ldap.localdomain.com

2、安装 OpenLADP

# 更新存储库
sudo apt update
sudo apt install slapd ldap-utils

在安装 OpenLDAP 包期间,系统会要求设置 OpenLDAP 的管理员密码。输入 OpenLDAP 管理员用户的强密码并选择“确定”,然后重复您的密码。并且 OpenLDAP 安装将完成。
在这里插入图片描述
在这里插入图片描述

3、配置OpenLDAP

# 要开始配置 OpenLDAP 服务器,请运行以下命令。此命令将重新配置主 OpenLDAP 包“slapd”,您将被要求提供一些基本的 OpenLDAP 配置。
sudo dpkg-reconfigure slapd

当询问“省略 OpenLDAP 服务器配置?”时,选择“否”。这将使用新配置文件和新数据库设置 OpenLDAP 服务器。
在这里插入图片描述

输入 OpenLDAP 安装的域名并选择“确定”。此域名将用作 OpenLDAP 服务器的 DN(专有名称)。在此演示中,域名为“localdomain.com”,因此 DN 为“dc=localdomain,dc=com”。
在这里插入图片描述

输入将在 DN 中使用的组织名称。可以为此使用域,但也可以使用其他名称。
在这里插入图片描述

现在输入 OpenLDAP 服务器的管理员密码并重复密码。另外,请确保密码正确。
在这里插入图片描述
在这里插入图片描述

当要求删除旧数据库时,选择“否”。
在这里插入图片描述

现在选择“是”移动旧的 OpenLDAP 数据库,OpenLDAP 配置完成。
在这里插入图片描述

下面是 OpenLDAP 配置完成后的输出。
在这里插入图片描述重新配置 slapd 包后,使用以下命令编辑配置文件 /etc/ldap/ldap.conf 。

sudo vim /etc/ldap/ldap.conf# 这里的“BASE”是“dc=localdomain,dc=com”,OpenLDAP 服务器的“URI”是“ldap://ldap.localdomain.com
BASE    dc=localdomain,dc=com
URI     ldap://ldap.localdomain.com # 重启服务
sudo systemctl restart slapd.service
sudo systemctl status slapd.service 
● slapd.service - LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)Loaded: loaded (/etc/init.d/slapd; generated)Drop-In: /usr/lib/systemd/system/slapd.service.d└─slapd-remain-after-exit.confActive: active (running) since Thu 2024-08-22 14:14:36 CST; 7s agoDocs: man:systemd-sysv-generator(8)Process: 2245951 ExecStart=/etc/init.d/slapd start (code=exited, status=0/SUCCESS)Tasks: 3 (limit: 9405)Memory: 3.3MCPU: 21msCGroup: /system.slice/slapd.service└─2245960 /usr/sbin/slapd -h "ldap:/// ldapi:///" -g openldap -u openldap -F /etc/ldap/slapd.dAug 22 14:14:36 template systemd[1]: Starting LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)...
Aug 22 14:14:36 template slapd[2245951]:  * Starting OpenLDAP slapd
Aug 22 14:14:36 template slapd[2245957]: @(#) $OpenLDAP: slapd 2.5.18+dfsg-0ubuntu0.22.04.2 (Jul 12 2024 21:51:23) $Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Aug 22 14:14:36 template slapd[2245960]: slapd starting
Aug 22 14:14:36 template slapd[2245951]:    ...done.
Aug 22 14:14:36 template systemd[1]: Started LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol).# 运行以下命令来检查和验证 OpenLDAP 基本配置
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:///
#######
dn: dc=localdomain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: localdomain.com
dc: localdomain

4、设置基本组

# 1、创建 基本组
## 创建一个新的 OpenLDAP 用户基本组,将创建两个不同的基本组,名为“People”的组用于存储用户,然后名为“Groups”的组用于在 OpenLDAP 服务器上存储组。
# 可以使用 LDIF 文件(LDAP 数据交换格式)和 LDAP 工具“ldapadd”
mkdir ldap 
cd ldapcat >> base-groups.ldif << EOF
dn: ou=People,dc=localdomain,dc=com
objectClass: organizationalUnit
ou: Peopledn: ou=Groups,dc=localdomain,dc=com
objectClass: organizationalUnit
ou: Groups
EOFsudo ldapadd -x -D cn=admin,dc=localdomain,dc=com -W -f base-groups.ldif
### 输出
Enter LDAP Password: 
adding new entry "ou=People,dc=localdomain,dc=com"adding new entry "ou=Groups,dc=localdomain,dc=com"# 查看
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:///
#### 输出
dn: dc=localdomain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: localdomain.com
dc: localdomain
####### 以下为刚才新加的内容
dn: ou=People,dc=localdomain,dc=com
objectClass: organizationalUnit
ou: Peopledn: ou=Groups,dc=localdomain,dc=com
objectClass: organizationalUnit
ou: Groups

5、添加新组

vim group.ldif
## 创建一个名为“netops”的新组,将其存储在基本组“Groups”中并定义 gidNumber 为“5000”
dn: cn=netops,ou=Groups,dc=localdomain,dc=com
objectClass: posixGroup
cn: netops
gidNumber: 5000# 运行下面的“ldapadd”命令以添加新的“netops”组。并确保输入 OpenLDAP 服务器的管理员密码。
sudo ldapadd -x -D cn=admin,dc=localdomain,dc=com -W -f group.ldif
#### 输出
Enter LDAP Password: 
adding new entry "cn=netops,ou=Groups,dc=localdomain,dc=com"## 删除
# ldapdelete -D "cn=admin,dc=localdomain,dc=com" -W  "cn=netops,ou=Groups,dc=localdomain,dc=com"# 查看
sudo ldapsearch -x -LLL -b dc=localdomain,dc=com '(cn=netops)' gidNumber
######
dn: cn=netops,ou=Groups,dc=localdomain,dc=com
gidNumber: 5000

5、添加 OpenLDAP 用户

# 生成加密密码 
slappasswd 
New password: 
Re-enter new password: 
{SSHA}ms1fuVBly5kBXdPmPRlg8mavZDyf638e# 
cat >> user.ldif <<EOF
dn: uid=xiaoming,ou=People,dc=localdomain,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: xiaoming
sn: Wang
givenName: Xiaoming
cn: Xiaoming Wang
displayName: Xiaoming Wang
uidNumber: 10000
gidNumber: 5000
userPassword: {SSHA}ms1fuVBly5kBXdPmPRlg8mavZDyf638e
gecos: Xiaoming Wang
loginShell: /bin/bash
homeDirectory: /home/xiaoming
EOF# 使用命令添加用户
sudo ldapadd -x -D cn=admin,dc=localdomain,dc=com -W -f user.ldif
Enter LDAP Password: 
adding new entry "uid=xiaoming,ou=People,dc=localdomain,dc=com"# 查看验证
sudo ldapsearch -x -LLL -b dc=localdomain,dc=com '(uid=xiaoming)' cn uidNumber gidNumber
dn: uid=xiaoming,ou=People,dc=localdomain,dc=com
cn: Xiaoming Wang
uidNumber: 10000
gidNumber: 5000

2.2 安装 LDAP 帐户管理器

LDAP 帐户管理器 (LAM) 是一个 Web 应用程序,可用作 OpenLDAP 服务器的前端。它允许您从 Web 浏览器管理 OpenLDAP 服务器,您可以从 Web 浏览器设置新用户、组等。
默认情况下,LAM 在 Ubuntu 存储库中可用。您可以使用下面的 apt 命令安装它。这将安装一些其他包,包括 PHP 和 Apache2 网络服务器

1、安装

sudo apt install ldap-account-manager
登录:http://192.168.92.10/lam

2、配置 LDAP 帐户管理器

单击“编辑服务器配置文件” OpenLDAP 服务器设置 LAM 配置文件
在这里插入图片描述在这里插入图片描述

当询问密码时,输入默认密码“lam”并单击“登录”。 LDAP 帐户管理器上的默认配置文件是 lam。为 OpenLDAP 服务器编辑此默认配置文件。

在这里插入图片描述

做一些简单设置:

  • 在“常规设置”页面上,可以看到一些不同的设置。
  • 在“工具设置”中,输入 OpenLDAP 服务器的主 DN(可分辨名称)。这里,DN 是dc=localdomain,dc=com
  • 在“安全设置”部分,选择“登录方式”为“固定列表”。然后,输入详细信息登录 OpenLDAP 服务器。 OpenLDAP 的默认用户是 admin ,因此该字段应该是这样的 cn=admin,dc=localdomain,dc=com
  • 最后,在“密码配置文件”部分输入新密码。这将更改配置文件“lam”的默认密码。然后,单击“保存”按钮应用新的更改。
    在这里插入图片描述

保存后会被重定向到 LDAP 帐户管理员登录页面。再次单击“LAM 配置”菜单并编辑默认配置文件“lam”。

  • 现在转到“帐户类型”页面以设置 OpenLDAP 服务器的默认组。
  • 在“用户”部分,将 LDAP 后缀输入为 ou=People,dc=localdomain,dc=com 。 在这个例子中,所有用户都应该在 People 上可用。
  • 在“组”部分,输入 LDAP 后缀为 ou=Groups,dc=localdomain,dc=com 。在此示例中,所有组都应在基本组 Groups 中可用。
    在这里插入图片描述在这里插入图片描述
    现在单击“保存”按钮以保存对默认配置文件“lam”的更改。
    此处的用户和groups和之前在创建组的时候名字一致

再次被重定向到 LDAP 帐户管理员登录页面。默认用户登录现已更改为“admin”。输入 OpenLDAP 密码的管理员密码,然后单击“登录”。你应该得到 LAM 仪表板。
在这里插入图片描述
在这里插入图片描述

3 简单使用

3.1 创建一个组

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

3.2 创建一个用户

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

# 在后台查看可以看到 SiLi
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:///
##### 
dn: cn=SiLi,ou=Groups,dc=localdomain,dc=com
cn: SiLi
gidNumber: 10000
objectClass: posixGroup
memberUid: SiLi

总结

在Ubuntu22.04的时候可以使用apt的方式来安装,在安装LDAP的web 服务器的时候可以考虑选择 LDAP 帐户管理器 (LAM) 。因为 PHPLDAPadmin 安装时需要 php 的环境依赖,相对来说安装麻烦。此外在 PHPLDAPadmin 中创建组织和用户时与平常的语法有很大不同,对新手来说不友好。


http://www.ppmy.cn/embedded/101658.html

相关文章

@PathVariable:Spring MVC中的路径变量解析

在Spring MVC中&#xff0c;PathVariable注解是一个非常重要的特性&#xff0c;它允许开发者将URL中的一部分作为参数传递给控制器&#xff08;Controller&#xff09;的方法。这种机制在处理RESTful风格的API时尤为有用&#xff0c;因为它使得URL更加简洁且富有表达力。本文将…

深入解析:Objective-C中的NSLock与NSRecursiveLock的异同

标题&#xff1a;深入解析&#xff1a;Objective-C中的NSLock与NSRecursiveLock的异同 在Objective-C编程中&#xff0c;多线程的应用越来越广泛&#xff0c;而线程安全问题也随之成为开发者必须面对的挑战。为了解决这些问题&#xff0c;Objective-C提供了多种同步机制&#…

【Python机器学习】NLP概述——深度处理

自然语言处理流水线的各个阶段可以看作是层&#xff0c;就像是前馈神经网络中的层一样。深度学习就是通过在传统的两层机器学习模型架构&#xff08;特征提取建模&#xff09;中添加额外的处理层来创建更复杂的模型和行为。 上图中&#xff0c;前四层对应于聊天机器人流水线中的…

嵌入式Linux学习笔记

1.文件操作命令 2.VI编辑器的部分命令 3.Uboot命令设置环境变量 4. uboot 的顶层 Makefile的重点是“make xxx_defconfig”和“make”这两个命令 &#xff0c;分别如下&#xff1a; 5.在串口SecureCRT中利用uboot启动Linux内核的两种方式 6.Linux内核移植到开发板上也可以反…

Excel VBA 编程学习指南,1.1 什么是VBA及其应用场景

第一章&#xff1a;VBA简介 1.1 什么是VBA及其应用场景 Visual Basic for Applications (VBA) 是一种内置于Microsoft Office应用程序中的编程语言。它主要用于自动化重复性任务、创建用户自定义的功能&#xff0c;以及扩展Excel等Office程序的功能。VBA是一种事件驱动的编程…

【Java设计模式】非循环访问者模式:简化对象交互

文章目录 【Java设计模式】非循环访问者模式&#xff1a;简化对象交互一、概述二、非循环访问者设计模式的意图三、非循环访问者模式的详细解释及实际示例四、Java中非循环访问者模式的编程示例五、非循环访问者模式类图六、Java中何时使用非循环访问者模式八、非循环访问者模式…

elementUI在事件中传递自定义参数

在使用ElementUI的时候&#xff0c;组件的事件会返回一些参数&#xff0c;有的时候我们想在这个事件中传入自己代码中的参数&#xff0c;因此在这里记录一下传递自定义参数的方式。 方式一&#xff1a;利用回调函数 // 闭包写法 <el-input v-model"input" place…

mysql中的explain居然也会骗人

直接甩张图&#xff0c;大家可以猜一下这个sql的执行时间 先提一嘴&#xff0c;bm表总共77条数据&#xff0c;而且没有大字段&#xff0c;字段数量也不多 explain中影响sql的关键 在 EXPLAIN 语句的输出中&#xff0c;影响 SQL 执行时间的关键项主要有以下几个&#xff1a; ty…