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

本文介绍在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

安装和配置OpenLDAP服务器

步骤1、安装OpenLDAP软件包

完成所有上述活动后,启用symas存储库,该存储库提供OpenLDAP包:

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

在询问是否安装时,请按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

允许服务通过防火墙:

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}开头的密码哈希是密码的加密格式。现在,创建一个.lif,内容如下:

$ vim changerootpw.ldif

dn: olcDatabase={0}config,cn=config

changetype: modify

add: olcRootPW

olcRootPW: {SSHA}Z6wjWlDYAgHkMpezhpCRSw3fGCLiNdMM

要使用创建的LDIF文件修改根密码,请执行以下操作:

$ 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].导入基本架构

OpenLDAP需要几个模式。其中包括属性类型、属性语法、匹配规则和目录可能具有的对象类型。默认情况下,模式存储在/etc/openldap/schema/下。目前,我们需要cosine、nis和inetorgpersonLDAP模式。

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

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数据库中的域名

我们将创建另一个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

样本输出:

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

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

附:从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服务器。此时,您将能够配置OpenLDAP并创建用户、组,甚至添加TLS证书。

栏目相关文章