slapd-config
此角色用于配置整个 OpenLDAP 服务器的 OLC。
需要您已创建 OLC 并已运行 slapd。
请查看 slapd-base 以完成此任务。
slapd-config 将直接在 cn=config
中创建全局的 slapd 配置,并加载如果没有编译为静态后端的全局模块(如 mdb)。
随后,监控后端和 MDB 将被创建和配置。
MDB 支持指定覆盖层。
要求
需要一个基于 dpkg 或 pacman 的 Linux 发行版。
角色变量
以下是一些角色全局变量:
名称 |
默认值/必需 |
描述 |
slapd_enable_monitor |
true |
加载监控模块(如需要)并配置监控数据库。 |
slapd_modules_path |
/usr/lib/ldap |
动态模块的路径,如果需要加载但不以静态后端编译的后端。 |
slapd_additional_modules |
|
如果没有编译在内,还需加载这些模块(除了 MDB 和监控)。 |
slapd_olc_rootdn_password |
:heavy_check_mark: |
访问 OLC 的密码。此密码不会自动导出 slapd-base 。 |
slapd_monitor_rootdn_password |
:heavy_check_mark: |
监控数据库的 rootdn 密码,将自动进行哈希处理。 |
slapd_mdb_rootdn_password |
:heavy_check_mark: |
MDB 数据库的 rootdn 密码,将自动进行哈希处理。 |
slapd_schemas |
|
要加载的模式文件路径的数组。 |
slapd_global_config |
见说明 |
每一个全局 slapd 配置选项。下文每个选项的描述。 |
slapd_olc_config |
见说明 |
OLC 数据库的每一个全局配置值。 |
slapd_monitor_config |
见说明 |
监控数据库的每一个全局配置值。 |
slapd_mdb_config |
:heavy_check_mark: |
MDB 数据库的每一个全局配置值。 |
slapd_mdb_overlays |
见说明 |
MDB 的每个模块。见示例以获得示例。 |
slapd-base 变量
如果本剧本的前一个步骤中没有运行 slapd-base
,您需要设置这些变量。
所有变量都是必需的。
名称 |
默认值/必需 |
描述 |
slapd_run_dir |
:heavy_check_mark: |
args 文件、pid 文件和 ldapi 套接字的运行目录 |
slapd_ldapi_socket |
:heavy_check_mark: |
用于本地 slapd 管理的 ldapi unix 套接字 |
slapd_mdb_dir |
:heavy_check_mark: |
MDB 所在的目录 |
slapd_olc_dir |
:heavy_check_mark: |
OLC 的 LDIF 文件所在的路径 |
slapd_olc_rootdn |
:heavy_check_mark: |
OLC 的 RootDN |
全局配置选项
全球 slapd OLC 配置分为不同的部分。
一般配置
名称 |
默认值/必需 |
描述 |
olcConfigFile |
|
要加载的配置文件的路径。被 OLC 取代。 |
olcConfigDir |
{{slapd_olc_dir}} |
OLC 数据库文件的路径。 |
olcArgsFile |
{{slapd_run_dir}}/slapd.args |
slapd 将把其参数写入此文件。 |
olcPidFile |
{{slapd_run_dir}}/slapd.pid |
slapd 将把其 PID 写入此文件。 |
olcGentleHUP |
FALSE |
当为 TRUE 时,slapd 不会在 SIGHUP 上杀死现有连接,而是会等待它们终止。 |
olcServerID |
0 |
此服务器的 ID。仅在多主复制时需要。 |
安全相关配置
名称 |
默认值/必需 |
描述 |
olcAllows |
|
一组允许的特性。 |
olcDisallows |
|
一组不允许的特性。 |
olcRequires |
bind |
一组需要的条件。 |
olcRestrict |
|
一组受限的操作。 |
olcSecurity |
ssf=1 simple_bind=128 |
指定一组需要的安全强度因素。 |
olcAuthIDRewrite |
|
用于将简单用户名转换为用于身份验证的 LDAP DN。 |
olcAuthzRegexp |
|
用于将简单用户名转换为用于身份验证的 LDAP DN。可以多次指定,并要求重新启动服务器以生效。 |
olcAuthzPolicy |
none |
用于代理授权的规则。 |
olcLocalSSF |
300 |
LDAPI 连接的假定 SSF。 |
olcPasswordHash |
{SSHA} |
用于密码更改扩展修改的一种或多种哈希算法。 |
olcPasswordCryptSaltFormat |
%s |
使用 crypt() 哈希密码时的盐格式。 |
TLS 配置
名称 |
默认值/必需 |
描述 |
olcTLSCertificateFile |
|
slapd 的公钥文件。 |
olcTLSCertificateKeyFile |
|
slapd 的私钥。 |
olcTLSRandFile |
|
当 urandom 不可用时从中获取随机位的文件。 |
olcTLSDHParamFile |
|
包含用于 Diffie-Hellman 瞬态密钥交换的质数的文件。 |
olcTLSCipherSuite |
|
要使用的 TLS 密码套件。 |
olcTLSProtocolMin |
|
要求的最小 TLS 版本。默认为可能的最高级别。 |
olcTLSCACertificateFile |
|
含有所有受信任证书授权的文件路径。 |
olcTLSCACertificatePath |
|
含有所有受信任证书授权的文件目录路径。 |
olcTLSCRLCheck |
none |
在连接时是否应检查 CA 的 CRL。 |
olcTLSVerifyClient |
never |
何时验证客户身份。 |
日志配置
名称 |
默认值/必需 |
描述 |
olcLogLevel |
stats |
每个子系统的日志级别配置。 |
olcLogFile |
|
要记录的文件。 slapd 将始终记录到 stderr。 |
olcPluginLogFile |
|
记录 slapi 插件输出的文件。 |
olcReplogFile |
|
replog 文件,可由 slurpd 读取。 |
线程配置
名称 |
默认值/必需 |
描述 |
olcConcurrency |
|
操作系统的线程提示。在 Linux 下不使用。 |
olcListenerThreads |
1 |
监听连接的线程数量。1 对于最多 16 核心是足够的。 |
olcThreads |
16 |
请求处理的 CPU 线程数量。 |
olcToolThreads |
1 |
在工具模式下运行时的 CPU 线程数量。应不超过系统中的核心数量。 |
超时和限制
名称 |
默认值/必需 |
描述 |
olcIdleTimeout |
0 |
客户端在无动作的情况下,可以在断开连接前等待的秒数。 |
olcWriteTimeout |
0 |
客户端在存在未完成写入的情况下,可以在断开连接前等待的秒数。 |
olcTimeLimit |
3600 |
slapd 在回答请求时的最大时间(秒)。允许使用 unlimited 值。 |
olcSizeLimit |
500 |
从搜索中返回的最大条目数。 |
连接
名称 |
默认值/必需 |
描述 |
olcConnMaxPending |
50 |
匿名会话中待处理请求的最大数量。 |
olcConnMaxPendingAuth |
1000 |
身份验证会话中待处理请求的最大数量。 |
olcTCPBuffer |
|
TCP 缓冲区的大小。操作系统可能会自动调整此值。 |
olcSockbufMaxIncoming |
262143 |
匿名会话的 LDAP PDU 的最大大小。 |
olcSockbufMaxIncomingAuth |
4194303 |
身份验证会话的 LDAP PDU 的最大大小。 |
SASL
名称 |
默认值/必需 |
描述 |
olcSaslHost |
|
用于 SASL 处理的完全限定域名。 |
olcSaslRealm |
|
SASL 处理中使用的 SASL 领域。 |
olcSaslSecProps |
|
指定 Cyrus SASL 安全属性。 |
olcSaslAuxprops |
|
用于身份验证查找的额外属性插件。 |
索引
名称 |
默认值/必需 |
描述 |
olcIndexSubstrIfMinLen |
2 |
子初始和子最终索引的最小长度。 |
olcIndexSubstrIfMaxLen |
4 |
子初始和子最终索引的最大长度。 |
olcIndexSubstrAnyLen |
4 |
子任意索引的长度。属性长于此长度的在段中处理。 |
olcIndexSubstrAnyStep |
2 |
子任意查找中使用的步幅。这是处理过滤器字符串段的偏移量。 |
olcIndexIntLen |
4 |
有序整数索引的键长度。 |
其他
名称 |
默认值/必需 |
描述 |
olcAttributeOptions |
x-hidden lang- |
标记属性选项或选项标记/范围前缀。 |
olcReferral |
|
当 slapd 找不到本地数据库时返回的参考 URL。 |
olcReverseLookup |
FALSE |
启用客户端名称未验证的反向查找。 |
olcRootDSE |
|
包含根 DSE 的用户定义属性的 LDIF 文件名称。 |
olcReadOnly |
FALSE |
将整个服务器设置为只读模式。警告:一旦设置为 true,此值不能更改,除非修改磁盘上的数据库文件并重新启动 slapd! |
olcLdapSyntaxes |
|
我真不知道这个属性为什么在这里。网络上没有文档可以解释。 |
数据库配置值
这些值适用于每个数据库(OLC、监控和 MDB)。
此部分给出了所有值的概述。
每个数据库的默认值如下所示。
MDB 数据库还有一些仅在此数据库上支持的附加属性。
一般
名称 |
必需 |
描述 |
olcSuffix |
:heavy_check_mark: |
将传递给数据库后端的查询的 DN 后缀。对于 OLC 和监控并不是必需的。 |
olcReadOnly |
:heavy_check_mark: |
将此数据库置于只读模式。无法进行任何修改。 |
olcHidden |
:heavy_multiplication_x: |
不回答对该数据库的任何查询。slapd 将否认该数据库的存在。 |
olcLastMod |
:heavy_check_mark: |
slapd 是否将自动维护 modfiersName 、modifyTimestamp 、creatorsName 、createTimestamp 、entryCSN 和 entryUUID 。 |
olcSubordinate |
:heavy_multiplication_x: |
此数据库是否是另一个数据库的下属。 |
安全
名称 |
必需 |
描述 |
olcSecurity |
:heavy_multiplication_x: |
指定一组需要的安全强度因素。 |
olcRootDN |
:heavy_check_mark: |
此数据库的 RootDN 的名称。 |
olcRootPW |
:heavy_check_mark: |
此数据库的 RootDN 的哈希密码。 |
olcRequires |
:heavy_multiplication_x: |
一组条件要求。 |
olcRestrict |
:heavy_multiplication_x: |
一系列受限的操作。 |
olcAddContentAcl |
:heavy_check_mark: |
是否在对被添加条目的内容执行 ACL 检查。 |
olcAccess |
:heavy_check_mark: |
此数据库的 ACL 规则数组。 |
超时和限制
名称 |
必需 |
描述 |
olcTimeLimit |
:heavy_multiplication_x: |
slapd 在回答请求时将花费的最大时间(秒)。允许使用 unlimited 值。 |
olcSizeLimit |
:heavy_multiplication_x: |
从搜索返回的最大条目数。 |
olcLimits |
:heavy_multiplication_x: |
基于操作发起者或基本 DN 的时间和大小限制。 |
Syncrepl
名称 |
必需 |
描述 |
olcSyncrepl |
:heavy_multiplication_x: |
Syncrepl 主要配置。 |
olcUpdateDN |
:heavy_multiplication_x: |
允许更新副本的 DN。应当不是 rootDN。 |
olcSyncUseSubentry |
:heavy_multiplication_x: |
将 syncrepl contextCSN 存储在子条目中,而不是在上下文条目中。 |
olcUpdateRef |
:heavy_multiplication_x: |
当 slapd 被要求修改 replicated 数据库时要返回的参考。 |
olcMirrorMode |
:heavy_multiplication_x: |
将此数据库放入镜像模式。 |
slurpd
名称 |
必需 |
描述 |
olcReplica |
:heavy_multiplication_x: |
|
olcReplicaArgsFile |
:heavy_multiplication_x: |
|
olcReplicaPidFile |
:heavy_multiplication_x: |
|
olcReplicationInterval |
:heavy_multiplication_x: |
|
olcReplogFile |
:heavy_multiplication_x: |
|
其他
名称 |
必需 |
描述 |
olcSchemaDN |
:heavy_multiplication_x: |
条目所需的子模式子条目的 DN。 |
olcMaxDerefDepth |
:heavy_multiplication_x: |
允许跟随的别名的最大数量。 |
olcPlugin |
:heavy_multiplication_x: |
加载 slapi 插件。 |
olcMonitoring |
:heavy_multiplication_x: |
为此数据库收集监测数据。 |
olcExtraAttrs |
:heavy_multiplication_x: |
指定即使在未搜索时也需返回的属性。 |
MDB 设置
这些设置仅适用于 MDB 数据库!
名称 |
必需 |
默认值 |
描述 |
olcDbDirectory |
:heavy_check_mark: |
{{slapd_mdb_dir}} |
数据库在磁盘上的目录路径。 |
olcDbNoSync |
:heavy_multiplication_x: |
TRUE |
接收数据后不立即同步。 |
olcDbCheckpoint |
:heavy_multiplication_x: |
8192 15 |
何时(KB/分钟)将数据库刷新到磁盘。 |
olcDbMaxReaders |
:heavy_multiplication_x: |
|
可同时访问数据库的线程的最大数量。 |
olcDbMaxSize |
:heavy_multiplication_x: |
|
数据库的最大字节大小。 |
olcDbMode |
:heavy_multiplication_x: |
0600 |
数据库文件的文件模式。 |
olcDbSearchStack |
:heavy_multiplication_x: |
16 |
搜索过滤器评估期间的堆栈深度。 |
olcDbRtxnSize |
:heavy_multiplication_x: |
|
在一次读取事务中处理的项数。 |
olcDbIndex |
:heavy_multiplication_x: |
|
在此数据库上创建的索引。 |
每个数据库的默认值
名称 |
前端默认 |
OLC 默认 |
监控默认 |
MDB 默认 |
olcSuffix |
|
|
|
:exclamation: |
olcReadOnly |
FALSE |
FALSE |
|
|
olcHidden |
FALSE |
|
|
|
olcLastMod |
TRUE |
TRUE |
|
|
olcSubordinate |
|
|
|
|
olcSecurity |
|
|
|
|
olcRootDN |
|
{{slapd_olc_rootdn}} |
cn=root,cn=monitor |
cn=root,{{olcSuffix}} |
olcRootPW |
|
[哈希密码] |
[哈希密码] |
[哈希密码] |
olcRequires |
|
|
|
|
olcRestrict |
|
|
|
|
olcAddContentAcl |
TRUE |
TRUE |
|
|
olcAccess |
'to * by * read' |
'to * by * none' |
'to * by * none' |
'to * by * none' |
olcTimeLimit |
|
|
|
|
olcSizeLimit |
|
|
|
|
olcLimits |
|
|
|
|
olcSyncrepl |
|
|
|
|
olcUpdateDN |
|
|
|
|
olcSyncUseSubentry |
FALSE |
FALSE |
|
|
olcUpdateRef |
|
|
|
|
olcMirrorMode |
FALSE |
|
|
|
olcReplica |
|
|
|
|
olcReplicaArgsFile |
|
|
|
|
olcReplicaPidFile |
|
|
|
|
olcReplicationInterval |
|
|
|
|
olcReplogFile |
|
|
|
|
olcSchemaDN |
cn=Subschema |
|
|
|
olcMaxDerefDepth |
15 |
15 |
|
|
olcPlugin |
|
|
|
|
olcMonitoring |
FALSE |
FALSE |
|
|
olcExtraAttrs |
|
|
|
|
依赖关系
必须安装 schema2ldif
。
示例剧本
- hosts: ldap
roles:
- slapd-config
slapd_modules_path: /usr/lib/openldap
slapd_olc_rootdn_password: water
slapd_mdb_rootdn_password: water
slapd_monitor_rootdn_password: water
slapd_additional_modules: [ 'memberof' ]
slapd_mdb_config:
olcSuffix: "dc=example,dc=com"
slapd_mdb_overlays:
memberof:
olcOverlay: memberof
objectClass: olcMemberOf
olcMemberOfDangling: ignore
许可证
此作品遵循 Creative Commons Attribution-ShareAlike 4.0 International License 许可。
作者信息