openldap slapd.conf参数

Posted pycode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openldap slapd.conf参数相关的知识,希望对你有一定的参考价值。

已安装系统的 /etc/openldap/slapd.conf 中包含 LDAP 服务器的完整配置文件。在此简述了其中的各个项并说明了必要的调整。以符号 (#) 为前缀的项处于非活动状态。必须取消这个注释字符才能激活这些项。

slapd.conf 中的全局指令

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 文档中查找信息。

2.pidfile 和 argsfile

pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args

这两个文件包含启动 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 中的访问控制管理是一个非常复杂的过程。以下提示会有所帮助:

  • 每条访问规则都具有如下结构:

    access to <what> by <who> <access>
  • what 是一个占位符,表示授权访问的对象或属性。可以使用单独的规则来明确保护各个目录分支。还可以使用正则表达式通过一条规则处理目录树的各个区域。slapd 按照各条规则列在配置文件中的先后顺序依次评估它们。较通用的规则应列在较特定的规则之后 - 在评估 slapd 认为有效的第一条规则之后,随后的所有项都将被忽略。

  • who 确定应该授权谁来访问 what 确定的区域。可以使用正则表达式。slapd 同样会在评估第一条有效规则之后中止对随后的 who 的评估,所以应将较具体的规则列在较抽象的规则之前。

    表 用户组及其访问授权

    标记

    范围

    *

    所有用户,无一例外

    anonymous

    未身份验证“匿名”用户

    users

    已身份验证用户

    self

    与目标对象连接的用户

    dn.regex=<regex>

    与正则表达式匹配的所有用户


  • access 指定访问类型。请使用 上表所列的选项。

    表 访问类型

    标记

    访问范围

    none

    无访问权

    auth

    用于联系服务器

    compare

    授予要进行比较访问的对象

    search

    用于应用搜索过滤器

    read

    读权限

    write

    写权限


    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 树中各个对象的访问信息。

slapd.conf 中的数据库特定指令

特定于数据库的指令

database bdb技术分享图片
suffix "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:特定于数据库的指令”)。

技术分享图片

suffix 确定服务器应负责的 LDAP 树的部分。

技术分享图片

checkpoint 确定写入真实数据库前保留在事务日志中的数据量(以 KB 为单位)以及两次写操作之间的时间(以分钟为单位)。

技术分享图片

cachesize 设置保留在数据库缓存中的对象数。

技术分享图片

rootdn 确定拥有此服务器的管理员权限的用户。在此声明的用户不必拥有 LDAP 项,也不必是普通用户。

技术分享图片

rootpw 设置管理员密码。在此不必使用 secret,可以输入 slappasswd 创建的管理员密码的哈希值。

技术分享图片

directory 指令表明数据库目录储存在服务器的文件系统中的哪个目录中。

技术分享图片

最后一个指令 index objectClass eq 指示对所有对象类的索引进行维护。可以在此根据经验添加用户最常搜索的属性。

技术分享图片

overlay ppolicy 添加一个密码控制机制层。ppolicy_default 指定给定用户项上未设置特定策略时要使用的 pwdPolicy 对象的 DN。如果对某项无特定策略,且未给定默认值,则不会强加任何策略。ppolicy_hash_cleartext 指定显示在添加和修改请求中的明文密码在储存到数据库中之前会执行哈希运算。使用此选项时,建议拒绝所有目录用户对 userPassword 属性的比较、搜索和读访问,因为 ppolicy_hash_cleartext 违反了 X.500/LDAP 信息模型。当某客户机尝试连接锁定帐户时,ppolicy_use_lockout 会发送一个特定的错误代码。如果您的站点对安全问题敏感,请禁用此选项,因为错误代码会向攻击者提供有用的信息。

在此为数据库自定义的 Access 规则将取代全局 Access 规则











以上是关于openldap slapd.conf参数的主要内容,如果未能解决你的问题,请参考以下文章

安装openldap

OpenLDAP权限配置

2LDAP yum安装

OpenLdap安装与配置

ldap+phpldapadmin+svn

CentOS7下OpenLDAP统一认证的主从环境部署记录