debian下ldap服务器初始设置
2013-08-09 17:05:01 阿炯

1、安装
# apt-get install slapd ldap-utils migrationtools

2、配置slapd.conf
#加载相关条目
include    /etc/ldap/schema/core.schema
include    /etc/ldap/schema/cosine.schema
include     /etc/ldap/schema/inetorgperson.schema
include     /etc/ldap/schema/openldap.schema
include    /etc/ldap/schema/nis.schema
include    /etc/ldap/schema/misc.schema
include    /etc/ldap/schema/pureftpd.schema
include    /etc/ldap/schema/samba3.schema
#密码存储格式
password-hash          {SSHA}
#默认搜索dn
defaultsearchbase    dc=freeoa,dc=net
#pid文件路径
pidfile        /var/run/slapd/slapd.pid
#参数文件
argsfile    /var/run/slapd/slapd.args
#日志记录等级
loglevel    8192
#加载相关模块
modulepath      /usr/lib/ldap
moduleload      back_hdb
moduleload      back_monitor
#访问权限级别
access to dn.base=""
 by * read

access to dn.subtree=cn=Monitor
 by * read

access to attrs=userPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange,shadowMax,shadowExpire
 by dn.regex="uid=[^/]+/admin" write
 by anonymous auth
 by self write
 by * none

access to attrs=sambaLmPassword,sambaNtPassword
 by dn.regex="uid=[^/]+/admin" write
 by anonymous auth
 by self write
 by * none

access to *
 by dn.regex="uid=[^/]+/admin" =wrscx
 by * read
#存储库的定义
database    monitor

database    hdb
cachesize 5000
mode          0600
#后缀
suffix        "dc=freeoa,dc=net"
checkpoint    512 720
#定义管理员及其密码
rootdn    "cn=admin,dc=freeoa,dc=net"
rootpw    {SSHA}XRNNfje0M5mcggovT28YFwX6Q2WJQtAc    
#索引的字段
index   default                                                sub
index   uid,mail                                               eq
index   cn,sn,givenName,ou                                     pres,eq,sub
index   objectClass                                            pres,eq
index   uidNumber,gidNumber,memberuid                          eq
index   roleOccupant                                           eq

index   sambaSID                                               eq
index   sambaPrimaryGroupSID                                   eq
index   sambaDomainName                                        eq
#数据库路径
directory    "/var/lib/ldap"
#记录上次修改信息
lastmod on

注:默认的'include'在安装时仅有如下一些:
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

但够日常使用。

database    hdb
当然也可能是'bdb',视情况而定。

loglevel        debug
或为‘8192’数字格式,具体参见slapd.conf(5)的man手册。

suffix        "dc=freeoa,dc=net"
定义了顶级域。

rootdn    "cn=admin,dc=freeoa,dc=net"
rootpw    {SSHA}XRNNfje0dsgfdsgfgovT28YFwX6Q2WJQtAc    

定义了最高管理的名称(admin)与{ssha}格式的密码,具体请通过'man slappasswd '来了解更多。

3、初始化ldap数据库
当然这种方法对重建ldap库也同样有用。

删除已经存在的库:将'/var/lib/ldap'目录下的内容全部删除。

启动openldap服务器,如果有报错的话,请查看日志,应该是缺少了相关条目。

初始化通过‘migrationtools’工具集来做,一般只需要对其做很简单的初始化即可。进入到'/usr/share/migrationtools'目录下,migrate_common.ph为其下脚本运行时的配置文件,我们将对它做修改。
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "padl.com";

# Default base
$DEFAULT_BASE = "dc=padl,dc=com";

将默认的'padl'改为'freeoa','com'改为'net',当然这是笔记的需要。

保存好后,执行'migrate_base.pl'可以看到有相关的输出,我们将其保存为base.ldif。下面我们将其导入来初始化ldap服务器。

# ldapadd -x -D "cn=admin,dc=freeoa,dc=net" -W -f base.ldif

它会提示你输入在sldap.conf文件中定义的最高用户的密码,成功会显示若干导入的信息,至此初始化完成。我们在其它机器上对其进行查证:
# ldapsearch -h192.168.16.6 -v -D 'cn=admin,dc=freeoa,dc=net' -W -x -b 'dc=freeoa,dc=net' -s sub

输入密码后,会将所有的条目输出的屏幕。

4、管理ldap服务器
此页面上有多款ldap的管理工具,有客户端、web方式的,不过还是推荐用LDAP Account Manager,简单、实用。