烂泥:openldap主从搭建与配置

本文由ilanniweb微信公众号提供友情赞助,首发于烂泥行天下

IT技术分享QQ群:571981257

openldap的备份我们在前篇文章已经介绍过,但是为了openldap的高可用,在此我们先搭建openldap的主从,有关openldap主主的搭建,我们在下一篇文章中进行介绍。

openldap的主从搭建还是比较简单的,这个和mysql的主从搭建类似,只需要修改相应的配置即可。

PS:在此master机器的IP为192.168.123.8,slave机器的IP为192.168.123.6。

一、master上安装openldap

要在master机器上配置openldap的主从,首先我们要安装openldap并进行相关配置,而且已经有相关的用户信息,如下:

clip_image001

clip_image002

有关openldap的安装与配置,我们可以参考这篇文章《烂泥:OpenLDAP安装与配置(二)》。

二、slave上安装openldap

而要在slave机器上配置openldap的主从,我们也要安装openldap并进行相关配置。

有关openldap的安装与配置,我们可以参考这篇文章《烂泥:OpenLDAP安装与配置(二)》。

不过对于在slave机器安装的openlap,不需要像master机器上那样进行全部的配置,我们只需要操作第一到第四章节即可。

其中后续的章节,比如:导入基础数据库、导入用户、导入用户组和用户加入到用户组都不需要。

Slave上openldap安装完毕。使用ldapadmin工具连接显示如下:

clip_image003

clip_image004

我们注意到ldapadmin连接后,是有报错信息的,这个是因为我们还没有配置主从,slave中现在还没有数据导致的。

三、master的上主从配置

现在正式开始openldap的master-slave配置,在master机器,我们需要进行导入相关的属性。如下:

cat > /root/syncprov_mod.ldif << “EOF”

dn: cn=module,cn=config

objectClass: olcModuleList

cn: module

olcModulePath: /usr/lib64/openldap

olcModuleLoad: syncprov.la

EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov_mod.ldif

clip_image005

cat > /root/syncprov.ldif << “EOF”

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config

objectClass: olcOverlayConfig

objectClass: olcSyncProvConfig

olcOverlay: syncprov

olcSpCheckpoint: 1 1

olcSpSessionLog: 1024

EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov.ldif

clip_image006

以上就是master机器上的配置。

四、slave的上主从配置

在slave机器上配置master-slave,如下:

cat > /root/rp.ldif << “EOF”

dn: olcDatabase={2}hdb,cn=config

changetype: modify

add: olcSyncRepl

olcSyncRepl:

rid=001

provider=ldap://192.168.123.8:389/

bindmethod=simple

binddn=”cn=root,dc=ilanni,dc=com”

credentials=ilanni

searchbase=”dc=ilanni,dc=com”

scope=sub

schemachecking=on

type=refreshAndPersist

retry=”30 5 300 3″

attrs=”*,+”

interval=00:00:00:02

add: olcDbIndex

olcDbIndex: uid eq,pres

olcDbIndex: uniqueMember eq,pres

olcDbIndex: uidNumber,gidNumber eq,pres

olcDbIndex: member,memberUid eq,pres

olcDbIndex: entryUUID eq

olcDbIndex: entryCSN eq

EOF

ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif

clip_image007

其中provider表示master的地址,其他的都是些基础信息。不过这里面需要注意的是认证用户一定要使用超级管理员,如果使用普通用户连接master的话,slave将不会同步用户的密码字段信息。

除此之外,为了优化openldap的查询速度,我们添加了相关字段属性的索引。

五、验证主从正确性

slave机器上配置完毕后,无需重启master机器和slave机器的slapd服务。

在slave机器上查看openldap日志,如下:

tail -f /var/log/slapd.log

clip_image008

通过上图,我们可以很明显的看到slave机器上slapd服务没有报错,而且已经在同步相关openldap数据。

现在切换到master机器上查看openldap日志,如下:

tail -f /var/log/slapd.log

clip_image009

通过上图我们也可以发现master没有报错,而且也看到slave机器已经在同步信息了。

现在我们再使用ldapadmin工具,连接slave查看相关信息,如下:

clip_image010

通过上图,我们可以看到slave机器上已经有master相关的信息。

这也就说明了openlap的master-slave已经在正常同步数据。

5.1 master上修改用户信息

现在我们再来继续验证同步信息,我们在master上修改ilanni用户的cn信息。

在master机器上查看ilanni用户信息,如下:

clip_image011

clip_image012

修改之前ilanni用户cn信息是烂泥,修改之后cn信息是烂泥行天下。

我们再切换到slave机器上查看ilanni用户的cn信息,如下:

clip_image013

通过上图,我们可以很明显的看出slave机器已经同步了master机器的信息。

5.2 master上添加用户和用户组

本来是打算再测试下,在master机器上添加用户和用户组,是不是会同步到slave上的功能。

但是根据前面的信息其实我们已经看到了,slave在没有用户和用户组的情况下,已经把master上的用户和用户组同步过来。

所以该项功能,在此我们就不在进行测试。

5.3 slave上修改用户组信息

因为我们在此做的是openldap的主从同步,所以我们现在再验证下,如果我们在slave机器上修改openldap相关的信息,是否是被允许的呢。

验证如下:

clip_image014

我们现在要把yunweizu这个用户组的描述信息由原来的运维组修改为运维组ces,通过上图,我们可以很明显的看到报错了。

这个报错信息其实是对的,因为openldap的master-slave本来就是不允许slave修改openlap的相关信息。

openldap的master-slave很重要,在其他应用系统连接openldap时,我们只提供slave让其连接即可。这样可以增加openldap的安全性,防止有人意外修改openldap相关信息。

未经允许不得转载:烂泥行天下 » 烂泥:openldap主从搭建与配置

赞 (18) 打赏

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

支付宝扫一扫打赏

微信扫一扫打赏