在 Rocky Linux 8/AlmaLinux 8 上安装和配置 OpenLDAP 服务器 |在 Rocky Linux 8/AlmaLinux 8 上安装和配置 OpenLDAP 服务器 |在 Rocky Linux 8/AlmaLinux 8 上安装和配置 OpenLDAP 服务器 |在 Rocky Linux 8/AlmaLinux 8 上安装和配置 OpenLDAP 服务器 |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Rocky Linux 8/AlmaLinux 8 上安装和配置 OpenLDAP 服务器 |

发表 admin at 2025年2月28日
类别
  • 未分类
标签

目录服务也称为名称服务,充当全球多家公司的权威身份提供商 (IdP)。它们将网络资源的名称映射到各自的网络地址。它充当共享信息基础设施,用于查找、管理和组织日常资源,例如卷、文件夹、文件、打印机、用户、组、设备、电话号码等。为您的组织选择正确的目录服务器非常重要,因为它成为数字工作空间上身份验证和授权的真实来源。

LDAP 是轻量级目录访问协议的缩写。这是用于访问和修改在 TCP/IP 上运行的基于 X.500 的目录服务的协议。它用于处理身份验证并将有关用户、系统、服务、网络和应用程序的信息从目录服务共享到其他服务/应用程序。它不仅可以读取Active Directory,还可以与其他Linux程序集成。

OpenLDAP 是由 OpenLDAP 项目开发的 LDAP 的免费开源实现,并根据称为“OpenLDAP 公共许可证”的独特 BSD 风格许可证发布。它提供了一个命令行实用程序,可用于构建和管理 LDAP 目录。要使用此工具,您需要对 LDAP 协议和结构有一定的深入了解。为了消除这种麻烦,您可以使用 phpLDAPadmin 等第三方工具来管理服务。

OpenLDAP 提供以下很酷的功能:

  • 低成本:它是免费的,使其成为初创公司的常见选择。
  • 灵活性:这使其具有广泛的适用性。
  • LDAPv3 支持:它提供对简单身份验证和安全层以及传输层安全的支持。
  • IPv6 支持:OpenLDAP 支持下一代互联网协议版本 6。
  • 操作系统无关性:Mac、Windows 和 Linux 系统完全支持它。
  • 更新了 C API:这改进了程序员连接和使用 LDAP 目录服务器的方式。
  • 增强型独立 LDAP 服务器
  • DIFv1 支持:它完全符合 LDAP 数据交换格式 (LDIF) 版本 1。

在本指南中,我们将学习如何在 Rocky Linux 8/AlmaLinux 8 上安装和配置 OpenLDAP 服务器。

准备您的服务器

在开始安装之前,您需要确保服务器已更新:

sudo dnf update -y

完成后,检查是否需要重新启动并执行它:

[ -f /var/run/reboot-required ] && sudo reboot -f

设置系统的正确主机名。

sudo hostnamectl set-hostname ldapmaster.computingforgeeks.com

使用正确的主机名和 IP 更新 /etc/hosts,如下所示:

$ sudo vim /etc/hosts
192.168.205.2 ldapmaster.computingforgeeks.com
192.168.205.13 ldapclient.computingforgeeks.com

第 1 步 – 安装 OpenLDAP 软件包

执行完上述所有活动后,启用提供 OpenLDAP 包的 symas 存储库。

sudo wget -q https://repo.symas.com/configs/SOFL/rhel8/sofl.repo -O /etc/yum.repos.d/sofl.repo

启用存储库后,使用以下命令安装软件包:

sudo dnf install symas-openldap-clients symas-openldap-servers

依赖树:

Dependencies resolved.
================================================================================
 Package                      Architecture Version             Repository  Size
================================================================================
Installing:
 symas-openldap-clients       x86_64       2.4.59-1.el8        sofl       203 k
 symas-openldap-servers       x86_64       2.4.59-1.el8        sofl       2.2 M
Installing dependencies:
 symas-openldap               x86_64       2.4.59-1.el8        sofl       345 k

Transaction Summary
================================================================================
Install  3 Packages

Total download size: 2.8 M
Installed size: 6.8 M
Is this ok [y/N]: y

