免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 6404 | 回复: 6

[ldap] openldap-v2.4最新版主從配置詳細介紹-純手打絕版 [复制链接]

论坛徽章:
23
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2015-11-23 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
发表于 2013-11-01 11:49 |显示全部楼层
1.jpg openldap-v2.4主從配置

前言:

新版最大的功能就是真正實現了雙向複製。可以是2個主master LDAP互備,也可以使多個MASTER LDAP服務器備份。無論哪一台宕機,只要有一台master正常,其他宕機的LDAP服務器重新啟動起來后,用戶數據同步更新。

Openldapv2.3版本以前的同步複製缺點

slurpd守护进程是以推模式操作:
主服务器推变更到从服务器

·
它是不可靠的

o
它对replog中的记录的次序极为敏感

o
它可能很容易失去同步, 这时需要手工干预来从主目录重新同步从服务器数据库

o
它对不可用的服务器不是非常宽容. 如果一个从服务器长时间停机,replog可能变得太大以至于slurpd无法处理

·
它只工作在推模式。

(也可以設成拉模式,rpm安裝方式參數已詳細說明,只不過slave那台不保存任何用戶數據。全部數據都在master上面修改。類似在master主機只是建立了一個快捷方式到slave上。)

·
它需要停止和重新启动主服务器来增加从服务器

·
它只支持单一主服务器复制





