Ldap 增量同步配置
执行slappasswd命令,得到想要设置的管理员密码加密后的结果
[root@localhost ~]# slappasswd -s 123456
{SSHA}GaIBaSF+IGfjfYb0daeo4gCUeR/9RUa3
在/etc/openldap目录下,创建slapd.conf文件,并编写增量复制相关配置
虽然在2.4.x的某个版本后,官网不再使用slapd.conf文件作为主配置文件,而是使用的是slapd.d目录中的配置文件
(并且不支持直接修改该目录下的文件,若想修改配置需要编写ldif文件修改)
但是对于增量复制的相关配置,官网给出的文档,依然是slapd.conf的方式进行的配置
所以此处进行slapd.conf的编写,再通过slaptest -f slapd.conf -F slapd.d命令生成slapd.d的配置目录
具体配置内容如下:
# 此处引入所有的schema,具体的schema在/etc/openldap/schema目录下,
# 不同的版本有schema有不同的区别,根据实际情况进行引入
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
include /etc/openldap/schema/pmi.schema
# Allow LDAPv2 client connections. This is NOT the default.
# 允许LDAPv2客户端连接。这不是默认值
allow bind_v2
# 这两个文件包含启动 slapd 进程所用的 PID(进程 ID)和一些参数
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
# Load dynamic backend modules
# - modulepath is architecture dependent value (32/64-bit system)
# - back_sql.la overlay requires openldap-server-sql package
# - dyngroup.la and dynlist.la cannot be used at the same time
#设置模块路径位置
#对应32位操作系统
#modulepath /usr/lib/openldap
#对应64位操作系统
modulepath /usr/lib64/openldap
#加载accesslog overlay
moduleload accesslog.la
#加载mdb后端
moduleload back_mdb.la
#加载syncprov overlay
moduleload syncprov.la
#加载memberof
moduleload memberof.la
# 访问控制
# enable on-the-fly configuration (cn=config)
database config
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * none
# enable server status monitoring (cn=monitor)
database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=Manager,dc=my-domain,dc=com" read
by * none
#配置change log数据库,更新操作对应的日志记录就存储在这个数据库中
#这个数据库是增量复制环境所需要的
database mdb
maxsize 85899345920
suffix "cn=accesslog"
rootdn "cn=accesslog"
#使用上方加密后的结果
rootpw {SSHA}ClA5L0ecldZ2dfh8PTsxXXWyjacAwKnFZ
#这一项配置的是更新日志的存储路径,注意accesslog是一个目录而不是一个文件,从directory 这个关键字也可得知。
#=====注意=======此处需要先创建出如下的目录,否则启动会报错
directory /var/lib/ldap/accesslog
index default eq
index entryCSN,objectClass,reqEnd,reqResult,reqStart,reqDN
#设置让dn管理员可无限制地搜索
limits dn.exact="cn=example" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited
#配置复制引擎
overlay syncprov
syncprov-nopresent TRUE
syncprov-reloadhint TRUE
#配置主数据库,即目录树数据存储的数据库
database mdb
maxsize 85899345920
#表示目录数的根节点,一切的数据存储都是基于该节点进行存储的,所以它是base节点。
suffix "com=example"
#checkpoint 确定写入真实数据库前保留在事务日志中的数据量(以 KB 为单位)以及两次写操作之间的时间(以分钟为单位)。
checkpoint 1024 15
#表示管理员。 此处根据实际情况自定义,我这里的管理员为`cn=example`
rootdn "cn=example"
#表示管理员密码 #使用上方加密后的结果
rootpw {SSHA}ClA5L0eclredZ2dfh8PTsXxWyjacAwKnFZ
#表示主数据库的数据存储路径,这个路径最好不要与change log数据库的路径一样
directory /var/lib/ldap
# syncprov 特定索引
index entryCSN eq
index entryUUID eq
# syncrepl 主数据库
##设置复制检查点
overlay syncprov
syncprov-checkpoint 1 1
# 开启memberof
overlay memberof
#设置日志级别
loglevel 17152
#设置overlay accesslog
overlay accesslog
logdb cn=accesslog
logops writes
logsuccess TRUE
#每天扫描一次操作日志数据库, 并清除30天前的条目
logpurge 30+00:00 01+00:00
#设置让dn管理员可无限制地搜索
limits dn.exact="cn=example" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited
#root.ldif 创建根节点
dn: com=example
objectClass: domain
objectClass: top
domain: example
ldapadd -x -D "cn=example" -w h2G1jmdRCacAVa7l -f root.ldif
删除原有配置,重新配置
#进入openldap安装目录
cd /etc/openldap
#备份原有配置文件目录slapd.d
mv slapd.d slapd.d_bak
#创建新的slapd.d目录
mkdir slapd.d
#清除/var/lib/ldap下的目录
rm -rf /var/lib/ldap/*
#需要提前创建出配置文件中directory所对应的目录,否则会报错
mkdir /var/lib/ldap/accesslog
#根据新的slapd.con配置文件,生成新的配置文件到新建的slapd.d目录下
#执行该命令时会报错,属于正常现象,因为我们在配置文件中修改了数据库为mdb,重启后就好了
#执行完之后可以进入slapd.d目录下,可以看到已经生成了相应的配置文件
#报错内容如下:
#63900159 mdb_db_open: database "cn=accesslog" cannot be opened: No such file or directory (2). #Restore from backup!
#63900159 backend_startup_one (type=mdb, suffix="cn=accesslog"): bi_db_open failed! (2)
#slap_startup failed (test would succeed using the -u switch)
slaptest -f slapd.conf -F slapd.d
slaptest -u
#赋予权限
chown -R ldap.ldap /var/lib/ldap
chown -R ldap.ldap slapd.d
#重启ldap
systemctl restart slapd
948

被折叠的 条评论
为什么被折叠?