安装完成后,验证如下:

$ rpm -qa | grep ldap
symas-openldap-2.4.59-1.el8.x86_64
openldap-2.4.46-18.el8.x86_64
symas-openldap-servers-2.4.59-1.el8.x86_64
sssd-ldap-2.6.2-3.el8.x86_64
symas-openldap-clients-2.4.59-1.el8.x86_64

步骤 2 – 配置 OpenLDAP 服务器

安装完成后,您可以对 OpenLDAP 服务器进行多项调整。一些必需的配置是:

1.配置SLAPD数据库

现在准备数据库模板 DB_CONFIG;

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

为文件设置正确的权限:

sudo chown ldap. /var/lib/ldap/DB_CONFIG 

现在在 Rocky Linux 8/AlmaLinux 8 上启动并启用 slapd 服务

sudo systemctl enable --now slapd

验证服务是否正在运行:

$ systemctl status slapd
● slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-09-24 04:37:08 EDT; 13s ago
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
  Process: 3917 ExecStart=/usr/sbin/slapd -u ldap -h ldap:/// ldaps:/// ldapi:/// (code=exited, status=0/SUCCESS)
  Process: 3904 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)
 Main PID: 3919 (slapd)
    Tasks: 2 (limit: 23198)
   Memory: 3.1M
   CGroup: /system.slice/slapd.service
           └─3919 /usr/sbin/slapd -u ldap -h ldap:/// ldaps:/// ldapi:///

允许服务通过防火墙:

sudo firewall-cmd --add-service={ldap,ldaps} --permanent
sudo firewall-cmd --reload

配置 OpenLDAP 服务器时涉及多个属性。这些都是:

  • CN – 通用名称
  • O – 组织
  • OU – 组织单位
  • SN – 姓氏
  • DC – 域组件(DC 通常带有两个条目 dc=example,dc=com)
  • DN – 专有名称

2.创建管理员密码

首先,使用 slappasswd 实用程序生成管理员密码。

$ slappasswd
New password: 
Re-enter new password: 
{SSHA}Z6wjWlDYAgHkMpezhpCRSw3fGCLiNdMM

以 {SSHA} 开头的密码哈希是密码的加密格式。现在,创建一个包含以下内容的 .ldif:

$ vim changerootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}Z6wjWlDYAgHkMpezhpCRSw3fGCLiNdMM

使用创建的 LDIF 文件修改 root 密码,如下所示:

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f changerootpw.ldif
ASL/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.导入基本Schema

OpenLDAP 需要多种模式。其中包括属性类型、属性语法、匹配规则以及目录可能具有的对象类型。默认情况下,架构存储在 /etc/openldap/schema/ 下。现在,我们需要 cosine、nis 和 inetorgperson LDAP 模式。

要导入它们,请使用以下命令:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif 
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

创建 OpenLDAP SUDO 架构;

sudo cp /usr/share/doc/sudo/schema.OpenLDAP  /etc/openldap/schema/sudo.schema

创建 sudo 架构 LDIF 文件;

sudo tee  /etc/openldap/schema/sudo.ldif<<EOF
dn: cn=sudo,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: sudo
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'User(s) who may  run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'Host(s) who may run sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'Command(s) to be executed by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoRunAs' DESC 'User(s) impersonated by sudo (deprecated)' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoOption' DESC 'Options(s) followed by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsUser' DESC 'User(s) impersonated by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoRunAsGroup' DESC 'Group(s) impersonated by sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcObjectClasses: ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top STRUCTURAL DESC 'Sudoer Entries' MUST ( cn ) MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ description ) )
EOF

应用配置:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/sudo.ldif

4. 更新 LDAP 数据库中的域名

我们将使用我们的域名、管理员用户(Manager)和加密密码创建另一个 LDIF 文件,如下所示:

$ vim setdomainname.ldif
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=computingforgeeks,dc=com

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

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}Z6wjWlDYAgHkMpezhpCRSw3fGCLiNdMM

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=computingforgeeks,dc=com" read by * none

要应用更改,请运行:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f setdomainname.ldif

