9、 使用SASL
OpenLDAP客户端和服务器能够通过简单认证和SASL框架(在RFC2222中详细描述)来认证用户。本章描述了如何在OpenLDAP中使用SASL。
SASL可以和几种工业标准的认证机制一起工作。包括Kerberos V4,GSSAPI,已经其他的一些摘要机制。标准的OpenLDAP提供的客户端工具,比如ldapsearch(1)以及ldapmodify(1),默认情况下将试图使用SASL来向slapd(8)服务器认证用户。基本的认证服务可以让LDAP管理员在几个步骤中设置好,允许用户以他们的LDAP条目的身份向slapd服务器进行认证。通过另外几个步骤,用户和服务可以利用SASL的授权机制,允许他们认证自己,然后,切换他们的身份到其他的用户或者服务。
本章假设您已经阅读过了Cyrus SASL系统管理指南,该指南和Cyrus SASL软件包一起提供(在/doc/sysadmin.html)。
注意,下面的文本中,术语“用户”来描述一个通过一个LDAP客户端(比如ldapsearch(1))连接到LDAP服务器的人或者应用程序实体。也就是说,术语“用户”不只是使用LDAP客户端的个人,还有不同过用户的直接控制而发起LDAP客户端操作的应用程序实体。比如,一个使用LDAP来获取存放在一个LDAP服务器中的信息的电子邮件服务器就是一个应用程序实体。
OpenLDAP客户端和服务器能够通过简单认证和SASL框架(在RFC2222中详细描述)来认证用户。本章描述了如何在OpenLDAP中使用SASL。
SASL可以和几种工业标准的认证机制一起工作。包括Kerberos V4,GSSAPI,已经其他的一些摘要机制。标准的OpenLDAP提供的客户端工具,比如ldapsearch(1)以及ldapmodify(1),默认情况下将试图使用SASL来向slapd(8)服务器认证用户。基本的认证服务可以让LDAP管理员在几个步骤中设置好,允许用户以他们的LDAP条目的身份向slapd服务器进行认证。通过另外几个步骤,用户和服务可以利用SASL的授权机制,允许他们认证自己,然后,切换他们的身份到其他的用户或者服务。
本章假设您已经阅读过了Cyrus SASL系统管理指南,该指南和Cyrus SASL软件包一起提供(在/doc/sysadmin.html)。
注意,下面的文本中,术语“用户”来描述一个通过一个LDAP客户端(比如ldapsearch(1))连接到LDAP服务器的人或者应用程序实体。也就是说,术语“用户”不只是使用LDAP客户端的个人,还有不同过用户的直接控制而发起LDAP客户端操作的应用程序实体。比如,一个使用LDAP来获取存放在一个LDAP服务器中的信息的电子邮件服务器就是一个应用程序实体。
6、 运行SLAPD
slapd被设计为可以作为一个单独的服务器运行。这允许服务器充分的利用缓存,利用底层数据库的特性来管理并发,并且节省系统资源。从inetd(8)来运行slapd(8)不能作为选项。
6.1、 命令行选项
slapd(8)支持大量的命令行选项。它们在手册页中有详细的说明。本部分详细说明了几个常用的选项。
-f
该选项说明了可以为slapd使用的另外的配置文件。缺省选项是正常情况下的/usr/local/etc/openldap/slapd.conf。
-h
该选项说明了另外的侦听器配置。缺省的是ldap:///,它表示运行在TCP上的LDAP,在缺省的389端口侦听所有的网络界面。可以指明特殊的主机——端口对或者其他的协议模式(比如,ldaps://或者ldapi://)。例如:-h “ldaps:// ldap://127.0.0.1:666”将创建两个侦听器:一个在默认的LDAP/SSL的636端口,侦听所有网络界面上的通过SSL的LDAP请求,另一个在localhost(环回地址)界面上侦听666端口。主机可以使用IPV4的点分十进制格式,或者使用主机名称。端口必须是数字。
-n
该选项说明了用来进行日志记录或者其他用途的服务名称。默认的服务名称是slapd。
-l
该选项指明了用于syslog(8)应用的本地用户。可以是LOCAL0,LOCAL1,LOCAL2,……LOCAL7等数值。默认值是LOCAL4。该选项并不是在所有系统上都支持。
-u user -g group
该选项分别指明了用来运行的用户或者组的身份。User可以是用户名或者uid,group可以是组名或者gid。
-r directory
该选项指明了一个运行时的目录。slapd将在打开侦听器并且读取任何配置文件或者初始化任何后端数据库之前使用chroot(2)到该目录。
-d | ?
该选项设置slapd的调试级别为。当level是“?”的时候,无论传递给它任何选项,将打印不同的调试级别,然后slapd终止。当前的调试级别是:
slapd被设计为可以作为一个单独的服务器运行。这允许服务器充分的利用缓存,利用底层数据库的特性来管理并发,并且节省系统资源。从inetd(8)来运行slapd(8)不能作为选项。
6.1、 命令行选项
slapd(8)支持大量的命令行选项。它们在手册页中有详细的说明。本部分详细说明了几个常用的选项。
-f
该选项说明了可以为slapd使用的另外的配置文件。缺省选项是正常情况下的/usr/local/etc/openldap/slapd.conf。
-h
该选项说明了另外的侦听器配置。缺省的是ldap:///,它表示运行在TCP上的LDAP,在缺省的389端口侦听所有的网络界面。可以指明特殊的主机——端口对或者其他的协议模式(比如,ldaps://或者ldapi://)。例如:-h “ldaps:// ldap://127.0.0.1:666”将创建两个侦听器:一个在默认的LDAP/SSL的636端口,侦听所有网络界面上的通过SSL的LDAP请求,另一个在localhost(环回地址)界面上侦听666端口。主机可以使用IPV4的点分十进制格式,或者使用主机名称。端口必须是数字。
-n
该选项说明了用来进行日志记录或者其他用途的服务名称。默认的服务名称是slapd。
-l
该选项指明了用于syslog(8)应用的本地用户。可以是LOCAL0,LOCAL1,LOCAL2,……LOCAL7等数值。默认值是LOCAL4。该选项并不是在所有系统上都支持。
-u user -g group
该选项分别指明了用来运行的用户或者组的身份。User可以是用户名或者uid,group可以是组名或者gid。
-r directory
该选项指明了一个运行时的目录。slapd将在打开侦听器并且读取任何配置文件或者初始化任何后端数据库之前使用chroot(2)到该目录。
-d | ?
该选项设置slapd的调试级别为。当level是“?”的时候,无论传递给它任何选项,将打印不同的调试级别,然后slapd终止。当前的调试级别是:
2、 快速指南
下面的部分是OpenLDAP2.1的一个快速指南,包括独立的LDAP daemon,SLAPD(8)。
如果您需要认真地运行OpenLDAP,在安装之前应该阅读本文档的所有部分。
注意:快速指南没有使用强度认证和任何完整性和安全保护服务。这些服务在OpenLDAP管理员指南的后面的章节描述。
2.1、 获得软件
http://www.openldap.org/so...。
2.2、 解开软件发行包
gunzip _c openldap-VERSION.tgz | tar xvfB –
然后进入目录:
cd openldap-VERSION
您必须将VERSION使用发行版本的版本名称替换。
2.3、 查看文档
应该查看随版本发行的COPYRIGHT,LICENSE,README,以及INSTALL文档。COPYRIGHT和LICENSE提供了OpenLDAP软件可以使用,拷贝和限制的警告。
还应该查看本文档的其他章节。特别是,“编译和安装OpenLDAP软件”。这一章提供了该软件需要的其他软件和安装步骤地详细信息。
下面的部分是OpenLDAP2.1的一个快速指南,包括独立的LDAP daemon,SLAPD(8)。
如果您需要认真地运行OpenLDAP,在安装之前应该阅读本文档的所有部分。
注意:快速指南没有使用强度认证和任何完整性和安全保护服务。这些服务在OpenLDAP管理员指南的后面的章节描述。
2.1、 获得软件
http://www.openldap.org/so...。
2.2、 解开软件发行包
gunzip _c openldap-VERSION.tgz | tar xvfB –
然后进入目录:
cd openldap-VERSION
您必须将VERSION使用发行版本的版本名称替换。
2.3、 查看文档
应该查看随版本发行的COPYRIGHT,LICENSE,README,以及INSTALL文档。COPYRIGHT和LICENSE提供了OpenLDAP软件可以使用,拷贝和限制的警告。
还应该查看本文档的其他章节。特别是,“编译和安装OpenLDAP软件”。这一章提供了该软件需要的其他软件和安装步骤地详细信息。
0、 前言
0.1、 版权
Copyright 1998-2001, The OpenLDAP Foundation, All Rights Reserved.
Copyright 1992-1996, Regents of the University of Michigan, All Rights Reserved.
中文版由NTKO翻译。E-mail: dominoreg@sina.com。分发该文档务必保留有关中文版的翻译信息和所有其他的版权信息。
0.2、 该文档的范围
该文档提供了为在UNIX或者类UNIX的系统上安装OpenLDAP 2.1软件(http://www.openldap.org/so...)提供了一个指南。该文档面向有经验的系统管理员。但是,他可以没有运行一个基于LDAP目录软件的经验。
该文档应该和随该软件包一起提供的其他的OpenLDAP信息资源,以及和WWW上该项目的站点(http://www.OpenLDAP.org/)上提供的信息一起使用。该站点提供了大量的资源。
OpenLDAP Resources
Resource
URL
Document Catalog
http://www.OpenLDAP.org/do...
Frequently Asked Questions
http://www.OpenLDAP.org/fa...
Issue Tracking System
http://www.OpenLDAP.org/it...
Mailing Lists
http://www.OpenLDAP.org/li...
Software Pages
http://www.OpenLDAP.org/so...
Support Pages
http://www.OpenLDAP.org/su...
0.1、 版权
Copyright 1998-2001, The OpenLDAP Foundation, All Rights Reserved.
Copyright 1992-1996, Regents of the University of Michigan, All Rights Reserved.
中文版由NTKO翻译。E-mail: dominoreg@sina.com。分发该文档务必保留有关中文版的翻译信息和所有其他的版权信息。
0.2、 该文档的范围
该文档提供了为在UNIX或者类UNIX的系统上安装OpenLDAP 2.1软件(http://www.openldap.org/so...)提供了一个指南。该文档面向有经验的系统管理员。但是,他可以没有运行一个基于LDAP目录软件的经验。
该文档应该和随该软件包一起提供的其他的OpenLDAP信息资源,以及和WWW上该项目的站点(http://www.OpenLDAP.org/)上提供的信息一起使用。该站点提供了大量的资源。
OpenLDAP Resources
Resource
URL
Document Catalog
http://www.OpenLDAP.org/do...
Frequently Asked Questions
http://www.OpenLDAP.org/fa...
Issue Tracking System
http://www.OpenLDAP.org/it...
Mailing Lists
http://www.OpenLDAP.org/li...
Software Pages
http://www.OpenLDAP.org/so...
Support Pages
http://www.OpenLDAP.org/su...
一、 配置部份
在基本配置完成之后,可以在slapd.conf设置一些提高安全和效率的选项
cachesize 5000
checkpoint 1024 5
cachesize是ldap在内存中缓存的记录条数。这个缓存是openldap自己维护的,与bdb库无关。
为了提高效率bdb在修改数据库时,是先修改内存里面的,然后分批回写到数据库文件里面。Checkpoint操作就是把内存中的数据回写数据库文件的操作。
checkpoint 1024 5表示每写1024kb数据,或者是每隔5分钟,bdb会执行一次checkpoint的操作。
在bdb库中提拱了一个命令db_checkpoint,用来给用户执行checkpoint用。比如,当用户需要删除日志的时候,他需要先执行一下db_checkpoint,来确保数据已经回写到数据库文件中了,这时才能放心地删掉日志。
还有一些设置bdb环境的选项设置,这些选项存在于DB_CONFIG。这个文件放在openldap-data/下
set_cachesize是bdb库自己的cache,这个选项用来设置cache的大小。这个选项的格式
set_cachesize
: cache 的 GB 大小
: cache 的 Bytes
: cache 段的数目, 如果配置为 0 or 1, 那么是一段连续的 cache.
set_cachesize一旦设定,就不能更改,除非你再用db_recover重建库。
set_lg_dir 设置操作日志存放的目录。
set_lg_bsize 设置操作日志的缓存
set_lg_max 设置操作日志文件大小
set_flags 配置数据库启动参数, 可以配置多个选项标志,比如 DB_TXN_NOSYNC 告诉数据库不要立即刷新事务缓冲, 设置该值可以提高数据库写性能, 但伴随的是数据丢失的风险(无法通过操作日志恢复). 因此并不推荐使用该选项。
二、维护
1) 数据库和日志的归档(或者叫备份)
有两种备份方法
a)标准备份
这种备份方法,要求是在备份的时候停止对数据库的写操作。方法是,
1)停止对数据库的写
2)执行一次checkpoint
3)在数据库文件的目录下,执行db_archive –s标识出数据库文件,把它们拷到要备份的目录下。
4)在日志目录下,执行db_archive,列出的是不活动的日志文件,再用db_archive –l列出所有
的日志文件,由些来判断哪个是活动日志文件。一般是日志文件编号最大的一个。把这个日志文件拷到
备份的目录下。
这种备份不需要recover,直接就能用。
b)热备份
这种备份方法,可以在任何时候用。方法如下
1)在数据库文件的目录下,执行db_archive –s标识出数据库文件,把它们都拷到备份目录下。
2)在日志目录下,执行db_archive –l标识出所有的日志文件。把它们拷到备份目录下。
为了节省备份目录的空间,可以在热备份之前,在备份目录执行db_archive列出不再需要的日志文件
的列表,可以不把这些日志文件拷到备份目录下。
2)数据恢复
数据恢复有两种,一种是正常恢复,一种是热恢复。
正常恢复是,当数据库文件和日志文件都没有被损坏时,执行db_recover,不要带参数。当采用热备份的方法所做的备份,必段要用热恢复的方法来恢复
热恢复是,当数据库文件或者日志文件损坏时,在热备份的备份目录下,执行db_recover -c 来恢复数据。
几个工具的简介
db_archive 用来确定归档文件的工具,常用的用法
在数据文件目录下,运行db_archive –s 用来确定哪些是数据库文件
db_archive 不带任保参数,列出不再需要的日志文件名。db_archive –l 列出所有日志文件名
db_checkpoint 用来手工checkpoint的工具,比如,在数据文件目录下,运行db_checkpoint –1 执行一次checkpoint的操作。
db_recover 用于恢复数据库,常用的用法,db_recover 不带任务参数,表示用正常恢复方法恢复数据库。db_recover –c 用于热恢复用的,db_reover –t 可以把数据库恢复到指定时间的状态。
在基本配置完成之后,可以在slapd.conf设置一些提高安全和效率的选项
cachesize 5000
checkpoint 1024 5
cachesize是ldap在内存中缓存的记录条数。这个缓存是openldap自己维护的,与bdb库无关。
为了提高效率bdb在修改数据库时,是先修改内存里面的,然后分批回写到数据库文件里面。Checkpoint操作就是把内存中的数据回写数据库文件的操作。
checkpoint 1024 5表示每写1024kb数据,或者是每隔5分钟,bdb会执行一次checkpoint的操作。
在bdb库中提拱了一个命令db_checkpoint,用来给用户执行checkpoint用。比如,当用户需要删除日志的时候,他需要先执行一下db_checkpoint,来确保数据已经回写到数据库文件中了,这时才能放心地删掉日志。
还有一些设置bdb环境的选项设置,这些选项存在于DB_CONFIG。这个文件放在openldap-data/下
set_cachesize是bdb库自己的cache,这个选项用来设置cache的大小。这个选项的格式
set_cachesize
set_cachesize一旦设定,就不能更改,除非你再用db_recover重建库。
set_lg_dir
set_lg_bsize
set_lg_max
set_flags
二、维护
1) 数据库和日志的归档(或者叫备份)
有两种备份方法
a)标准备份
这种备份方法,要求是在备份的时候停止对数据库的写操作。方法是,
1)停止对数据库的写
2)执行一次checkpoint
3)在数据库文件的目录下,执行db_archive –s标识出数据库文件,把它们拷到要备份的目录下。
4)在日志目录下,执行db_archive,列出的是不活动的日志文件,再用db_archive –l列出所有
的日志文件,由些来判断哪个是活动日志文件。一般是日志文件编号最大的一个。把这个日志文件拷到
备份的目录下。
这种备份不需要recover,直接就能用。
b)热备份
这种备份方法,可以在任何时候用。方法如下
1)在数据库文件的目录下,执行db_archive –s标识出数据库文件,把它们都拷到备份目录下。
2)在日志目录下,执行db_archive –l标识出所有的日志文件。把它们拷到备份目录下。
为了节省备份目录的空间,可以在热备份之前,在备份目录执行db_archive列出不再需要的日志文件
的列表,可以不把这些日志文件拷到备份目录下。
2)数据恢复
数据恢复有两种,一种是正常恢复,一种是热恢复。
正常恢复是,当数据库文件和日志文件都没有被损坏时,执行db_recover,不要带参数。当采用热备份的方法所做的备份,必段要用热恢复的方法来恢复
热恢复是,当数据库文件或者日志文件损坏时,在热备份的备份目录下,执行db_recover -c 来恢复数据。
几个工具的简介
db_archive 用来确定归档文件的工具,常用的用法
在数据文件目录下,运行db_archive –s 用来确定哪些是数据库文件
db_archive 不带任保参数,列出不再需要的日志文件名。db_archive –l 列出所有日志文件名
db_checkpoint 用来手工checkpoint的工具,比如,在数据文件目录下,运行db_checkpoint –1 执行一次checkpoint的操作。
db_recover 用于恢复数据库,常用的用法,db_recover 不带任务参数,表示用正常恢复方法恢复数据库。db_recover –c 用于热恢复用的,db_reover –t 可以把数据库恢复到指定时间的状态。







