已安装系统的 /etc/openldap/slapd.conf
中包含 LDAP 服务器的完整配置文件。在此简述了其中的各个项并说明了必要的调整。以符号 (#) 为前缀的项处于非活动状态。必须取消这个注释字符才能激活这些项。html
1.用于加载schema模式的 Include 指令正则表达式
include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/rfc2307bis.schema include /etc/openldap/schema/yast.schema
这是 slapd.conf
中的第一个指令,用于指定组织 LDAP 目录所依据的模式。core.schema
是必需项。所需的其他模式会追加到此指令中。在包含的 OpenLDAP 文档中查找信息。数据库
这两个文件包含启动 slapd 进程所用的 PID(进程 ID)和一些参数。安全
3.访问控制服务器
# Sample Access Control # Allow read access of root DSE # Allow self write access # Allow authenticated users read access # Allow anonymous users to authenticate # access to dn="" by * read access to * by self write by users read by anonymous auth # # if no access controls are present, the default is: # Allow read by all # # rootdn can always write!
此选项涉及如何管理服务器上的 LDAP 目录的访问权限。只要在数据库特定部分没有声明任何自定义访问规则,slapd.conf
的全局部分中的设置将始终有效。这些自定义声明会重写全局声明。如本例所示,全部用户均可以读取目录,但只有管理员 (rootdn
) 才能写入此目录。LDAP 中的访问控制管理是一个很是复杂的过程。如下提示会有所帮助:app
每条访问规则都具备以下结构:ide
access to <what> by <who> <access>
what
是一个占位符,表示受权访问的对象或属性。可使用单独的规则来明确保护各个目录分支。还可使用正则表达式经过一条规则处理目录树的各个区域。slapd 按照各条规则列在配置文件中的前后顺序依次评估它们。较通用的规则应列在较特定的规则以后 - 在评估 slapd 认为有效的第一条规则以后,随后的全部项都将被忽略。spa
who
肯定应该受权谁来访问 what
肯定的区域。可使用正则表达式。slapd 一样会在评估第一条有效规则以后停止对随后的 who
的评估,因此应将较具体的规则列在较抽象的规则以前。日志
表 用户组及其访问受权
标记 |
范围 |
---|---|
|
全部用户,无一例外 |
|
未身份验证“匿名”用户 |
|
已身份验证用户 |
|
与目标对象链接的用户 |
|
与正则表达式匹配的全部用户 |
access
指定访问类型。请使用 上表所列的选项。
slapd 会将客户机请求的访问权限与 slapd.conf
中授予的权限进行对比。若是规则容许的权限等于或高于请求的权限,则能够授予客户机权限。若是客户机请求的权限高于规则中声明的权限,便会拒绝授予权限。
以下一个简单示例,使用正则表达式能够随意指定这样的简单访问控制。
access to dn.regex="ou=([^,]+),dc=example,dc=com" by dn.regex="cn=Administrator,ou=$1,dc=example,dc=com" write by user read by * none
此规则声明只有各个 ou
项的管理员才有权写入他/她所管理的项。其余全部经过身份验证的用户只有读权限,其他人没有任何权限。
access to
规则或匹配的
by
指令,则拒绝访问。只有通过显式声明才能授予访问权限。若是根本没有声明任何规则,默认规则是管理员具备写权限,其余全部用户都具备读权限。
除了可使用中央服务器配置文件 (slapd.conf
) 管理访问权限以外,还可使用访问控制信息 (ACI)。ACI 容许储存 LDAP 树中各个对象的访问信息。
特定于数据库的指令
database bdbsuffix "dc=example,dc=com"
checkpoint 1024 5
cachesize 10000
rootdn "cn=Administrator,dc=example,dc=com"
# Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret
# The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap
# Indices to maintain index objectClass eq
overlay ppolicy
ppolicy_default "cn=Default Password Policy,dc=example,dc=com" ppolicy_hash_cleartext ppolicy_use_lockout
数据库类型(本案例中为 Berkeley)是在本部分的第一行设置的(请参见例 36.6 “slapd.conf:特定于数据库的指令”)。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
最后一个指令 |
|
|
在此为数据库自定义的 Access
规则将取代全局 Access
规则