更新时间:2023-01-11 09:35:36浏览次数:50+次
本文介绍在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
样本输出:
附:从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证书。
相关资讯