Ldap 增量同步配置

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

参考Ldap增量同步配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值