安装 Red Hat Directory Server
管理目录服务器安装、更新和卸载的说明。开始使用实例所需的基本任务
摘要
提供有关红帽目录服务器的反馈
我们感谢您对我们文档和产品的输入信息。请让我们了解如何改进文档。要做到这一点:
第 1 章 启用目录服务器软件仓库
在安装目录服务器软件包前,您必须启用目录服务器存储库。根据您的订阅类型,您可以启用以下 Directory Server 软件仓库:
- 默认目录服务器存储库
- 延长更新支持(EUS)软件仓库
使用以下步骤启用 default 和 EUS 软件仓库。
前提条件
- 在 Red Hat Subscription Management 服务中注册了系统。
- 您的红帽帐户中有有效的红帽目录服务器订阅。
流程
可选:如果您没有启用 RHEL 默认 BaseOS 和 AppStream 软件仓库,您必须启用这些软件仓库:
要启用默认的 RHEL 软件仓库,请运行:
subscription-manager repos \ --enable=rhel-9-for-x86_64-appstream-rpms \ --enable=rhel-9-for-x86_64-baseos-rpms
# subscription-manager repos \ --enable=rhel-9-for-x86_64-appstream-rpms \ --enable=rhel-9-for-x86_64-baseos-rpms Repository 'rhel-9-for-x86_64-appstream-rpms' is enabled for this system. Repository 'rhel-9-for-x86_64-baseos-rpms' is enabled for this system.
Copy to Clipboard Copied! 启用 RHEL EUS 软件仓库:
可选:如果您没有将 RHEL EUS 版本设置为次版本,如 9.6,请运行:
subscription-manager release --set=9.6
# subscription-manager release --set=9.6
Copy to Clipboard Copied! 启用 RHEL EUS 软件仓库:
subscription-manager repos \ --enable=rhel-9-for-x86_64-appstream-eus-rpms \ --enable=rhel-9-for-x86_64-baseos-eus-rpms
# subscription-manager repos \ --enable=rhel-9-for-x86_64-appstream-eus-rpms \ --enable=rhel-9-for-x86_64-baseos-eus-rpms Repository 'rhel-9-for-x86_64-appstream-eus-rpms' is enabled for this system. Repository 'rhel-9-for-x86_64-baseos-eus-rpms' is enabled for this system.
Copy to Clipboard Copied!
启用 Directory Server 存储库:
要启用默认的 Directory Server 存储库,请运行:
subscription-manager repos --enable=dirsrv-12-for-rhel-9-x86_64-rpms
# subscription-manager repos --enable=dirsrv-12-for-rhel-9-x86_64-rpms Repository 'dirsrv-12-for-rhel-9-x86_64-rpms' is enabled for this system.
Copy to Clipboard Copied! 要为启用 Directory Server EUS 存储库,请运行:
subscription-manager repos --enable=dirsrv-12-for-rhel-9-x86_64-eus-rpms
# subscription-manager repos --enable=dirsrv-12-for-rhel-9-x86_64-eus-rpms Repository 'dirsrv-12-for-rhel-9-x86_64-eus-rpms' is enabled for this system.
Copy to Clipboard Copied! - 重要的
- 当您启用 Directory Server EUS 存储库时,请确保也启用了 RHEL EUS 软件仓库。
验证
列出启用的默认 Directory Server 仓库:
subscription-manager repos --list-enabled
# subscription-manager repos --list-enabled
Copy to Clipboard Copied! 以下是取决于存储库类型的命令的输出:
对于 Directory Server 12.6,命令会显示:
+----------------------------------------------------------+ Available Repositories in /etc/yum.repos.d/redhat.repo +----------------------------------------------------------+ Repo ID: rhel-9-for-x86_64-appstream-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os Enabled: 1 Repo ID: rhel-9-for-x86_64-baseos-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os Enabled: 1 Repo ID: dirsrv-12-for-rhel-9-x86_64-rpms Repo Name: Red Hat Directory Server 12 for RHEL 9 x86_64 (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/dirsrv/12/os Enabled: 1
+----------------------------------------------------------+ Available Repositories in /etc/yum.repos.d/redhat.repo +----------------------------------------------------------+ Repo ID: rhel-9-for-x86_64-appstream-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os Enabled: 1 Repo ID: rhel-9-for-x86_64-baseos-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os Enabled: 1 Repo ID: dirsrv-12-for-rhel-9-x86_64-rpms Repo Name: Red Hat Directory Server 12 for RHEL 9 x86_64 (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/dirsrv/12/os Enabled: 1
Copy to Clipboard Copied! 对于 Directory Server 12.6 EUS,命令会显示:
+----------------------------------------------------------+ Available Repositories in /etc/yum.repos.d/redhat.repo +----------------------------------------------------------+ Repo ID: rhel-9-for-x86_64-appstream-eus-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9.6/x86_64/appstream/os Enabled: 1 Repo ID: rhel-9-for-x86_64-baseos-eus-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9.6/x86_64/baseos/os Enabled: 1 Repo ID: dirsrv-12-for-rhel-9-x86_64-eus-rpms Repo Name: Red Hat Directory Server 12 for RHEL 9 x86_64 (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9.6/x86_64/dirsrv/12/os Enabled: 1
+----------------------------------------------------------+ Available Repositories in /etc/yum.repos.d/redhat.repo +----------------------------------------------------------+ Repo ID: rhel-9-for-x86_64-appstream-eus-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9.6/x86_64/appstream/os Enabled: 1 Repo ID: rhel-9-for-x86_64-baseos-eus-rpms Repo Name: Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9.6/x86_64/baseos/os Enabled: 1 Repo ID: dirsrv-12-for-rhel-9-x86_64-eus-rpms Repo Name: Red Hat Directory Server 12 for RHEL 9 x86_64 (RPMs) Repo URL: https://cdn.redhat.com/content/dist/rhel9/9.6/x86_64/dirsrv/12/os Enabled: 1
Copy to Clipboard Copied!
第 2 章 使用命令行设置实例
在命令行中,您可以使用 .inf
文件或交互式安装程序设置新实例。另外,您还可以以非 root 用户身份设置新实例。
2.1. 前提条件
- 服务器满足最新 Red Hat Directory Server 版本的要求,如 Red Hat Directory Server 12 发行注记所述
2.2. 在命令行中使用 .inf
文件设置新实例
当您在命令行中使用 .inf
文件设置 Directory 服务器时,您可以自定义高级设置。例如,您可以在 .inf
文件中自定义以下设置:
-
在服务启动后,用户和组
ns-slapd
Directory Server 进程使用。请注意,如果您使用不同的用户和组,则必须在开始安装前手动创建用户和组。 - 路径,如配置、备份和数据目录。
- 证书的有效性。
2.2.1. 安装 Directory 服务器软件包
使用以下步骤安装 Directory 服务器软件包。
前提条件
- 您启用了 RHEL 和目录服务器存储库,如 启用目录服务器存储库 中所述。
流程
启用
redhat-ds:12
模块并安装目录服务器软件包:dnf module enable redhat-ds:12 dnf install 389-ds-base cockpit-389-ds
# dnf module enable redhat-ds:12 # dnf install 389-ds-base cockpit-389-ds
Copy to Clipboard Copied!
2.2.2. 为 Directory Server 实例安装创建 .inf 文件
为 dscreate
实用程序创建一个 .inf
文件,并将 文件调整为您的环境。在后续步骤中,您将使用此文件创建新的 Directory 服务器实例。
前提条件
-
已安装
redhat-ds:12
模块。
流程
使用
dscreate create-template
命令创建模板.inf
文件。例如,要在/root/instance_name.inf
文件中存储模板,请输入:dscreate create-template /root/instance_name.inf
# dscreate create-template /root/instance_name.inf
Copy to Clipboard Copied! 创建的文件包含所有可用的参数,包括描述。
编辑您在上一步中创建的文件:
取消注释您要设置为自定义安装的参数。
所有参数都有默认值。但是,为生产环境自定义某些参数。例如,在
[slapd]
部分至少设置以下参数:instance_name = instance_name root_password = password
instance_name = instance_name root_password = password
Copy to Clipboard Copied! 默认情况下,Directory 服务器创建带有 Berkeley 数据库(BDB)的实例。要安装使用 LMDB 后端(从 Directory Server 12.5 开始)的实例,请设置以下参数:
db_lib = mdb mdb_max_size = 21474836480
db_lib = mdb mdb_max_size = 21474836480
Copy to Clipboard Copied! 请注意,
mdb_max_size
必须是取决于您的目录大小的整数值。如需了解更多详细信息,请参阅 nsslapd-mdb-max-size 属性描述。要在实例创建过程中自动创建后缀,请在
[backend-userroot]
部分中设置以下参数:create_suffix_entry = True suffix = dc=example,dc=com
create_suffix_entry = True suffix = dc=example,dc=com
Copy to Clipboard Copied! 重要如果在实例创建过程中没有创建后缀,则必须稍后手动创建它,然后才能将数据存储到这个实例中。
可选:卸载其他参数,并将其设置为适合您的环境值。例如,使用这些参数指定复制选项,如身份验证凭据和更改日志修剪,或为 LDAP 和 LDAPS 协议设置不同的端口。
注意默认情况下,您创建的新实例包含自签名证书和启用 TLS。为提高安全性,请不要禁用此功能。请注意,您可以稍后将自签名证书替换为认证机构(CA)发布的证书。
2.2.3. 使用 .inf 文件设置新的 Directory Server 实例
这部分论述了如何使用 .inf
文件使用命令行设置新的 Directory Server 实例。
前提条件
-
您为 Directory Server 实例创建了一个
.inf
文件。
流程
将
.inf
文件传递给dscreate from-file
命令,以创建新实例:dscreate from-file /root/instance_name.inf
# dscreate from-file /root/instance_name.inf Starting installation ... Validate installation settings ... Create file system structures ... Create self-signed certificate database ... Perform SELinux labeling ... Perform post-installation tasks ... Completed installation for instance: slapd-instance_name
Copy to Clipboard Copied! dscreate
工具会自动启动实例,并将 RHEL 配置为在系统引导时启动服务。在防火墙中打开所需端口:
firewall-cmd --permanent --add-port={389/tcp,636/tcp}
# firewall-cmd --permanent --add-port={389/tcp,636/tcp}
Copy to Clipboard Copied! 重新载入防火墙配置:
firewall-cmd --reload
# firewall-cmd --reload
Copy to Clipboard Copied!
2.3. 使用交互式安装程序在命令行中设置新实例
管理员可以通过回答有关新实例配置的问题,来使用 Directory Server 互动安装程序设置新实例。
如果要在安装过程中自定义其他设置,请使用 .inf
文件而不是交互式安装程序。详情请参阅 .inf
文件在命令行中设置新实例。
2.3.1. 前提条件
- 服务器满足最新红帽目录服务器版本要求,如 Red Hat Directory Server 12 发行注记 所述。
2.3.2. 安装 Directory 服务器软件包
使用以下步骤安装 Directory 服务器软件包。
前提条件
- 您启用了 RHEL 和目录服务器存储库,如 启用目录服务器存储库 中所述。
流程
启用
redhat-ds:12
模块并安装目录服务器软件包:dnf module enable redhat-ds:12 dnf install 389-ds-base cockpit-389-ds
# dnf module enable redhat-ds:12 # dnf install 389-ds-base cockpit-389-ds
Copy to Clipboard Copied!
2.3.3. 使用互动安装程序创建实例
本节介绍如何使用交互式安装程序创建新的 Directory Server 实例。
流程
启动交互式安装程序:
dscreate interactive
# dscreate interactive
Copy to Clipboard Copied! 回答交互式安装程序的问题。
要使用安装程序中大部分问题后面的方括号中显示的默认值,请按 Enter 键,而无需输入值。
Install Directory Server (interactive mode) =========================================== Enter system's hostname [server.example.com]: Enter the instance name [server]: instance_name Enter port number [389]: Create self-signed certificate database [yes]: Enter secure port number [636]: Enter Directory Manager DN [cn=Directory Manager]: Enter the Directory Manager password: password Confirm the Directory Manager Password: password Choose whether mdb or bdb is used. [bdb]:
Install Directory Server (interactive mode) =========================================== Enter system's hostname [server.example.com]: Enter the instance name [server]: instance_name Enter port number [389]: Create self-signed certificate database [yes]: Enter secure port number [636]: Enter Directory Manager DN [cn=Directory Manager]: Enter the Directory Manager password: password Confirm the Directory Manager Password: password Choose whether mdb or bdb is used. [bdb]:
Copy to Clipboard Copied! 注意默认情况下,Directory 服务器创建带有 Berkeley 数据库(BDB)的实例。要安装一个技术预览的 LMDB 实例,从 Directory Server 12.5 开始,请在下一步中设置
mdb
和设置 LMDB 数据库大小。Enter the database suffix (or enter "none" to skip) [dc=server,dc=example,dc=com]: dc=example,dc=com Create sample entries in the suffix [no]: Create just the top suffix entry [no]: yes Do you want to start the instance after the installation? [yes]: Are you ready to install? [no]: yes
Enter the database suffix (or enter "none" to skip) [dc=server,dc=example,dc=com]: dc=example,dc=com Create sample entries in the suffix [no]: Create just the top suffix entry [no]: yes Do you want to start the instance after the installation? [yes]: Are you ready to install? [no]: yes
Copy to Clipboard Copied! 注意您可以设置由
pwdhash
生成的{algorithm}hash
字符串来设置密码,而不是使用明文密码。例如:Enter the Directory Manager password: {PBKDF2-SHA512}100000$Haw7UDcBKUBejEjOTVHbiefT6cokHLo2$PeoP7W3B92Jzby7DGRkicovTN4LDGhnsC4EWCsv6crA2KA0Xn6rxPePX9UXhlM2utOPSQHeVpZzscNTx+fGi7A==
Enter the Directory Manager password: {PBKDF2-SHA512}100000$Haw7UDcBKUBejEjOTVHbiefT6cokHLo2$PeoP7W3B92Jzby7DGRkicovTN4LDGhnsC4EWCsv6crA2KA0Xn6rxPePX9UXhlM2utOPSQHeVpZzscNTx+fGi7A==
Copy to Clipboard Copied! 在防火墙中打开所需端口:
firewall-cmd --permanent --add-port={389/tcp,636/tcp}
# firewall-cmd --permanent --add-port={389/tcp,636/tcp}
Copy to Clipboard Copied! 重新载入防火墙配置:
firewall-cmd --reload
# firewall-cmd --reload
Copy to Clipboard Copied!
2.4. 以非 root 用户身份设置新实例
如果您没有 root 权限,您可以以非 root 用户身份执行 Directory Server 安装。使用此方法测试目录服务器和开发 LDAP 应用程序。但请注意,非 root 用户运行的实例存在限制,例如:
- 它们不支持简单网络管理协议(SNMP)。
- 它们只能使用大于或等于 1024 的端口。
2.4.1. 准备环境以以非 root 用户身份安装目录服务器
作为非 root 用户,在您可以创建和管理目录服务器实例之前,您需要使用 dscreate ds-root
命令准备正确的环境。
前提条件
-
您以
root
用户身份安装了 Directory Server 软件包。
流程
确保 PATH 变量中有
$HOME/bin
。如果没有:在
~/.bash_profile
文件中附加以下内容:PATH="$HOME/bin:$PATH"
PATH="$HOME/bin:$PATH"
Copy to Clipboard Copied! 重新读取
~/bash_profile
文件:source ~/.bash_profile
$ source ~/.bash_profile
Copy to Clipboard Copied!
配置实例创建的环境以使用自定义位置:
dscreate ds-root $HOME/dsroot $HOME/bin
$ dscreate ds-root $HOME/dsroot $HOME/bin
Copy to Clipboard Copied! 此命令将标准安装路径替换为
$HOME/dsroot/
,并在$HOME/bin/
目录中创建标准目录服务器管理工具的副本。要使 shell 使用新路径:
清除缓存:
hash -r dscreate
$ hash -r dscreate
Copy to Clipboard Copied! 验证 shell 是否使用正确的命令路径:
which dscreate
$ which dscreate ~/bin/dscreate
Copy to Clipboard Copied!
对于 dscreate
命令,shell 现在使用 $HOME/bin/dscreate
而不是 /usr/bin/dscreate
。
2.4.2. 以非 root 用户身份安装新实例
要在没有 root
权限的情况下安装目录服务器,您可以使用交互式安装程序。安装后,Directory 服务器会在自定义位置创建一个实例,用户可以像常一样运行 dscreate
、dsctl
、dsconf
实用程序。
前提条件
- 为非 root 安装准备了环境。
-
您有
sudo
权限来使用firewall-cmd
工具,如果要从外部提供目录服务器实例。
流程
使用互动安装程序创建实例
启动交互式安装程序:
dscreate interactive
$ dscreate interactive
Copy to Clipboard Copied! 回答交互式安装程序的问题。
要使用安装程序中大部分问题后面的方括号中显示的默认值,请按 Enter 键,而无需输入值。
注意在安装过程中,您必须选择实例端口和安全端口号 大于 1024 (例如 1389 和 1636)。否则,用户没有绑定到特权端口(1-1023)的权限。
Install Directory Server (interactive mode) =========================================== Non privileged user cannot use semanage, will not relabel ports or files. Selinux support will be disabled, continue? [yes]: yes Enter system's hostname [server.example.com]: Enter the instance name [server]: instance_name Enter port number [389]: 1389 Create self-signed certificate database [yes]: Enter secure port number [636]: 1636 Enter Directory Manager DN [cn=Directory Manager]: Enter the Directory Manager password: password Confirm the Directory Manager Password: password Choose whether mdb or bdb is used. [bdb]:
Install Directory Server (interactive mode) =========================================== Non privileged user cannot use semanage, will not relabel ports or files. Selinux support will be disabled, continue? [yes]: yes Enter system's hostname [server.example.com]: Enter the instance name [server]: instance_name Enter port number [389]: 1389 Create self-signed certificate database [yes]: Enter secure port number [636]: 1636 Enter Directory Manager DN [cn=Directory Manager]: Enter the Directory Manager password: password Confirm the Directory Manager Password: password Choose whether mdb or bdb is used. [bdb]:
Copy to Clipboard Copied! 注意默认情况下,Directory 服务器创建带有 Berkeley 数据库(BDB)的实例。要安装一个技术预览的 LMDB 实例,从 Directory Server 12.5 开始,请在下一步中设置
mdb
和设置 LMDB 数据库大小。Enter the database suffix (or enter "none" to skip) [dc=server,dc=example,dc=com]: dc=example,dc=com Create sample entries in the suffix [no]: Create just the top suffix entry [no]: yes Do you want to start the instance after the installation? [yes]: Are you ready to install? [no]: yes
Enter the database suffix (or enter "none" to skip) [dc=server,dc=example,dc=com]: dc=example,dc=com Create sample entries in the suffix [no]: Create just the top suffix entry [no]: yes Do you want to start the instance after the installation? [yes]: Are you ready to install? [no]: yes
Copy to Clipboard Copied! 注意您可以设置由
pwdhash
生成的{algorithm}hash
字符串来设置密码,而不是使用明文密码。例如:Enter the Directory Manager password: {PBKDF2-SHA512}100000$Haw7UDcBKUBejEjOTVHbiefT6cokHLo2$PeoP7W3B92Jzby7DGRkicovTN4LDGhnsC4EWCsv6crA2KA0Xn6rxPePX9UXhlM2utOPSQHeVpZzscNTx+fGi7A==
Enter the Directory Manager password: {PBKDF2-SHA512}100000$Haw7UDcBKUBejEjOTVHbiefT6cokHLo2$PeoP7W3B92Jzby7DGRkicovTN4LDGhnsC4EWCsv6crA2KA0Xn6rxPePX9UXhlM2utOPSQHeVpZzscNTx+fGi7A==
Copy to Clipboard Copied!
可选:如果要使目录服务器实例从外部可用:
在防火墙中打开端口:
sudo firewall-cmd --permanent --add-port={1389/tcp,1636/tcp}
# sudo firewall-cmd --permanent --add-port={1389/tcp,1636/tcp}
Copy to Clipboard Copied! 重新载入防火墙配置:
sudo firewall-cmd --reload
# sudo firewall-cmd --reload
Copy to Clipboard Copied!
验证
运行
ldapsearch
命令来测试用户可以连接到实例:ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com:1389 -b "dc=example,dc=com" -s sub -x "(objectclass=*)"
$ ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com:1389 -b "dc=example,dc=com" -s sub -x "(objectclass=*)"
Copy to Clipboard Copied!
第 3 章 使用 Web 控制台设置新实例
如果您希望基于浏览器的界面来设置 Directory 服务器,您可以使用 Directory Server Web 控制台。
3.1. 前提条件
- 服务器满足最新 Red Hat Directory Server 版本的要求,如 Red Hat Directory Server 12 发行注记 所述。
- 已安装 Directory 服务器软件包,如 安装 Directory 服务器软件包所述
3.2. 使用 Web 控制台设置新的 Directory Server 实例
本节论述了如何使用 Web 控制台设置新的 Directory Server 实例。
前提条件
-
已安装
cockpit
Web 控制台软件包。 -
cockpit.socket
systemd 单元已启用并启动。 -
您在本地防火墙中打开了端口
9090
,以允许访问 Web 控制台。
流程
使用浏览器连接到在 Directory Server 主机上端口 9090 上运行的 Web 控制台:
https://server.example.com:9090
https://server.example.com:9090
Copy to Clipboard Copied! -
以
root
用户身份登录,或者以具有 sudo 权限的用户登录。 - 选择 Red Hat Directory Server 条目。
创建新实例:
- 如果服务器上不存在任何实例,请单击 按钮。
- 如果服务器已在运行现有的实例,请选择 ,再单击 。
完成
Create New Server Instance
表单的字段:-
实例名称
:设置实例的名称。请注意,您不能在创建实例后更改实例的名称。 -
端口
:设置 LDAP 协议的端口号。端口不能被其他实例或服务使用。默认端口为 389。 -
安全端口
:设置 LDAPS 协议的端口号。端口不能被其他实例或服务使用。默认端口为 636。 创建自签署的 TLS 证书 DB:在实例中启用 TLS 加密,并创建一个自签名证书
。为提高安全性,红帽建议您创建一个启用了自签名证书和 TLS 的新实例。请注意,您可以稍后将自签名证书替换为认证机构(CA)发布的证书。
-
目录管理器 DN
:设置实例的管理用户的可分辨名称(DN)。默认值为cn=Directory Manager
。 -
目录管理器
密码:设置实例的管理用户的密码。 -
确认密码
: Must 的值与Directory Manager Password
字段中的值相同。 Create Database
:选择此字段以在实例创建过程中自动创建后缀。重要如果在实例创建过程中没有创建后缀,则必须稍后手动创建它,然后才能将数据存储到这个实例中。
如果启用了这个选项,请填写添加字段:
-
Database Suffix
:设置后端的后缀。 -
Database Name
:设置后端数据库的名称。 -
数据库初始化
:将此字段设置为Create Suffix Entry
。
-
-
点
。新实例启动,并配置为在系统引导时自动启动。
在防火墙中打开所需端口:
firewall-cmd --permanent --add-port={389/tcp,636/tcp}
# firewall-cmd --permanent --add-port={389/tcp,636/tcp}
Copy to Clipboard Copied! 重新载入防火墙配置:
firewall-cmd --reload
# firewall-cmd --reload
Copy to Clipboard Copied!
第 4 章 使用负载均衡器后面的 Kerberos 身份验证安装 Directory 服务器
安装在负载均衡器后面工作的 Directory 服务器实例并支持 Kerberos 身份验证需要在安装过程中比较额外的步骤。
如果用户使用通用安全服务 API (GSSAPI)访问服务,则 Kerberos 主体包括服务的 DNS 名称。如果用户连接到负载均衡器,则主体包含负载均衡器的 DNS 名称,例如: ldap/loadbalancer.example.com@EXAMPLE.COM
,而不是 Directory Server 实例的 DNS 名称。
为便于成功连接,接收请求的 Directory 服务器实例必须使用与负载均衡器相同的名称,即使负载均衡器 DNS 名称不同。
这部分论述了如何使用负载均衡器后面的 Kerberos 身份验证设置 Directory Server 实例。
4.1. 前提条件
- 服务器满足最新红帽目录服务器版本要求,如 Red Hat Directory Server 12 发行注记 所述。
4.2. 安装 Directory 服务器软件包
使用以下步骤安装 Directory 服务器软件包。
前提条件
- 您启用了 RHEL 和目录服务器存储库,如 启用目录服务器存储库 中所述。
流程
启用
redhat-ds:12
模块并安装目录服务器软件包:dnf module enable redhat-ds:12 dnf install 389-ds-base cockpit-389-ds
# dnf module enable redhat-ds:12 # dnf install 389-ds-base cockpit-389-ds
Copy to Clipboard Copied!
4.3. 为 Directory Server 实例安装创建 .inf 文件
为 dscreate
实用程序创建一个 .inf
文件,并将 文件调整为您的环境。在后续步骤中,您将使用此文件创建新的 Directory 服务器实例。
前提条件
-
已安装
redhat-ds:12
模块。
流程
使用
dscreate create-template
命令创建模板.inf
文件。例如,要在/root/instance_name.inf
文件中存储模板,请输入:dscreate create-template /root/instance_name.inf
# dscreate create-template /root/instance_name.inf
Copy to Clipboard Copied! 创建的文件包含所有可用的参数,包括描述。
编辑您在上一步中创建的文件:
取消注释您要设置为自定义安装的参数。
所有参数都有默认值。但是,为生产环境自定义某些参数。例如,在
[slapd]
部分至少设置以下参数:instance_name = instance_name root_password = password
instance_name = instance_name root_password = password
Copy to Clipboard Copied! 默认情况下,Directory 服务器创建带有 Berkeley 数据库(BDB)的实例。要安装使用 LMDB 后端(从 Directory Server 12.5 开始)的实例,请设置以下参数:
db_lib = mdb mdb_max_size = 21474836480
db_lib = mdb mdb_max_size = 21474836480
Copy to Clipboard Copied! 请注意,
mdb_max_size
必须是取决于您的目录大小的整数值。如需了解更多详细信息,请参阅 nsslapd-mdb-max-size 属性描述。要在带有 GSSAPI 身份验证的负载均衡器后使用实例,将
[general]
部分中的full_machine_name
参数设置为负载均衡器的完全限定域名(FQDN),而不是 Directory Server 主机的 FQDN:full_machine_name = loadbalancer.example.com
full_machine_name = loadbalancer.example.com
Copy to Clipboard Copied! 取消注释
[general]
部分中的strict_host_checking
参数,并将它设为False
:strict_host_checking = False
strict_host_checking = False
Copy to Clipboard Copied! 要在实例创建过程中自动创建后缀,请在
[backend-userroot]
部分中设置以下参数:create_suffix_entry = True suffix = dc=example,dc=com
create_suffix_entry = True suffix = dc=example,dc=com
Copy to Clipboard Copied! 重要如果在实例创建过程中没有创建后缀,则必须稍后手动创建它,然后才能将数据存储到这个实例中。
可选:卸载其他参数,并将其设置为适合您的环境值。例如,使用这些参数指定复制选项,如身份验证凭据和更改日志修剪,或为 LDAP 和 LDAPS 协议设置不同的端口。
注意默认情况下,您创建的新实例包含自签名证书和启用 TLS。为提高安全性,请不要禁用此功能。请注意,您可以稍后将自签名证书替换为认证机构(CA)发布的证书。
4.4. 使用 .inf 文件设置新的 Directory Server 实例
这部分论述了如何使用 .inf
文件使用命令行设置新的 Directory Server 实例。
前提条件
-
您为 Directory Server 实例创建了一个
.inf
文件。
流程
将
.inf
文件传递给dscreate from-file
命令,以创建新实例:dscreate from-file /root/instance_name.inf
# dscreate from-file /root/instance_name.inf Starting installation ... Validate installation settings ... Create file system structures ... Create self-signed certificate database ... Perform SELinux labeling ... Perform post-installation tasks ... Completed installation for instance: slapd-instance_name
Copy to Clipboard Copied! dscreate
工具会自动启动实例,并将 RHEL 配置为在系统引导时启动服务。在防火墙中打开所需端口:
firewall-cmd --permanent --add-port={389/tcp,636/tcp}
# firewall-cmd --permanent --add-port={389/tcp,636/tcp}
Copy to Clipboard Copied! 重新载入防火墙配置:
firewall-cmd --reload
# firewall-cmd --reload
Copy to Clipboard Copied!
4.5. 为负载均衡器创建 keytab,并将 Directory 服务器配置为使用 keytab
在用户使用 GSSAPI 在负载均衡器后对 Directory 服务器进行身份验证之前,您必须为负载均衡器创建 Kerberos 主体,并将 Directory 服务器配置为使用 Kerberos 主体。本节描述了这个步骤。
前提条件
包含以下
.inf
文件配置的实例:-
full_machine_name
参数设为负载均衡器的 DNS 名称。 -
strict_host_checking
参数设置为False
。
-
流程
-
为负载均衡器创建 Kerberos 主体,如
ldap/loadbalancer.example.com_@_EXAMPLE.COM
。创建服务主体的步骤取决于您的 Kerberos 安装。详情请查看您的 Kerberos 服务器文档。 -
可选:您可以在 keytab 文件中添加更多主体。例如,要让用户通过使用 Kerberos 身份验证直接连接到负载均衡器后面的 Directory Server 实例,可以为 Directory Server 主机添加额外的主体。例如:
ldap/server1.example.com@EXAMPLE.COM
. -
将服务 keytab 文件复制到 Directory 服务器主机上,并将其存储,例如在
/etc/dirsrv/slapd-instance_name/ldap.keytab
文件中。 将服务 keytab 的路径添加到
/etc/sysconfig/slapd-instance_name
文件中:KRB5_KTNAME=/etc/dirsrv/slapd-instance_name/ldap.keytab
KRB5_KTNAME=/etc/dirsrv/slapd-instance_name/ldap.keytab
Copy to Clipboard Copied! 重启 Directory Server 实例:
dsctl instance_name restart
# dsctl instance_name restart
Copy to Clipboard Copied!
验证
验证您可以使用 GSSAPI 协议连接到负载均衡器:
ldapsearch -H ldap://loadbalancer.example.com -Y GSSAPI
# ldapsearch -H ldap://loadbalancer.example.com -Y GSSAPI
Copy to Clipboard Copied! 如果您在 keytab 文件中添加了额外的 Kerberos 主体,如 Directory Server 主机本身,还要验证这些连接:
ldapsearch -H ldap://server1.example.com -Y GSSAPI
# ldapsearch -H ldap://server1.example.com -Y GSSAPI
Copy to Clipboard Copied!
第 5 章 以 FIPS 模式运行 Directory 服务器
目录服务器全面支持联邦信息处理标准 (FIPS) 140-2。当您以 FIPS 模式运行 Directory 服务器时,与安全相关的设置改变。例如,SSL 会自动禁用,且只使用 TLS 1.2 和 1.3 加密。
5.1. 启用 FIPS 模式
要在联邦信息处理标准(FIPS)模式中使用 Directory Server,请在 RHEL 和 Directory Server 中启用模式。
前提条件
- 在 RHEL 中启用了 FIPS 模式。
流程
为网络安全服务(NSS)数据库启用 FIPS 模式:
modutil -dbdir /etc/dirsrv/slapd-instance_name/ -fips true
# modutil -dbdir /etc/dirsrv/slapd-instance_name/ -fips true
Copy to Clipboard Copied! 重启实例:
dsctl instance_name restart
# dsctl instance_name restart
Copy to Clipboard Copied!
验证
验证为 NSS 数据库启用了 FIPS 模式:
modutil -dbdir /etc/dirsrv/slapd-instance_name/ -chkfips true
# modutil -dbdir /etc/dirsrv/slapd-instance_name/ -chkfips true FIPS mode enabled.
Copy to Clipboard Copied! 如果模块采用
FIPS 模式,该命令会返回启用了
FIPS 模式。
第 6 章 将 Directory Server 更新至新的次版本
红帽经常发布对 Red Hat Directory Server 12 的更新版本。这部分论述了如何更新 Directory 服务器软件包。
如果要将 Red Hat Directory Server 从版本 10 或 11 迁移到版本 12,请参阅:
6.1. 更新 Directory 服务器软件包
使用 dnf
工具更新模块,该模块也会自动更新相关软件包。
前提条件
- 已安装 Directory Server 软件包。
- 您的红帽帐户中有有效的红帽目录服务器订阅。
流程
- 确保启用了正确的软件仓库。详情请参阅 启用目录服务器存储库。
将 Directory Server 软件包及其依赖项更新至最新可用版本:
dnf update 389-ds-base cockpit-389-ds
# dnf update 389-ds-base cockpit-389-ds
Copy to Clipboard Copied! 更新过程会自动重启服务器上的所有实例的
dirsrv
服务。
第 7 章 将数据库类型从 BDB 迁移到现有 DS 实例上的 LMDB
如果您有带有 Berkeley Database (BDB)后端的实例,您可以将此实例上的 BDB 更改为 Lightning Memory-Mapped Database (LMDB)。
从 BDB 迁移到 LMDB 仅适用于 Directory Server 版本 12.5 或更高版本的实例。
在混合环境中,请考虑以下限制:
- 您不能使用备份来恢复具有不同数据库类型的实例,因为备份和恢复格式与这个类型相关联。
- 您不能将后端与实例上的不同类型混合在一起。
但是,可以采用以下实现组合:
- 您可以将实例与主机上的不同后端类型混合在一起。
- 您可以在复制拓扑中将副本与不同类型的混合混合。
目前,您只能使用命令行从 BDB 迁移到 LMDB 或后向。
7.1. 使用 dsctl
将数据库类型从 BDB 迁移到 LMDB
您可以使用 dsctl
工具自动将实例上的 Berkeley 数据库(BDB)后端迁移到 Lightning Memory-Mapped 数据库(LMDB)。
前提条件
-
您有
root
权限。
流程
开始从 BDB 迁移到 LMDB:
dsctl instance_name dblib bdb2mdb
# dsctl instance_name dblib bdb2mdb ... Backends importation 0.000000% (userroot) Backends importation 100%
Copy to Clipboard Copied! 命令将
nsslapd-backend-implement
全局配置参数设置为mdb
,并通过设置nsslapd-mdb-max-size
参数值来计算您可以调整的数据库大小。删除迁移
.ldif
文件和旧数据库:dsctl instance_name dblib cleanup
# dsctl instance_name dblib cleanup cleanup dbmapdir=/var/lib/dirsrv/slapd-instance_name/db dbhome=/dev/shm/slapd-instance_name dblib=mdb
Copy to Clipboard Copied!
请注意,您可以使用 dsctl instance_name dblib mdb2bdb
命令从 LMDB 迁移到 BDB。
验证
-
检查
nsslapd-backend-implement
配置参数值是否已设置为mdb
:
dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
Enter password for cn=Directory Manager on ldap://server.example.com: password
nsslapd-backend-implement: mdb
7.2. 手动将数据库类型从 BDB 迁移到 LMDB
在以下情况下,使用实例的 Berkeley Database (BDB)后端手动迁移到 Lightning Memory-Mapped 数据库(LMDB):
-
无法执行
dsctl
工具的迁移。 - 您需要手动设置 LMDB 配置属性。
前提条件
-
您有
root
权限。 - 您有目录管理器密码。
流程
- 将所有数据库导出到 LDIF 文件,如 在服务器离线时使用命令行导出数据 中所述。
通过阐明现有数据库大小并添加安全边缘 20% 来确定 LMDB 数据库最大大小。如果您从 LMDB 迁移到 BDB,请跳过这一步。
阐明现有数据库大小:
du -hs /var/lib/dirsrv/slapd-instance_name/db/*/
# du -hs /var/lib/dirsrv/slapd-instance_name/db/*/ 1.8GB
Copy to Clipboard Copied! 添加 20% 的安全利润:
1.8 GB + 20% = 2.16 GB
1.8 GB + 20% = 2.16 GB
Copy to Clipboard Copied! 在以后的步骤中,您需要最大数据库大小。
将实例上的数据库类型更改为 LMDB,然后重新启动实例:
dsconf instance_name backend config set --db-lib mdb dsctl instance_name restart
# dsconf instance_name backend config set --db-lib mdb Successfully updated database configuration # dsctl instance_name restart Instance "instance_name" has been restarted
Copy to Clipboard Copied! 当您从 LMDB 迁移到 BDB 时,将
--db-lib 选项设置为
bdb
。将 LMDB 最大大小设置为您在前面的步骤(2.16 GB)中计算的值,然后重启实例:
dsconf instance_name backend config set --mdb-max-size 2319282339 dsctl instance_name restart
# dsconf instance_name backend config set --mdb-max-size 2319282339 Successfully updated database configuration # dsctl instance_name restart Instance "instance_name" has been restarted
Copy to Clipboard Copied! 命令设置
nsslapd-mdb-max-size
配置参数值。注意如果您从 LMDB 迁移到 BDB,请跳过这一步。
- 从 LDIF 文件 导入所有数据库,如在服务器离线时使用命令行导入数据 中所述。
验证
-
检查
nsslapd-backend-implement
配置参数值是否已设置为mdb
:
dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
Enter password for cn=Directory Manager on ldap://server.example.com: password
nsslapd-backend-implement: mdb
第 8 章 将 Directory Server 11 迁移到 Directory Server 12
了解从红帽目录服务器 11 迁移到 12,包括迁移开始前必须执行的任务。
红帽支持只在 Red Hat Directory Server 10 或 11 迁移到版本 12。要从早期版本中迁移目录服务器,您必须执行增量迁移到目录服务器 10 或 11。
红帽不支持使用 leapp
升级工具将 Directory Server 10 或 11 服务器的原位升级为 12 版本。
对于迁移,您可以使用以下方法之一:
- 如果您有复制拓扑,请使用复制方法。
- 如果您有一个断开连接的拓扑,但没有在 Directory Server 10 和 Directory Server 12 之间复制,或者您的数据库更大 1 GB,请使用导出和导入方法。
8.1. 前提条件
- 现有 Directory Server 安装在版本 11 上运行,并安装了所有可用的更新。
- 您已在主机上安装目录服务器 12 主机并创建了实例。
8.2. 使用复制方法迁移到 Directory Server 12
在复制拓扑中,使用复制方法迁移到 Directory Server 12。
流程
- 在 Directory Server 12 主机上,启用复制,但不创建复制协议。有关启用复制的详情,请参阅 配置和管理 红帽目录服务器 12 的复制 文档。
在 Directory Server 11 主机上,启用复制并创建指向 Directory Server 12 主机的复制协议。如需更多信息,请参阅 Red Hat Directory Server 11 管理员指南中的 多供应商复制 部分。
重要如果您在 Directory Server 11 主机上使用了自定义配置,请不要将 Directory Server 12 主机上的
dse.ldif
配置文件替换为 Directory Server 11 主机上的文件,因为版本间的dse.ldif
布局变化。反之,使用dsconf
工具或 Web 控制台为您需要的每个参数和插件添加自定义配置。- 可选:设置其他目录服务器 12 个主机,在 Directory Server 12 主机之间使用复制协议。
- 将您的客户端配置为使用 Directory Server 12 主机。
- 在 Directory Server 11 主机上,删除指向目录服务器 12 主机的复制协议。请参阅 红帽目录服务器 11 管理指南中的从复制拓扑中删除 目录服务器实例。
- 卸载 Directory Server 11 主机。请参阅 Red Hat Directory Server 11 安装指南中的 卸载 目录服务器。
8.3. 使用导出和导入方法迁移到 Directory Server 12
在以下情况下,使用导出和导入方法进行迁移:
- 您有没有复制的实例。
- 您的数据库更是 1 GB。
流程
在现有的 Directory Server 11 主机上执行以下步骤:
停止并禁用
dirsrv
服务:dsctl DS11_instance_name stop systemctl disable dirsrv@DS11_instance_name
# dsctl DS11_instance_name stop # systemctl disable dirsrv@DS11_instance_name
Copy to Clipboard Copied! 导出后端。例如,要导出
userRoot
数据库并将其存储在/var/lib/dirsrv/slapd-DS11_instance_name/migration.ldif
文件中,请运行:dsctl DS11_instance_name db2ldif userroot /var/lib/dirsrv/slapd-DS11_instance_name/migration.ldif
# dsctl DS11_instance_name db2ldif userroot /var/lib/dirsrv/slapd-DS11_instance_name/migration.ldif
Copy to Clipboard Copied! 将以下文件复制到您要安装 Directory Server 12 的新主机:
-
您在上一步中导出的
/var/lib/dirsrv/slapd-DS11_instance_name/migration.ldif
文件。 /etc/dirsrv/slapd-DS11_instance_name/dse.ldif
配置文件。重要不要将 Directory Server 12 主机上的
dse.ldif
配置文件替换为 Directory Server 11 主机上的文件,因为dse.ldif
布局更改了不同的版本。存储dse.ldif
文件以备参考。-
如果使用自定义模式,
/etc/dirsrv/slapd-DS11_instance_name/schema/99user.ldif
文件。 如果要迁移启用了 TLS 的实例,并重复使用 Directory Server 12 安装的相同主机名,请将以下文件复制到新主机:
-
/etc/dirsrv/slapd-DS11_instance_named/cert9.db
-
/etc/dirsrv/slapd-DS11_instance_name/key4.db
-
/etc/dirsrv/slapd-DS11_instance_name/pin.txt
-
-
您在上一步中导出的
- 如果要在 Directory Server 12 主机上使用相同的主机名和 IP,请断开旧服务器与网络的连接。
在新目录服务器 12 主机上执行以下步骤:
可选:配置 TLS 加密:
- 如果新安装使用与 Directory Server 11 实例不同的主机名,请参阅 保护红帽目录服务器 文档中的 启用 TLS 加密连接 部分。
使用与之前的 Directory Server 11 安装相同的主机名:
停止实例:
dsctl DS12_instance_name stop
# dsctl DS12_instance_name stop
Copy to Clipboard Copied! 删除网络安全服务(NSS)数据库和目录服务器的密码文件(如果存在):
rm /etc/dirsrv/slapd-DS12_instance_name/cert*.db /etc/dirsrv/slapd-DS12_instance_name/key*.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
# rm /etc/dirsrv/slapd-DS12_instance_name/cert*.db /etc/dirsrv/slapd-DS12_instance_name/key*.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
Copy to Clipboard Copied! -
将您从 Directory Server 11 主机复制的
cert9.db
、key4.db
和pin.txt
文件放在/etc/dirsrv/slapd-DS12_instance_name/
目录中: 为 NSS 数据库和密码文件设置正确的权限:
chown dirsrv:root /etc/dirsrv/slapd-DS12_instance_name/cert9.db /etc/dirsrv/slapd-DS12_instance_name/key4.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt chmod 600 /etc/dirsrv/slapd-DS12_instance_name/cert9.db /etc/dirsrv/slapd-DS12_instance_name/key4.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
# chown dirsrv:root /etc/dirsrv/slapd-DS12_instance_name/cert9.db /etc/dirsrv/slapd-DS12_instance_name/key4.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt # chmod 600 /etc/dirsrv/slapd-DS12_instance_name/cert9.db /etc/dirsrv/slapd-DS12_instance_name/key4.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
Copy to Clipboard Copied! 启动实例:
dsctl DS12_instance_name start
# dsctl DS12_instance_name start
Copy to Clipboard Copied!
如果您使用自定义模式,请将
99user.ldif
文件放在/etc/dirsrv/slapd-DS12_instance_name/schema/
目录中,设置适当的权限并重启实例:cp /etc/dirsrv/slapd-DS11_instance_name/schema/99user.ldif /etc/dirsrv/slapd-DS12_instance_name/schema/ chmod 644 /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif chown root:root /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif dsctl DS12_instance_name restart
# cp /etc/dirsrv/slapd-DS11_instance_name/schema/99user.ldif /etc/dirsrv/slapd-DS12_instance_name/schema/ # chmod 644 /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif # chown root:root /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif # dsctl DS12_instance_name restart
Copy to Clipboard Copied! -
将您从 Directory Server 11 主机复制的
/var/lib/dirsrv/slapd-DS11_instance_name/migration.ldif
文件放在/var/lib/dirsrv/slapd-DS12_instance_name/ldif/
目录中。 导入
migration.ldif
文件,以使用所有条目恢复userRoot
数据库:dsconf -D 'cn=Directory Manager' ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-DS12_instance_name/ldif/migration.ldif
# dsconf -D 'cn=Directory Manager' ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-DS12_instance_name/ldif/migration.ldif
Copy to Clipboard Copied! 请注意,目录服务器需要您在
/var/lib/dirsrv/slapd-DS12_instance_name/
目录中导入的 LDIF 文件。重要如果您在 Directory Server 11 主机上使用了自定义配置,请不要将 Directory Server 12 主机上的
dse.ldif
配置文件替换为 Directory Server 11 主机上的文件。反之,使用dsconf
工具或 Web 控制台为每个所需的参数和插件手动添加自定义配置。
第 9 章 将目录服务器 10 迁移到目录服务器 12
了解从红帽目录服务器 10 迁移到 12 的信息,包括开始迁移前必须执行的任务。
红帽支持只在 Red Hat Directory Server 10 或 11 迁移到版本 12。要从早期版本中迁移目录服务器,您必须执行增量迁移到目录服务器 10 或 11。
红帽不支持使用 leapp
升级工具将 Directory Server 10 或 11 服务器的原位升级为 12 版本。
对于迁移,您可以使用以下方法之一:
- 如果您有复制拓扑,请使用复制方法。
- 如果您有一个断开连接的拓扑,但没有在 Directory Server 10 和 Directory Server 12 之间复制,或者您的数据库更大 1 GB,请使用导出和导入方法。
9.1. 前提条件
- 现有目录服务器安装在版本 10 上运行,并安装了所有可用的更新。
- 您已在主机上安装目录服务器 12 主机并创建了实例。
9.2. 使用复制方法将目录服务器 10 迁移到版本 12
在复制拓扑中,使用复制方法迁移到目录服务器 12。
流程
- 在 Directory Server 12 主机上,启用复制,但不创建复制协议。有关启用复制的详情,请参考 Red Hat Directory Server 12 文档中的 配置和管理复制。
在 Directory Server 10 主机上,启用复制并创建指向目录服务器 12 主机的复制协议。有关启用复制的详情,请参考 Red Hat Directory Server 10 管理指南中的第 15 章"管理复制"。
重要如果您在 Directory Server 10 主机上使用了自定义配置,请不要将 Directory Server 12 主机上的
dse.ldif
配置文件替换为之前版本中的文件,因为dse.ldif
布局在版本之间有所变化。反之,使用dsconf
工具或 Web 控制台为您需要的每个参数和插件添加自定义配置。- 可选:设置 Directory Server 12 主机之间的复制协议的进一步目录服务器 12 主机。
- 将客户端配置为使用 Directory Server 12 主机。
在 Directory Server 10 主机上,删除指向目录服务器 12 主机的复制协议:
ldapmodify -D "cn=Directory Manager" -W -x -p 389 -h server_ds_10.example.com
# ldapmodify -D "cn=Directory Manager" -W -x -p 389 -h server_ds_10.example.com dn: cn=agreement-to-DS-12-server,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config changetype: delete
Copy to Clipboard Copied! - 卸载目录服务器 10 主机。请参阅 Red Hat Directory Server 10 安装指南中的第 4.8 章节"卸载目录服务器"。
9.3. 使用导出和导入方法将目录服务器 10 迁移到版本 12
使用导出和导入方法在没有复制的情况下迁移大型目录服务器环境或实例。
流程
在现有目录服务器 10 主机上执行以下步骤:
停止并禁用
dirsrv
服务:dsctl DS10_instance_name stop systemctl disable dirsrv@DS10_instance_name
# dsctl DS10_instance_name stop # systemctl disable dirsrv@DS10_instance_name
Copy to Clipboard Copied! 导出后端。例如,要导出
userRoot
数据库并将其存储在/tmp/userRoot.ldif
文件中:db2ldif -Z DS10_instance_name -n userRoot -a /tmp/userRoot.ldif
# db2ldif -Z DS10_instance_name -n userRoot -a /tmp/userRoot.ldif
Copy to Clipboard Copied! 将以下文件复制到新的目录服务器 12 主机上:
-
您在上一步中导出的 LDIF 文件
userRoot.ldif
。 -
如果您使用自定义模式,
/etc/dirsrv/slapd-DS10_instance_name/schema/99user.ldif
文件。 /etc/dirsrv/slapd-DS10_instance_name/dse.ldif
配置文件。重要不要将 Directory Server 12 主机上的
dse.ldif
配置文件替换为 Directory Server 10 主机上的文件,因为dse.ldif
布局在版本之间有所变化。存储dse.ldif
文件以备参考。如果要迁移启用了 TLS 并重复使用目录服务器 12 安装相同的主机名的实例,请复制:
-
/etc/dirsrv/slapd-DS10_instance_name/cert8.db
-
/etc/dirsrv/slapd-DS10_instance_name/key3.db
-
/etc/dirsrv/slapd-DS10_instance_name/pin.txt
-
-
您在上一步中导出的 LDIF 文件
- 如果要在 Directory Server 12 主机上使用相同的主机名和 IP,请断开旧服务器与网络的连接。
在新目录服务器 12 主机上执行以下步骤:
可选:配置 TLS 加密:
- 如果全新安装使用了与 Directory Server 10 实例不同的主机名,请参阅 保护 Red Hat Directory Server 文档中的启用 TLS 加密连接到 Directory Server 部分。
如果要使用与之前的目录服务器 10 安装相同的主机名:
停止实例:
dsctl DS12_instance_name stop
# dsctl DS12_instance_name stop
Copy to Clipboard Copied! 删除网络安全服务(NSS)数据库和目录服务器的密码文件(如果存在):
rm /etc/dirsrv/slapd-DS12_instance_name/cert*.db /etc/dirsrv/slapd-DS12_instance_name/key*.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
# rm /etc/dirsrv/slapd-DS12_instance_name/cert*.db /etc/dirsrv/slapd-DS12_instance_name/key*.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
Copy to Clipboard Copied! -
将从 Directory Server 10 主机复制的
cert8.db
、key3.db
和pin.txt
文件移动到/etc/dirsrv/slapd-DS12_instance_name/
目录。 为 NSS 数据库和密码文件设置正确的权限:
chown dirsrv:root /etc/dirsrv/slapd-DS12_instance_name/cert8.db /etc/dirsrv/slapd-DS12_instance_name/key3.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt chmod 600 /etc/dirsrv/slapd-DS12_instance_name/cert8.db /etc/dirsrv/slapd-DS12_instance_name/key3.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
# chown dirsrv:root /etc/dirsrv/slapd-DS12_instance_name/cert8.db /etc/dirsrv/slapd-DS12_instance_name/key3.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt # chmod 600 /etc/dirsrv/slapd-DS12_instance_name/cert8.db /etc/dirsrv/slapd-DS12_instance_name/key3.db /etc/dirsrv/slapd-DS12_instance_name/pin.txt
Copy to Clipboard Copied! 启动实例:
dsctl DS12_instance_name start
# dsctl DS12_instance_name start
Copy to Clipboard Copied!
如果您使用自定义模式,请将
99user.ldif
文件放在/etc/dirsrv/slapd-DS12_instance_name/schema/
目录中,设置适当的权限并重启实例:cp /etc/dirsrv/slapd-DS10_instance_name/schema/99user.ldif /etc/dirsrv/slapd-DS12_instance_name/schema/ chmod 644 /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif chown root:root /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif dsctl DS12_instance_name restart
# cp /etc/dirsrv/slapd-DS10_instance_name/schema/99user.ldif /etc/dirsrv/slapd-DS12_instance_name/schema/ # chmod 644 /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif # chown root:root /etc/dirsrv/slapd-DS12_instance_name/schema/99user.ldif # dsctl DS12_instance_name restart
Copy to Clipboard Copied! -
将您在
/var/lib/dirsrv/slapd-DS12_instance_name/ldif/
目录中的 Directory Server 10 主机上准备的/tmp/userRoot.ldif
文件。 导入
userRoot.ldif
文件,以使用所有条目恢复userRoot
后端:dsconf -D 'cn=Directory Manager' ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/userRoot.ldif
# dsconf -D 'cn=Directory Manager' ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/userRoot.ldif
Copy to Clipboard Copied! 请注意,目录服务器 12 只能从
/var/lib/dirsrv/slapd-DS12_instance_name/
目录中导入 LDIF 文件。重要如果您在 Directory Server 10 主机上使用了自定义配置,请不要将 Directory Server 12 主机上的
dse.ldif
配置文件替换为之前版本中的文件。反之,使用dsconf
工具或 Web 控制台为每个所需的参数和插件手动添加自定义配置。
第 10 章 安装、更新和卸载密码同步服务
要在 Active Directory 和 Red Hat Directory Server 之间同步密码,您可以使用密码同步服务。您可以安装、更新和删除密码同步服务。
10.1. 密码同步服务
当您设置密码与 Active Directory 同步时,Directory 服务器会检索除密码以外的用户对象的所有属性。Active Directory 仅存储加密的密码,但目录服务器使用不同的加密。因此,Active Directory 用户密码必须由 Directory Server 加密。
要启用 Active Directory 和 Directory 服务器之间的密码同步,Red Hat Directory Password Sync
服务 hook 最多为 Windows 密码更改域控制器(DC)的例程。如果用户或管理员设置或更新密码,服务会在加密并存储在 Active Directory 之前以纯文本形式检索密码。这个过程可让 Red Hat Directory Password Sync
将纯文本密码发送到 Directory 服务器。为保护密码,该服务只支持到 Directory 服务器的 LDAPS 连接。当 Directory 服务器在用户的条目中存储密码时,密码会自动使用 Directory Server 中配置的密码存储方案加密。
在 Active Directory 中,所有可写 DC 都可以处理密码操作。因此,您必须在 Active Directory 域中的每个可写 DC 上安装 Red Hat Directory 密码同步
。
10.2. 下载密码同步服务安装程序
要安装 Red Hat Directory 密码同步 服务,请从客户门户网站下载安装程序。
前提条件
- 您有一个有效的红帽目录服务器订阅。
- 在红帽客户门户网站中有一个帐户 。
流程
- 登录到红帽客户门户网站。
- 点页面顶部的 。
-
从产品列表中选择
Red Hat Directory Server
。 -
在
Version
字段中选择12
。 -
下载
PassSync 安装程序
。 - 将安装程序复制到每个可写的 Active Directory 域控制器(DC)中。
10.3. 安装密码同步服务
这部分论述了如何在 Windows 域控制器(DC)上安装 Red Hat Directory Password Sync
。在每个可写 Windows DC 上执行这个步骤。
前提条件
-
将
PassSync
安装程序的最新版本下载到 Windows Active Directory 域控制器(DC)。 - 您在 Directory 服务器中启用了 TLS 加密。
- 您已准备 Active Directory 域。
- 您在 Directory Server 中创建了一个用于同步的帐户。
流程
- 使用具有在 DC 上安装软件权限的用户登录到 Active Directory DC。
-
双击
RedHat-PassSync-ds12.*-x86_64.msi
文件来安装它。 -
此时会出现
Red Hat Directory Password Sync Setup
。点击 。 根据您的 Directory Server 环境填写字段。例如:
将 Directory Server 主机的以下信息填写到字段中:
-
主机名
:设置目录服务器主机的名称。另外,您可以将该字段设置为 Directory Server 主机的 IPv4 或 IPv6 地址。 -
端口号
:设置 LDAPS 端口号。 -
User Name
:设置同步用户帐户的可分辨名称(DN)。 -
Password
:设置同步用户的密码。 -
cert Token
:设置从 Directory Server 主机复制的服务器证书的密码。 -
搜索 Base
:设置包含同步用户帐户的 Directory Server 条目的 DN。
-
- 点 开始安装。
- 点 。
重新引导 Windows DC。
重要在不重新启动 DC 的情况下,
密码Hook.dll
库不会被启用,密码同步会失败。- 在 Directory 服务器中启用复制并创建 WinSync 协议。
10.4. 更新密码同步服务
这部分论述了如何在 Windows 域控制器(DC)上更新现有 Red Hat Directory Password Sync
安装。
在每个可写 Windows DC 上执行这个步骤。
前提条件
- Red Hat Directory 密码同步 在您的 Windows DC 上运行。
-
将
PassSync
安装程序的最新版本下载到 Windows Active Directory DC。
流程
- 使用具有在 DC 上安装软件权限的用户登录到 Active Directory 域控制器。
-
双击
RedHat-PassSync-ds12.*-x86_64.msi
文件。 - 点 开始安装。
-
点
按钮。
- 设置显示上一个安装过程中设置的配置。点 以保留现有设置。
- 点 开始安装。
- 点 。
重新引导 Windows DC。
重要在不重新启动 DC 的情况下,
PasswordHook.dll
库不会被启用,密码同步将失败。
10.5. 卸载密码同步服务
如果您不再需要 Red Hat Directory Password Sync
服务,将其从 Active Directory 域控制器(DC)中删除。
前提条件
-
Red Hat Directory 密码同步
安装在 Windows DC 上。
流程
使用具有从 DC 中删除软件权限的用户登录到 Active Directory 域控制器。
-
打开
Control Panel
- 单击 ,然后单击
选择
Red Hat Directory Password Sync
条目,然后点击 按钮。- 单击 进行确认。
第 11 章 删除 Directory 服务器实例
如果不再需要 Directory Server 实例,您可以将其删除来重新获取磁盘空间。如果您在一个服务器上运行多个实例,删除特定实例不会影响其他实例。
11.1. 使用命令行删除实例
您可以使用命令行删除 Directory 服务器实例。
前提条件
- 该实例已从复制拓扑中删除,如果它属于其中一个。
流程
可选:创建 Directory 服务器目录的备份:
停止实例:
dsctl instance_name stop
# dsctl instance_name stop
Copy to Clipboard Copied! 复制
/var/lib/dirsrv/slapd-instance_name/
目录:cp -rp /var/lib/dirsrv/slapd-instance_name/ /root/var-lib-dirsrv-instance_name.bak/
# cp -rp /var/lib/dirsrv/slapd-instance_name/ /root/var-lib-dirsrv-instance_name.bak/
Copy to Clipboard Copied! 此目录包含数据库,以及备份和恢复目录。
复制
/etc/dirsrv/slapd-instance_name/
目录:cp -rp /etc/dirsrv/slapd-instance_name/ /root/etc-dirsrv-instance_name.bak/
# cp -rp /etc/dirsrv/slapd-instance_name/ /root/etc-dirsrv-instance_name.bak/
Copy to Clipboard Copied!
删除实例:
dsctl instance_name remove --do-it
# dsctl instance_name remove --do-it Removing instance ... Completed instance removal
Copy to Clipboard Copied!
验证
验证
/var/lib/dirsrv/slapd-instance_name/
和/etc/dirsrv/slapd-instance_name/
目录已被删除:ls /var/lib/dirsrv/slapd-instance_name /etc/dirsrv/slapd-instance_name/
# ls /var/lib/dirsrv/slapd-instance_name /etc/dirsrv/slapd-instance_name/ ls: cannot access '/var/lib/dirsrv/slapd-instance_name': No such file or directory ls: cannot access '/etc/dirsrv/slapd-instance_name': No such file or directory
Copy to Clipboard Copied!
11.2. 使用 Web 控制台删除实例
您可以使用 Web 控制台删除 Directory Server 实例。但是,如果要创建包含的 Directory 服务器目录的备份,例如数据库和配置文件,则必须在命令行中复制这些目录。
前提条件
- 该实例已从复制拓扑中删除,如果它属于其中一个。
- 在 web 控制台中登录到实例。
流程
可选:创建 Directory 服务器目录的备份。
-
点
Stop instance
。 按钮,然后选择 复制
/var/lib/dirsrv/slapd-instance_name/
目录:cp -rp /var/lib/dirsrv/slapd-instance_name/ /root/var-lib-dirsrv-instance_name.bak/
# cp -rp /var/lib/dirsrv/slapd-instance_name/ /root/var-lib-dirsrv-instance_name.bak/
Copy to Clipboard Copied! 此目录包含数据库,以及备份和恢复目录。
复制
/etc/dirsrv/slapd-instance_name/
目录:cp -rp /var/lib/dirsrv/slapd-instance_name/ /root/etc-dirsrv-instance_name.bak/
# cp -rp /var/lib/dirsrv/slapd-instance_name/ /root/etc-dirsrv-instance_name.bak/
Copy to Clipboard Copied!
-
点
-
单击
Remove this instance
。 按钮,然后选择 -
选择"
是",我确定
,然后单击" "以确认。
验证
验证
/var/lib/dirsrv/slapd-instance_name/
和/etc/dirsrv/slapd-instance_name/
目录已被删除:ls /var/lib/dirsrv/slapd-instance_name /etc/dirsrv/slapd-instance_name/
# ls /var/lib/dirsrv/slapd-instance_name /etc/dirsrv/slapd-instance_name/ ls: cannot access '/var/lib/dirsrv/slapd-instance_name': No such file or directory ls: cannot access '/etc/dirsrv/slapd-instance_name': No such file or directory
Copy to Clipboard Copied!
第 12 章 卸载 Directory 服务器
如果不再需要 Directory Server 实例,可以将其卸载以回收空间。
12.1. 卸载 Directory 服务器
如果您不再需要服务器上运行的 Directory 服务器,请卸载软件包,如本节所述。
流程
- 从复制拓扑中删除所有实例。如果您的实例不是复制拓扑的成员,则跳过这一步。
从服务器移除所有实例。对于每个实例,请输入:
dsctl instance_name remove --do-it
# dsctl instance_name remove --do-it
Copy to Clipboard Copied! 删除 Directory Server 软件包:
dnf module remove redhat-ds
# dnf module remove redhat-ds
Copy to Clipboard Copied! 可选:禁用
dirsrv-12-for-rhel-8-x86_64-rpms
存储库:subscription-manager repos --disable=dirsrv-12-for-rhel-8-x86_64-rpms
# subscription-manager repos --disable=dirsrv-12-for-rhel-8-x86_64-rpms Repository 'dirsrv-12-for-rhel-8-x86_64-rpms' is disabled for this system.
Copy to Clipboard Copied! 可选:从系统中删除 Red Hat Directory Server 订阅:
重要如果您删除比目录服务器提供额外的产品的订阅,您将无法为这些产品安装或更新软件包。
列出附加到主机的订阅:
subscription-manager list --consumed
# subscription-manager list --consumed Subscription Name: Example Subscription ... Pool-ID: 5ab6a8df96b03fd30aba9a9c58da57a1 ...
Copy to Clipboard Copied! 使用上一步中的池 ID 删除订阅:
subscription-manager remove --pool=5ab6a8df96b03fd30aba9a9c58da57a1
# subscription-manager remove --pool=5ab6a8df96b03fd30aba9a9c58da57a1 2 local certificates have been deleted. The entitlement server successfully removed these pools: 5ab6a8df96b03fd30aba9a9c58da57a1 The entitlement server successfully removed these serial numbers: 1658239469356282126
Copy to Clipboard Copied!
第 13 章 使用 Web 控制台登录到目录服务器
Web 控制台是一个基于浏览器的图形用户界面(GUI),用于执行管理任务。Directory Server 软件包会自动为 Web 控制台安装 Directory Server 用户界面。
前提条件
- 有访问 Web 控制台的权限。
流程
使用您的浏览器中的以下 URL 访问 Web 控制台:
https://<directory_server_host>:9090
https://<directory_server_host>:9090
Copy to Clipboard Copied! -
以具有
sudo
权限的用户身份登录。 选择
Red Hat Directory Server
条目。
第 14 章 启动和停止目录服务器实例
您可以使用命令行或 Web 控制台启动、停止和重新启动目录服务器实例。
14.1. 使用命令行启动和停止目录服务器实例
使用 dsctl
工具启动、停止或重启 Directory 服务器实例。
dsctl
工具是停止目录服务器实例的唯一正确方法。不要使用 kill
命令来终止 ns-slapd
进程,以避免出现数据丢失和崩溃的问题。
流程
要启动实例,请运行:
dsctl instance_name start
# dsctl instance_name start
Copy to Clipboard Copied! 要停止实例,请运行:
dsctl instance_name stop
# dsctl instance_name stop
Copy to Clipboard Copied! 要重启实例,请运行:
dsctl instance_name restart
# dsctl instance_name restart
Copy to Clipboard Copied!
另外,您可以启用目录服务器实例在系统引导时自动启动:
对于单个实例,请运行:
systemctl enable dirsrv@instance_name
# systemctl enable dirsrv@instance_name
Copy to Clipboard Copied! 对于服务器中的所有实例,请运行:
systemctl enable dirsrv.target
# systemctl enable dirsrv.target
Copy to Clipboard Copied!
验证
您可以使用 dsctl
或 systemctl
实用程序检查实例状态:
要使用
dsctl
工具查看实例状态,请运行:dsctl instance_name status
# dsctl instance_name status
Copy to Clipboard Copied! 要使用
systemctl
实用程序查看实例状态,请运行:systemctl status dirsrv@instance_name
# systemctl status dirsrv@instance_name
Copy to Clipboard Copied!
14.2. 使用 Web 控制台启动和停止目录服务器实例
您可以使用 Web 控制台启动、停止或重启目录服务器实例。
前提条件
- 已登陆到 web 控制台。如需了解更多详细信息,请参阅
- 使用 Web 控制台登录到目录服务器
流程
- 选择 Directory Server 实例。
点 Actions 按钮并选择要执行的操作:
- 启动实例
- 停止实例
重启实例
验证
确保 Directory 服务器实例正在运行。当实例没有运行时,Web 控制台会显示以下信息:
This server instance is not running, either start it from the Actions dropdown menu, or choose a different instance.
This server instance is not running, either start it from the Actions dropdown menu, or choose a different instance.
Copy to Clipboard Copied!
第 15 章 更改 LDAP 和 LDAPS 端口号
默认情况下,Directory 服务器使用端口 389
作为 LDAP,如果您启用了 LDAPS 协议的端口 636
。您可以更改端口号,例如,在一个主机上运行多个目录服务器实例。
其他服务不得使用分配给实例的协议的新端口。
15.1. 使用命令行更改端口号
您可以使用命令行更改 LDAP 和 LDAPS 协议的端口号。LDAP 和 LDAP 端口更改需要更新 nsslapd-port
和 nsslapd-securePort
参数。
流程
可选:显示实例的当前端口号:
dsconf -D "cn=Directory Manager" ldap://server.example.com config get nsslapd-port nsslapd-securePort
# dsconf -D "cn=Directory Manager" ldap://server.example.com config get nsslapd-port nsslapd-securePort
Copy to Clipboard Copied! 更改 LDAP 端口:
为 LDAP 协议设置新端口。例如,要将其设置为
1389
,请运行:dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-port=1389
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-port=1389
Copy to Clipboard Copied! 为您在上一步中分配的 LDAP 端口设置
ldap_port_t
类型:semanage port -a -t ldap_port_t -p tcp 1389
# semanage port -a -t ldap_port_t -p tcp 1389
Copy to Clipboard Copied!
更改 LDAPS 端口:
为 LDAPS 协议设置新端口。例如,要将其设置为
1636
,请运行:dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-securePort=1636
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-securePort=1636
Copy to Clipboard Copied! 为您在上一步中分配的 LDAPS 端口设置
ldap_port_t
类型:semanage port -a -t ldap_port_t -p tcp 1636
# semanage port -a -t ldap_port_t -p tcp 1636
Copy to Clipboard Copied!
重启实例:
dsctl instance_name restart
# dsctl instance_name restart
Copy to Clipboard Copied!
验证
使用以下命令验证 Directory 服务器现在使用新的 LDAP 端口:
dsconf instance_name config get nsslapd-port
# dsconf instance_name config get nsslapd-port
Copy to Clipboard Copied! 使用以下命令验证 Directory 服务器现在使用新的 LDAPS 端口号:
dsconf instance_name config get nsslapd-securePort
# dsconf instance_name config get nsslapd-securePort
Copy to Clipboard Copied!
15.2. 使用 Web 控制台更改端口号
您可以使用 Web 控制台更改 LDAP 和 LDAPS 协议的端口号。
前提条件
- 在 web 控制台中登录到实例。
流程
更改 LDAP 端口:
- 打开 菜单。
-
在
Server Setting
选项卡中,在 LDAP Port 字段中输入新端口号。
- 点击 。
更改 LDAPS 端口:
- 打开 菜单。
-
在
General Settings
选项卡中,在 LDAPS Port 字段中输入新端口号。 - 点击 。
- 点 Restart Instance 来重新启动实例。 并选择
验证
- 在服务器设置中验证更改的端口是否反映。
第 16 章 使用 .dsrc 文件管理目录服务器命令行工具
~/.dsrc
文件简化了使用 Directory Server 命令行工具的命令。默认情况下,您可以将 LDAP URL
或绑定区分名称(DN)传递给这些命令的信息。您可以将设置存储在 ~/.dsrc
文件中,以使用命令行工具,而无需每次指定这些设置。
16.1. .dsrc 文件如何简化命令
您可以在 ~/.dsrc
文件中指定实例的 LDAP URL 和绑定 DN:
server1
# server1
uri = ldap://server1.example.com
binddn = cn=Directory Manager
basedn = dc=example,dc=com
您可以在这些设置中使用较短的目录服务器命令。例如,要创建一个用户帐户:
dsidm server1 user create
# dsidm server1 user create
如果没有 ~/.dsrc
文件,则必须在命令中指定绑定 DN、LDAP URL 和基本 DN:
dsidm -D cn=Directory Manager ldap://server1.example.com -b "dc=example,dc=com" user create
# dsidm -D cn=Directory Manager ldap://server1.example.com -b "dc=example,dc=com" user create
16.2. 使用 dsctl 实用程序创建 .dsrc 文件
您可以使用 dsctl
实用程序创建 ~/.dsrc
文件,而不是手动创建它。
流程
- 运行:
dsctl instance_name dsrc create ...
# dsctl instance_name dsrc create ...
您可以在命令中添加这些选项:
-
--uri
使用 --uri
选项时,以 protocol://host_name_or_IP_address_or_socket
格式将 URL 设置为实例
例如:
-
--uri ldap://server.example.com
-
--uri = ldaps://server.example.com
-
--uri = ldapi://%%2fvar%%2frun%%2fslapd-instance_name.socket
当您设置目录服务器套接字的路径时,请在路径中使用 %%02
而不是斜杠 (/)
。
在使用 ldapi
URL 时,服务器会标识运行 Directory Server 命令行工具的用户的用户 ID (UID)和组 ID (GID)。如果您以 root
用户身份运行该命令,UID 和 GID 为 0,
Directory 服务器会在不输入对应的密码的情况下自动以 cn=Directory Manager
验证。
-
--starttls
使用 --starttls
选项时,将实用程序配置为连接到 LDAP 端口,然后发送 STARTTLS
命令以切换到加密的连接。
-
--basedn
使用 --basedn
选项时,设置基础可分辨名称(DN)。
例如: --basedn dc=example,dc=com
-
--binddn
使用 --basedn
选项时,设置绑定 DN。
例如: --binddn cn=Directory Manager
-
--pwdfile
使用 --pwdfile
时,设置包含绑定 DN 密码的文件的路径。
例如: --pwdfile /root/rhds.pwd
-
--tls-cacertdir
使用 --tls-cacertdir
选项时,设置此参数中的路径,该参数定义了使用 LDAPS 连接验证服务器证书所需的证书颁发机构(CA)证书的目录。
例如: --tls-cacertdir /etc/pki/CA/certs/
只有在将 CA 证书复制到指定的目录时,才能使用 c_rehash /etc/pki/CA/certs/
命令。
-
--tls-cert
使用 --tls-certl
选项时,设置服务器证书的绝对路径。
例如: --tls-cert /etc/dirsrv/slapd-instance_name/Server-Cert.crt
-
--tls-key
使用 --tls-key
选项时,设置服务器私钥的绝对路径。
例如: --tls-key /etc/dirsrv/slapd-instance_name/Server-Cert.key
-
--tls-reqcert
使用 --tls-reqcert
选项时,设置在 TLS 会话中的服务器证书上执行的检查客户端实用程序执行什么操作。
例如 :--tls-reqcert hard
这些参数可用:
-
Never
:实用程序不请求或检查服务器证书。 -
Allow
:实用程序忽略证书错误,连接是建立的。 hard
:实用程序在证书错误时终止连接。-
--saslmech
-
使用 --saslmech
选项时,将 SASL 机制设置为使用 PLAIN
或 EXTERNAL
。
例如 :--saslmech PLAIN
16.3. 使用目录服务器工具时远程和本地连接解析
在保护目录服务器连接时,您可以在远程和本地调用 Directory Server 命令。当您使用指定 LDAP URL 运行 Directory Server 命令时,服务器会将它视为远程连接,并检查 /etc/openldap/ldap.conf
配置文件以及系统范围的设置,以继续执行该命令。
当您运行带有指定实例名称的 Directory Server 命令时,服务器会检查 ~/.dsrc
文件是否存在,并应用以下逻辑进行:
-
目录服务器将
~/.dsrc
文件视为远程连接,并检查/etc/openldap/ldap.conf
配置文件和系统范围的设置是否包含实例名称和 LDAP URL。 -
目录服务器将
~/.dsrc
文件视为本地连接,并使用本地dse.ldif
文件中的nsslapd-certdir
设置来保护连接,如果~/.dsrc
文件只包含指定的实例名称,或者~/.dsrc
文件不存在。如果nsslapd-certdir
不存在,服务器使用默认路径/etc/dirsrv/slapd-instance_name/
来存储实例的网络安全服务(NSS)数据库。
第 17 章 创建测试条目
dsctl ldifgen
命令创建了包含不同类型的 test 条目的 LDIF 文件。例如,您可以使用此 LDIF 文件填充测试实例或子树,以使用示例条目测试目录服务器的性能。
17.1. 您可以创建的测试条目概述
您可以将以下条目类型参数之一传递给 dsctl ldifgen
:
-
users
:创建一个包含用户条目的 LDIF 文件。 -
Group
:创建包含静态组和成员条目的 LDIF 文件。 -
COS-def
:创建一个 LDIF 文件,其中包含经典指针或间接类服务(CoS)定义。 -
COS-template
:创建一个包含 CoS 模板的 LDIF 文件。 -
角色
:创建一个包含受管、过滤或间接角色条目的 LDIF 文件。 -
mod-load
:创建包含修改操作的 LDIF 文件。使用ldapmodify
实用程序将文件加载到 目录中。 -
nested
:创建一个 LDIF 文件,该文件在级联或侵犯树中包含大量嵌套条目。
dsctl ldifgen
命令仅创建 LDIF 文件。要将文件加载到 Directory Server 实例中,请使用:
-
使用
mod-load
选项创建 LDIF 文件后ldapmodify
程序 -
所有其他选项的
ldapadd
工具
除了嵌套条目类型外,如果您不提供任何命令行选项,则 dsctl ldifgen
命令使用互动模式:
dsctl instance_name ldifgen entry_type
# dsctl instance_name ldifgen entry_type
17.2. 使用示例用户条目创建 LDIF 文件
使用 dsctl ldifgen users
命令创建带有示例用户条目的 LDIF 文件。
流程
例如,要创建一个名为
/tmp/users.ldif
的 LDIF 文件,可将 100,000 个通用用户添加到dc=example,dc=com
后缀,请输入:dsctl instance_name ldifgen users --suffix "dc=example,dc=com" --number 100000 --generic --ldif-file=/tmp/users.ldif
# dsctl instance_name ldifgen users --suffix "dc=example,dc=com" --number 100000 --generic --ldif-file=/tmp/users.ldif
Copy to Clipboard Copied! 请注意,命令会创建以下机构单元(OU),并随机将用户分配给这些 OU:
-
ou=accounting
-
ou=product development
-
ou=product testing
-
ou=human resources
-
ou=payroll
-
ou=people
ou=groups
如需更多详细信息和可用于创建 LDIF 文件的选项,请输入:
dsctl instance_name ldifgen users --help
# dsctl instance_name ldifgen users --help
Copy to Clipboard Copied!
-
可选:在目录中添加测试条目:
ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/users.ldif
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/users.ldif
Copy to Clipboard Copied!
17.3. 使用示例组条目创建 LDIF 文件
使用 dsctl ldifgen groups
命令创建带有示例用户条目的 LDIF 文件。
流程
例如,要创建一个名为
/tmp/groups.ldif
的 LDIF 文件,可将 500 组添加到ou=groups,dc=example,dc=com
条目,每个组具有 100 个成员,请输入:dsctl instance_name ldifgen groups --number 500 --suffix "dc=example,dc=com" --parent "ou=groups,dc=example,dc=com" --num-members 100 --create-members --member-parent "ou=People,dc=example,dc=com" --ldif-file /tmp/groups.ldif example_group__
# dsctl instance_name ldifgen groups --number 500 --suffix "dc=example,dc=com" --parent "ou=groups,dc=example,dc=com" --num-members 100 --create-members --member-parent "ou=People,dc=example,dc=com" --ldif-file /tmp/groups.ldif example_group__
Copy to Clipboard Copied! 请注意,命令还会创建 LDIF 语句,以在
ou=People,dc=example,dc=com
中添加用户条目。如需更多详细信息和可用于创建 LDIF 文件的选项,请输入:
dsctl instance_name ldifgen groups --help
# dsctl instance_name ldifgen groups --help
Copy to Clipboard Copied! 可选:在目录中添加测试条目:
ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/groups.ldif
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/groups.ldif
Copy to Clipboard Copied!
17.4. 使用示例 CoS 定义创建 LDIF 文件
使用 dsctl ldifgen cos-def
命令创建带有类服务(CoS)定义的 LDIF 文件。
流程
例如,要创建一个名为
/tmp/cos-definition.ldif
的 LDIF 文件,在ou=cos-definitions,dc=example,dc=com
条目中添加经典的 CoS 定义,请输入:dsctl instance_name ldifgen cos-def Postal_Def --type classic --parent "ou=cos definitions,dc=example,dc=com" --cos-specifier businessCatagory --cos-template "cn=sales,cn=classicCoS,dc=example,dc=com" --cos-attr postalcode telephonenumber --ldif-file /tmp/cos-definition.ldif
# dsctl instance_name ldifgen cos-def Postal_Def --type classic --parent "ou=cos definitions,dc=example,dc=com" --cos-specifier businessCatagory --cos-template "cn=sales,cn=classicCoS,dc=example,dc=com" --cos-attr postalcode telephonenumber --ldif-file /tmp/cos-definition.ldif
Copy to Clipboard Copied! 如需更多详细信息和可用于创建 LDIF 文件的选项,请输入:
dsctl instance_name ldifgen cos-def --help
# dsctl instance_name ldifgen cos-def --help
Copy to Clipboard Copied! 可选:在目录中添加测试条目:
ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/cos-definition.ldif
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/cos-definition.ldif
Copy to Clipboard Copied!
17.5. 使用示例修改语句创建 LDIF 文件
使用 dsctl ldifgen mod-load
命令创建一个包含更新操作的 LDIF 文件。
流程
例如,要创建一个名为
/tmp/modifications.ldif
的 LDIF 文件:dsctl instance_name ldifgen mod-load --num-users 1000 --create-users --parent="ou=People,dc=example,dc=com" --mod-attrs="sn" --add-users 10 --modrdn-users 100 --del-users 100 --delete-users --ldif-file=/tmp/modifications.ldif
# dsctl instance_name ldifgen mod-load --num-users 1000 --create-users --parent="ou=People,dc=example,dc=com" --mod-attrs="sn" --add-users 10 --modrdn-users 100 --del-users 100 --delete-users --ldif-file=/tmp/modifications.ldif
Copy to Clipboard Copied! 这个命令会创建一个名为
/tmp/modifications.ldif
文件并带有以下内容的声明:-
创建一个具有 1000
ADD
操作的 LDIF 文件,以在ou=People,dc=example,dc=com
中创建用户条目。 -
通过更改其
sn
属性来修改所有条目。 - 添加额外的 10 个用户条目。
-
执行 100
MODRDN
操作。 - 删除 100 个条目
删除末尾所有剩余条目
如需更多详细信息和可用于创建 LDIF 文件的选项,请输入:
dsctl instance_name ldifgen mod-load --help
# dsctl instance_name ldifgen mod-load --help
Copy to Clipboard Copied!
-
创建一个具有 1000
可选:在目录中添加测试条目:
ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/modifications.ldif
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/modifications.ldif
Copy to Clipboard Copied!
17.6. 创建带有嵌套示例条目的 LDIF 文件
使用 dsctl ldifgen 嵌套
命令创建一个 LDIF 文件,其中包含大量的嵌套级结构。
流程
例如,要创建一个名为
/tmp/nested.ldif
的 LDIF 文件,在dc=example,dc=com
条目下将 600 个用户添加到不同机构单元(OU)下,每个 OU 均包含最大数量 100 个用户,请输入:dsctl instance_name ldifgen nested --num-users 600 --node-limit 100 --suffix "dc=example,dc=com" --ldif-file /tmp/nested.ldif
# dsctl instance_name ldifgen nested --num-users 600 --node-limit 100 --suffix "dc=example,dc=com" --ldif-file /tmp/nested.ldif
Copy to Clipboard Copied! 如需更多详细信息和可用于创建 LDIF 文件的选项,请输入:
dsctl instance_name ldifgen nested --help
# dsctl instance_name ldifgen nested --help
Copy to Clipboard Copied! 可选:在目录中添加测试条目:
ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/nested.ldif
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x -c -f /tmp/nested.ldif
Copy to Clipboard Copied!