已编辑 4 几周前 通过 ExtremeHow 编辑团队
翻译更新 4 几周前
LDAP,全称为轻量目录访问协议,是用于访问和管理目录信息的协议。LDAP 用于跨不同系统存储和管理用户信息,提供认证,以及在不同系统之间共享目录数据。在 Fedora 上配置 LDAP 涉及几个步骤,包括安装所需的软件包、设置服务器配置以及启动 LDAP 服务。在本指南中,我们将详细介绍这些步骤,以便您能在 Fedora 系统上有效地配置 LDAP。
要在 Fedora 上开始使用 LDAP,首先需要安装 OpenLDAP 包。OpenLDAP 提供了设置 LDAP 服务器所需的工具。要安装 OpenLDAP 包,请打开终端并执行以下命令:
sudo dnf install openldap-servers openldap-clients
此命令安装了 OpenLDAP 服务器和客户端包。服务器包包含设置 LDAP 服务器所需的文件,而客户端包提供了与 LDAP 目录交互的工具。
安装包后,我们需要配置 OpenLDAP 服务器。OpenLDAP 的主配置文件为 /etc/openldap/slapd.d/cn=config/
。此目录包含多个 LDIF 格式的配置文件。建议使用 ldapmodify 工具进行更改,而不是直接编辑这些文件。
rootDN 是 LDAP 管理用户的专有名称。您还必须为 LDAP 目录定义域。这些信息存储在名为 base.ldif
的文件中。使用文本编辑器创建一个包含以下内容的新文件:
dn: olcDatabase=config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com
dn: olcDatabase=config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: <hashed_password_here>
将 example.com
替换为您的域,并将 <hashed_password_here>
替换为经过哈希处理的密码。使用 slappasswd 命令创建哈希密码:
slappasswd
在提示时输入密码,命令将输出一个哈希密码,您可以将其输入到上述 <hashed_password_here>
中。
创建另一个名为 domain.ldif
的文件,以定义域的基础:
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Company
dc: example
dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
再次,将 example.com
和 Example Company
替换为您实际的域和组织名称。
使用 ldapadd 应用这些更改:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f domain.ldif
配置 LDAP 后,下一步是启动 LDAP 服务并确保它在启动时启动。您可以使用以下命令实现:
sudo systemctl start slapd
sudo systemctl enable slapd
要检查 LDAP 服务的状态并确保其正在运行,请使用以下命令:
sudo systemctl status slapd
当 LDAP 服务器运行后,下一步是向目录添加条目。LDAP 中的条目是与特定对象关联的属性集合。您可以在 LDIF 文件中定义条目,并使用 ldapadd 命令将它们添加到目录中。
创建一个名为 ou.ldif
的 LDIF 文件,以定义 LDAP 结构中的组织单位(OU):
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
使用以下命令将组织单位添加到 LDAP 目录:
sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ou.ldif
在提示时,输入您之前配置的 LDAP 管理员的密码。
要添加用户条目,创建另一个名为 user.ldif
的 LDIF 文件,包含用户详细信息:
dn: uid=john.doe,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: John Doe
sn: Doe
uid: john.doe
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/john.doe
loginShell: /bin/bash
mail: john.doe@example.com
userPassword: <hashed_password>
替换用户信息的相关字段,并确保 <hashed_password>
包含用户密码的哈希形式。
使用 ldapadd 命令将用户添加到 LDAP 目录:
sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f user.ldif
设置 LDAP 服务器后,下一步是配置 LDAP 客户端以与服务器交互。如果您在同一台 Fedora 机器上进行配置,请安装所需的 LDAP 客户端包:
sudo dnf install nss-pam-ldapd
安装完成后,配置 /etc/nsswitch.conf
文件。找到以下行并将其更新为包括 ldap
:
passwd: files ldap
shadow: files ldap
group: files ldap
另外,使用您的 LDAP 服务器详细信息更新 LDAP 客户端配置文件 /etc/nslcd.conf
。以下是一个示例:
uri ldap://localhost/
base dc=example,dc=com
binddn cn=Manager,dc=example,dc=com
bindpw <password>
在此配置中,用管理员帐户的密码替换 bindpw
值。最后,重新启动 nslcd 服务:
sudo systemctl restart nslcd
要验证 LDAP 是否设置正确,可以使用 ldapsearch 命令搜索目录结构。例如,要列出目录中的所有条目,使用:
ldapsearch -x -b "dc=example,dc=com" "(objectClass=*)"
此命令查询 LDAP 服务器,并在基础 DN dc=example,dc=com
下检索所有条目。
在 Fedora 上配置 LDAP 为管理网络上的目录信息提供了一种强大而灵活的方法。通过遵循本指南中的步骤,您可以设置最适合您需求的 LDAP 服务器。请记得将占位符值如 example.com
和 Manager
替换为您自己的域和管理帐户。这样可以确保您的 LDAP 配置符合您的特定基础设施。
LDAP 可以扩展以实现更复杂的目录服务,也可以集成到现有系统中进行身份验证和用户管理。凭借其简单的配置和强大的功能集,LDAP 仍然是 Fedora 上网络管理不可或缺的一部分。
如果你发现文章内容有误, 您可以