步骤 3 – 在 OpenLDAP 上创建组织单位

创建组织单位 (OU)。我们需要创建一个包含以下条目的文件;

$ vim adddomain.ldif
dn: dc=computingforgeeks,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: My example Organisation
dc: computingforgeeks

dn: cn=Manager,dc=computingforgeeks,dc=com
objectClass: organizationalRole
cn: Manager
description: OpenLDAP Manager

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

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

要应用更改,请运行:

$ sudo ldapadd -x -D cn=Manager,dc=computingforgeeks,dc=com -W -f adddomain.ldif
Enter LDAP Password: Enter_set_password_here
adding new entry "dc=computingforgeeks,dc=com"

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

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

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

步骤 4 – 管理 OpenLDAP 服务器上的用户

要在 OpenLDAP 上添加用户帐户,请创建一个文件:

vim addtestuser.ldif

在文件中,添加以下行并根据需要进行更改。

dn: uid=testuser,ou=People,dc=computingforgeeks,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: testuser
sn: temp
userPassword: {SSHA}XXXXXXXXXXXXXXXXXXXX
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/testuser
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

dn: cn=testuser,ou=Group,dc=computingforgeeks,dc=com
objectClass: posixGroup
cn: testuser
gidNumber: 2000
memberUid: testuser

您可以使用 slappasswd 实用程序创建用户密码,并将其替换为 userPassword: {SSHA}XXXXXXXXXXXXXXXXXXXX

现在应用更改:

$ sudo ldapadd -x -D cn=Manager,dc=computingforgeeks,dc=com -W -f addtestuser.ldif 
Enter LDAP Password: 
adding new entry "uid=testuser,ou=People,dc=computingforgeeks,dc=com"

adding new entry "cn=testuser,ou=Group,dc=computingforgeeks,dc=com"

创建后,验证用户是否已添加。

ldapsearch -x cn=testuser -b dc=computingforgeeks,dc=com

示例输出:

从 LDAP 数据库中删除用户

也可以从数据库中删除用户。例如,要从 LDAP 服务器中删除上面创建的用户,我们将使用以下命令:

sudo ldapdelete -x -W -D 'cn=Manager,dc=computingforgeeks,dc=com' "uid=testuser1,ou=People,dc=computingforgeeks,dc=com"
sudo ldapdelete -x -W -D 'cn=Manager,dc=computingforgeeks,dc=com' "cn=testuser1,ou=Group,dc=computingforgeeks,dc=com" 

步骤 5 – 配置 OpenLDAP SSL/TLS

可以为 OpenLDAP 设置安全的客户端-服务器通信。您需要为 OpenLDAP 生成 SSL 证书。

例如,您可以生成自签名证书,如图所示;

sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/pki/tls/ldapserver.key \
  -out /etc/pki/tls/ldapserver.crt

生成后,设置正确的所有权:

sudo chown ldap:ldap /etc/pki/tls/{ldapserver.crt,ldapserver.key}

现在,创建一个配置文件:

$ vim add-tls.ldif
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/pki/tls/ldapserver.crt
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/pki/tls/ldapserver.key
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/pki/tls/ldapserver.crt

应用更改:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f add-tls.ldif

最后,更新 OpenLDAP 配置:

$ sudo vim /etc/openldap/ldap.conf
...
#TLS_CACERT     /etc/pki/tls/cert.pem
TLS_CACERT     /etc/pki/tls/ldapserver.crt

要应用更改,请重新启动服务:

sudo systemctl restart slapd

下一篇文章是关于客户端配置:

  • 在 Rocky Linux 8/AlmaLinux 8 上配置 OpenLDAP 客户端

结论

这标志着本指南关于如何在 Rocky Linux 8/AlmaLinux 8 上安装和配置 OpenLDAP 服务器的结束。此时,您应该能够配置 OpenLDAP 并创建用户和组,甚至添加 TLS 证书。

查看更多:

  • 如何在 Docker 容器中运行 OpenLDAP 服务器
  • 在CentOS 8上配置OpenLDAP主从复制
  • 在 CentOS 8 上设置 OpenLDAP 多主复制
©2015-2025 Norria support@norria.com