(新版主從配置有五種方式,這裡只講述最基本也是最簡單的Syncrepl主從配置,MirrorMode鏡像模式主從配置,N-Way Multi-Master(多主)三種方式,以及官方網站未提供的一個比較複雜的改造方案。

(新版最基本的同步方式)
1.Syncrepl




該方式是slave服務器以拉的方式同步master的用戶數據

使用該方式,是有缺點的,當你修改一個條目當中的一個屬性值,尤其是批量修改上萬個條目當中的一個屬性值,那麼該方式是不只是簡單的同步這一個屬性值,而是將這上萬個條目一起同步更新過來。



(文字翻譯為增強行的syncrepl)

2.Delta-syncrepl


就是比上面syncrepl多了一個是基於日誌的同步功能哈。通俗的說就是你在master每更改一筆數據,那麼就會產生一個日誌文件,你具體修改到哪裡了,然後slave通過你master的日誌進行相應的修改。所以這個就克服了沒必要把一整個條目都複製過來。條目是什麽?趕緊去翻官方資料吧,英文就是entry。

以上2種方式類似舊版的單向同步功能。



3.N-Way Multi-Master

多主MASTER方式同步LDAP信息。



4.MirrorMode


該方式是服務器互相以推的方式同步用戶數據。

MirrorMode只支持2個主MASTER(並不是說鏡像模式只能做2台LDAP,而是只有2個MASTER起作用可以推送數據出去,其他的LDAP服務器也會同步更新,只要把提供者指定到這2個MASTER任意一台即可),當你設定超過2台的時候,該模式只有最開始設定的那2台是MASTER,能主動互相推送數據。後面超過的如第三台LDAP3或LDAP4時,這些自動全部變成單向同步,即只有那2個主MASTER修改用戶數據后可以同步到下面的第三台或第四台LDAP上, LDAP3,LDAP4做任何動作都無法將數據同步到主master上。也不會同不到其他LDAP服務器上,有點類似老版本slurp的效果。

如果你的企業有多家公司,而你又不希望太多人有修改同步數據權限,那麼可以使用此方式。













5.Syncrepl Proxy


代理同步。言外之意將保留用戶信息的MASTER主機隱藏起來,而代理機上面的LDAP通過Syncrepl從MASTER主機以拉的方式同步maser用戶數據,當代理主機發生改變時,代理主機的LDAP又以推的方式將數據更新到更下層的slave LDAP服務器上。而slave LDAP是沒有權限去更改代理服務為那台LDAP用戶信息,只有讀取權限,什麽,這種情況類似老版本的slurp單向同步功能,並且和老版本slurp一樣可以建立一個快捷方式(這個快捷方式不保留任何數據,數據全部保留在你去指定的那台LDAP服務器上,只是說你可以通過這個快捷方式在slave LDAP服務器上也可以修改數據。該快捷方式具體應用可以去查看RPM包方式當中安裝方法里有說明。)


6. N-Way Multi-Master自行改造版。官方無配置檔案和說明。

(推薦使用)
可以任意設定多個mastere和多個slave。一台LDAP服務器即可以推送數據出去,也可以從別的master主機拉數據過來,





N-Way Multi-Master變種

l
同步方式一:最基本的Syncrepl方式同步。

(Syncrepl是新版主從同步數據的方式,用來取代舊版slupd的同步方式。)
這種方式有點類似舊版的同步方式,只能在MASTER上更改數據。Slave沒有權限做任何操作。所以結合後面的mirror鏡像模式即mirror+syncrepl即可實現以下用戶數據多種同步方式:
   1.jpg (74.42 KB)

2013-10-18 15:29

























1.
從圖上可以看出MASTER1和MASTER2是做的mirror鏡像模式。那麼2個主MASTER是互備的,也就是說2台都可以更改數據。任意一台MASTER更改數據后,都會主動推送數據給對方的MASTER。



2.
圖中的四台slave,全部採用新版最基本的Syncrepl模式,採用該模式后,slave是沒有權限修改自身數據,只能主動從各自的master主機獲取數據來更新。

3.mirror模式不懂沒關係,後面可以看到,其實很簡單。



4.同時使用該2種模式的時候,請務必將主master和從slave之間用戶數據手動修改到一樣。



master 主機配置增加如下參數

overlaysyncprov
後端工作在overlay模式下



syncprov-checkpoint100 10

同步的滿足條件,當滿足修改100個條目或10分鐘主動進行推送一次。



syncprov-sessionlog100

会话日志条目的最大数量



MASTER大致就是增加下面三行,其他的參數請參照RPM包參數設定即可。

overlaysyncprov
syncprov-checkpoint100 10

syncprov-sessionlog100









Slave 主機配置增加如下參數



syncrepl rid=123


設定主机id號(<rid>必须超过三位数字)


provider=ldap://172.16.9.132:389


設定提供者的IP(也就是MASTER主機IP)

type=refreshOnly
設定模式為拉

(拉的意思是主動從master上進行同步更新數據)

interval=01:00:00:00
設定更新時間,一天更新一次

(interval格式day:hour:minitus:
second)設定一天的話,slave就會每個一天主動從master拉數據。

searchbase="dc=kingbright,dc=com"
搜索後綴(搜索根目錄)
filter="(objectClass=*)"

同步搜索時,搜索 objectClass 是 organizationalPerson 的条目,如用星號*表示,則是搜索所有類型。


scope=sub
匹配根目錄下所有条目
(匹配範圍: base只与所给的DN相匹配,one只与父条目是所给DN的条目相匹配,sub只与根为所给DN的子树下是所有条目相匹配
attrs="*,+"



複製所有屬性
#attrs="cn,sn,ou,telephoneNumber,title,l"
複製指定的屬性


schemachecking=off

同步更新時是否開啟檢查schema的一致性


bindmethod=simple
以下三項和舊版本內容一樣不做解釋。


binddn="cn=root,dc=kingbright,dc=com"

credentials=3Eg+gKegvZ73HYz5c2c5JA==


SLAVE綜所上述大致增加以下幾行

syncrepl rid=123

provider=ldap://172.16.9.132:389

type=refreshOnly

interval=01:00:00:00

searchbase="dc=kingbright,dc=com"

filter="(objectClass=*)"
scope=sub
attrs="*,+"

schemachecking=off


bindmethod=simple


binddn="cn=root,dc=kingbright,dc=com"

credentials=3Eg+gKegvZ73HYz5c2c5JA==







论坛徽章:
0
发表于 2014-01-14 14:32 |显示全部楼层
你好,作为初学者,我想请问下mirror mode里面 bindmethod用了simple,所以rootpw必须是明文吧?credentials指的不就是另一台服务器的rootpw么?
我试验这样配置就不能成功的的同步,如果密码都改成明文就可以。
可不可以指点下用加密过的密码如何实现同步呢?

bindmethod=simple
credentials=3Eg+gKegvZ73HYz5c2c5JA==

论坛徽章:
23
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2015-11-23 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
发表于 2014-01-22 19:26 |显示全部楼层
回复 2# tiangexuan



bindmethod=simple 機制不變。(openldap一共三種機制simple/sasl/kerberos认证),加密也是屬於simple機制。

這裡還有一個設定用戶賬號的地方。

credentials=3Eg+gKegvZ73HYz5c2c5JA==       (此參數本來就暗文明文都支持,我不知道你的版本是多少)



  bindmethod=simple                                         密碼機制
  binddn="cn=root,dc=kingbright,dc=com"          使用同步的帳號
  credentials=3Eg+gKegvZ73HYz5c2c5JA==        使用同步的密碼
  credentials=a123456                                       也是可以。
請保持主從openldap服務器上述一致設定,另外,你把不要把這個同步的密碼理解為別人訪問你的,而是他訪問別人的時候要用到的密碼。



另外你真想提高同步安全性,靠這個md5密碼,純屬沒安全性。你應該使用ssl連接同步。不過這個配置比較複雜,給你提供一部份代碼



服務器A配置如下

syncrepl rid=001
  provider=ldaps://172.16.9.158:636                     B ip地址
  type=refreshAndPersist                              推模式
  retry="5 5 300 +"
  searchbase="dc=kingbright,dc=com"
  attrs="*,+"
  bindmethod=simple
  binddn="cn=root,dc=kingbright,dc=com"
  credentials=3Eg+gKegvZ73HYz5c2c5JA==
  starttls=yes                    開始tls連接
tls_cert=/usr/local/etc/openldap/cacerts/newcert.cert  服務器A的證書
tls_key=/usr/local/etc/openldap/cacerts/newreq.key   服務器A的私鑰
tls_cacert=/usr/local/etc/openldap/cacerts/cacert.pem  服務器A的CA證書
  tls_reqcert=never                      不要求對方提供證書和私鑰




论坛徽章:
0
发表于 2014-01-28 11:03 |显示全部楼层

回复 3# woxizishen
你好~谢谢你的耐心解答。

1. 我用的版本是openldap-2.4.23-31.el6.x86_64 。
2. 我看到openldap的手册里是这么写的,所以我理解为simple模式只能用明文做密码。
A  bindmethod  of  simple  requires  the        options   binddn   and              credentials  and        should        only  be  used        when adequate security              services (e.g. TLS or IPSEC) are        in  place.   REMEMBER:        simple              bind  credentials  must  be  in cleartext!
3. 还有这句话“你把不要把這個同步的密碼理解為別人訪問你的,而是他訪問別人的時候要用到的密碼。”我不是特别理解。指的是两个服务器之间的访问密码么?4. 我的服务器是这么配的。A和B的控制账号和密码完全相同,只是ip不同。当我密码用明文的时候就可以同步,但是密码如果用的是密文就不能同步。是不是我其他的配置有问题呢?5. 还有database monitor这个数据库到底是起什么作用的呢?一直不明白为什么要配置这个数据库。6. sasl加密没有tls安全么?
服务器Amoduleload syncprov.la
database        bdbsuffix          "dc=****,dc=****"checkpoint        1024 15
rootdn          "cn=manager,dc=***,dc=***"
rootpw          {SSHA}cXUVsI2kuKNK9kjCagWtvraossyAKuhX
directory       /var/lib/ldap/tmsr
access to *        by self write        by * read

# Indices to maintain for this databaseindex objectClass,entryCSN,entryUUID                       eq,presindex ou,cn,mail,surname,givenname      eq,pres,subindex uidNumber,gidNumber,loginShell    eq,presindex uid,memberUid                     eq,pres,subindex nisMapName,nisMapEntry            eq,pres,sub
serverID 1   (A和B服务器这里是不同的)
syncrepl  rid=111          provider=ldap://*****   (A和B服务器这里是对方的IP)
          bindmethod=simple          binddn="cn=manager,dc=***,dc=***"          credentials={SSHA}cXUVsI2kuKNK9kjCagWtvraossyAKuhX          searchbase="dc=****,dc=***"          schemachecking=on          type=refreshAndPersist          retry="60 +"mirrormode onoverlay syncprovsyncprov-checkpoint 100 10syncprov-sessionlog 100
#enable monitoringdatabase monitor# allow onlu rootdn to read the monitoraccess to attrs=userPassword,shadowLastChange        by self write        by users read        by anonymous auth#       by * noneaccess to *        by dn.exact="cn=manager,dc=tmsr,dc=org" write#        by * read        by users read        by anonymous read


   

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2014-03-03 14:33 |显示全部楼层
woxizishen 发表于 2013-11-01 11:49
openldap-v2.4主從配置

前言:


这个里面,好多图片出不来呢

论坛徽章:
0
发表于 2018-08-22 17:05 |显示全部楼层
楼主你发的关于LDAP的贴子我已经拜读了,很是膜拜,N年前就已经达到这样的高度,实在是厉害
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

数据风云,十年变迁
DTCC 第十届中国数据库技术大会已启航!

2019年5月8日~5月10日,由IT168旗下ITPUB企业社区平台主办的第十届中国数据库技术大会(DTCC2019),将在北京隆重召开。大会将邀请百余位行业专家,就热点技术话题进行分享,是广大数据领域从业人士的又一次年度盛会和交流平台。与SACC2018类似,本届大会将采用“3+2”模式:3天传统技术演讲+2天深度主题培训。大会不仅提供超100场的主题演讲,还会提供连续2天的深度课程培训,深化数据领域的项目落地实践方案。
DTCC2019,一场值得期待的数据技术盛会,殷切地希望您报名参与!

活动入口>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP