ArchLinux – OpenLDAP Server 設定 處理中文亂碼

直接轉換使用者帳號密碼檔,如果含有中文,就會出現亂碼

[@more@]處理方式:
1. 先將擷取出來的檔案轉換成 big5 編碼
# egrep ‘t100|s100’ /etc/passwd > /root/ldif/passwd
# piconv -f utf8 -t big5 /root/ldif/passwd > /root/ldif/passwd.big5
# cat /root/ldif/passwd.big5
s100001:x:1002:1000:▒▒▒▒01▒L▒p▒▒:/home/student/s100/s100001:/bin/false
s100002:x:1003:1000:▒▒▒▒02▒▒▒▒▒:/home/student/s100/s100002:/bin/false
t100001:x:1004:1001:▒▒▒g:/home/teacher/t100001:/bin/false

使用 MigrationTools 進行轉換
# cd /usr/share/MigrationTools-47
# ./migrate_passwd.pl /root/ldif/passwd.big5 > /root/ldif/passwd.ldif.big5

再轉換成 utf8 編碼
# piconv -f big5 -t utf8 /root/ldif/passwd.ldif.big5 > /root/ldif/passwd.ldif

去除一些不要的欄位
# sed -i ‘/mailRoutingAddress/d’ /root/ldif/passwd.ldif
# sed -i ‘/mailHost/d’ /root/ldif/passwd.ldif
# sed -i ‘/krbName/d’ /root/ldif/passwd.ldif
# sed -i ‘/inetLocalMailRecipient/d’ /root/ldif/passwd.ldif
# sed -i ‘/kerberosSecurityObject/d’ /root/ldif/passwd.ldif

但有些字可以正常轉換,有些字可能還是亂碼,要手動處理

ArchLinux – OpenLDAP Server 設定

建立學生群組
# groupadd student
建立老師群組
# groupadd teacher

建立學生目錄
# mkdir -p /home/student/s100
建立老師目錄
# mkdir /home/teacher

建立學生帳號及密碼
# useradd -g student -d /home/student/s100/s100001 -m -s /bin/false -c “六忠01林小華” s100001
# useradd -g student -d /home/student/s100/s100002 -m -s /bin/false -c “六忠02陳金花” s100002
# passwd s100001
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
# passwd s100002
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

建立老師帳號及密碼
# useradd -g teacher -d /home/teacher/t100001 -m -s /bin/false -c “李阿土” t100001
# passwd t100001
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
[@more@]
# mkdir /root/ldif
# egrep ‘teacher|student’ /etc/group > /root/ldif/group
# cat /root/ldif/group
student:x:1000:
teacher:x:1001:

# egrep ‘t100|s100’ /etc/passwd > /root/ldif/passwd
# cat /root/ldif/passwd
s100001:x:1002:1000:六忠01林小華:/home/student/s100/s100001:/bin/false
s100002:x:1003:1000:六忠02陳金花:/home/student/s100/s100002:/bin/false
t100001:x:1004:1001:李阿土:/home/teacher/t100001:/bin/false

使用 migrationtools 工具
# cd /usr/share/MigrationTools-47
# ./migrate_base.pl > /root/ldif/base.ldif
# ./migrate_passwd.pl /root/ldif/passwd > /root/ldif/passwd.ldif
# ./migrate_group.pl /root/ldif/group > /root/ldif/group.ldif

# cat /root/ldif/base.ldif
dn: dc=ldap,dc=tces.ilc.edu.tw
dc: ldap
objectClass: top
objectClass: domain
objectClass: domainRelatedObject
associatedDomain: tces.ilc.edu.tw

dn: ou=Group,dc=ldap,dc=tces.ilc.edu.tw
ou: Group
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: tces.ilc.edu.tw

dn: ou=People,dc=ldap,dc=tces.ilc.edu.tw
ou: People
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: tces.ilc.edu.tw

清空資料
# systemctl stop slapd
# rm -rf /var/lib/openldap/openldap-data/*
# rm -rf /etc/openldap/slapd.d/*
# cp /etc/openldap/DB_CONFIG.example /var/lib/openldap/openldap-data/DB_CONFIG
# chown ldap:ldap /var/lib/openldap/openldap-data/DB_CONFIG
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# chown -R ldap.ldap /etc/openldap/slapd.d
# chown -R ldap.ldap /var/lib/openldap/openldap-data/*
# systemctl start slapd

開始匯入
# systemctl stop slapd
# /usr/bin/slapadd -l /root/ldif/base.ldif
545aedd1 bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
_#################### 100.00% eta   none elapsed            none fast!
Closing DB…

# /usr/bin/slapadd -l /root/ldif/passwd.ldif
# /usr/bin/slapadd -l /root/ldif/group.ldif

更改目錄擁有者及啟動 OpenLDAP Server
# chown -R ldap.ldap /etc/openldap/slapd.d
# chown -R ldap.ldap /var/lib/openldap/openldap-data/*
# systemctl start slapd

ArchLinux – 安裝 OpenLDAP Server

參考網站:
OpenLDAP – ArchWiki

搜尋 OpenLDAP 套件
# pacman -Ss openldap
core/openldap 2.4.40-1
    Lightweight Directory Access Protocol (LDAP) client and server

安裝 OpenLDAP Server
# pacman -S openldap[@more@]

資料庫存放位置
/var/lib/openldap/openldap-data

設定檔位置
/etc/openldap/slapd.conf

備份設定檔
# cp /etc/openldap/slapd.conf /etc/openldap/slapd.conf.$(date +%F)
# cp /var/lib/openldap/openldap-data/DB_CONFIG.example /var/lib/openldap/openldap-data/DB_CONFIG
# chown ldap:ldap /var/lib/openldap/openldap-data/DB_CONFIG

設定管理密碼
# /usr/bin/slappasswd
New password:
Re-enter new password:
{SSHA}RExxR+kZpVgxxxdSYtxxsU

修改設定檔 /etc/openldap/slapd.conf
# sed -i ‘s/dc=my-domain,dc=com/dc=ldap,dc=tces.ilc.edu.tw/’ /etc/openldap/slapd.conf
# sed -i ‘s/secret/
{SSHA}RExxR+kZpVgxxxdSYtxxsU/’ /etc/openldap/slapd.conf


修改設定檔 /etc/openldap/slapd.conf
# vim /etc/openldap/slapd.conf
include         /etc/openldap/schema/core.schema 下加入
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema


下載 openldap-migrationtools
# wget http://www.padl.com/download/MigrationTools-47.tar.gz

解壓縮
# tar xvzf MigrationTools-47.tar.gz -C /usr/share

修改設定檔
# sed -i ‘s/$DEFAULT_MAIL_DOMAIN = “padl.com”;/$DEFAULT_MAIL_DOMAIN = “tces.ilc.edu.tw”;/’ /usr/share/MigrationTools-47/migrate_common.ph
# sed -i ‘s/$DEFAULT_BASE = “dc=padl,dc=com”;/$DEFAULT_BASE = “dc=ldap,dc=tces.ilc.edu.tw”;/’ /usr/share/MigrationTools-47/migrate_common.ph
# sed -i ‘s/$EXTENDED_SCHEMA = 0;/$EXTENDED_SCHEMA = 1;/’ /usr/share/MigrationTools-47/migrate_common.ph

產生新的設定,並修改權限
# mv /etc/openldap/slapd.d /etc/openldap/slapd.d.orig
# mkdir /etc/openldap/slapd.d
# chown -R ldap.ldap /etc/openldap/slapd.d
# chown -R ldap.ldap /var/lib/openldap/openldap-data/*

測試設定檔
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
545ad5f4 bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
config file testing succeeded

# chown -R ldap.ldap /etc/openldap/slapd.d
# chown -R ldap.ldap /var/lib/openldap/openldap-data/*

啟動 OpenLDAP 服務
# systemctl start slapd
設定開機時啟動 OpenLDAP 服務
# systemctl enable slapd
Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /lib/systemd/system/slapd.service.

檢查是否有正常啟動
# netstat -antup | grep :389
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      2516/slapd
tcp6       0      0 :::389                  :::*                    LISTEN      2516/slapd

ownCloud 7.x 使用 OpenLDAP 認證

新版本的 ownCloud 似乎預設不會啟動 LDAP 相關模組,所以安裝完成之後,一直在 管理  畫面中找不到與 LDAP 相關的選項
[@more@]即使啟用 通訊錄的 LDAP 也沒有用

後來試了很久,終於在 應用程式 中找到了!
選擇 左方的 檔案應用程式

選擇 LDAP user and group backend

選擇 啟用

這時候在 管理 畫面,就可以找到與 LDAP 相關的選項了!

 LDAP  的設定方式,可以參考之前寫的 ownCloud 使用 LDAP Server 做認證

squid Proxy Server 使用 LDAP Server 做認證

1. 修改設定檔
# vim /etc/squid/squid.conf
在 acl 區段加入下面這二行,192.168.154.167 為 LDAP Server’ IP
acl squid_user proxy_auth REQUIRED
auth_param basic program /usr/lib64/squid/squid_ldap_auth -b “dc=ldap,dc=tces.ilc.edu.tw” -h 192.168.154.167 -f “uid=%s”

2. 在 /etc/squid/squid.conf 中的 http_access deny all 前面加入下面這一行
http_access allow squid_user

3. 重新啟動 Squid Proxy Server
# server squid restart
[@more@]

檢驗是否有成功
# grep -v t850008 /var/log/squid/access.log | tail -5
1389089280.327     32 192.168.220.14 TCP_CLIENT_REFRESH_MISS/200 2722 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAEYtdwHILrcByoFOe4BAAMyBTXuAQAP t850008 DIRECT/2404:6800:4008:c02::64 application/vnd.google.safebrowsing-chunk
1389089280.368     12 192.168.220.14 TCP_CLIENT_REFRESH_MISS/200 4471 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChNnb29nLW1hbHdhcmUtc2hhdmFyEAAYhZIIIJiSCCoGDwkCAP8DMgYFCQIA_wM t850008 DIRECT/2404:6800:4008:c02::64 application/vnd.google.safebrowsing-chunk
1389089280.414     12 192.168.220.14 TCP_CLIENT_REFRESH_MISS/200 4977 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchABGOe5CSDsuQkyBedcAgA_ t850008 DIRECT/2404:6800:4008:c02::64 application/vnd.google.safebrowsing-chunk
1389089280.460     12 111.249.220.14 TCP_CLIENT_REFRESH_MISS/200 2445 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchABGO25CSCAugkqB-5cAgD__wcyBe1cAgAB t850008 DIRECT/2404:6800:4008:c02::64 application/vnd.google.safebrowsing-chunk
1389089280.494     12 192.168.220.14 TCP_CLIENT_REFRESH_MISS/200 4918 GET http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGMPyEiDM8hIqBUa5BAB_MgVDuQQABw t850008 DIRECT/2404:6800:4008:c02::64 application/vnd.google.safebrowsing-chunk

將 ldapsearch 輸出內容 (LDIF) 轉 UTF-8 編碼

因為 LDAP 的中文是使用 Base64 編碼過,所以要經過轉換成 utf8,才能夠看的懂,之前已經有找到是利用 php 程式來轉換,不過並不是所有的電腦都會安裝 php,最好的方式是直接使用系統內部的程式來轉換,經過一番搜尋,終於在 O老猴的失憶錄: OpenLDAP 中文顯示亂碼 ,找到了解答。
方式就是利用 alias 命令別名
# vim /etc/profile 或 vim $HOME/.bash_profile

alias un64=’awk ”’BEGIN{FS=”:: “;c=”base64 -d”}{if(/w+:: /) {print $2 |& c; close(c,”to”); c |& getline $2; close(c); printf(“%s:: %sn”, $1, $2); next} print $0 }””

讓命令生效
# source /etc/profile

# source $HOME/.bash_profile

使用方式:
# /usr/bin/ldapsearch -x -b “ou=Teacher,dc=ldap,dc=tces.ilc.edu.tw” uid=* | un64

ProFTPd FTP Server 使用 LDAP Server 認證

測試環境
LDAP Server IP:192.168.1.20
FTP Server:192.168.1.9

1. 安裝 proftpd proftpd-ldap 套件
# yum install proftpd proftpd-ldap –enablerepo=epel
[@more@]
2. 修改 ProFTPd FTP 設定檔
# vim /etc/proftpd.conf
SystemLog                       /var/log/proftpd/proftpd.log
PassivePorts                    60000   61000

# Use pam to authenticate (default) and be authoritative
#AuthPAMConfig                  proftpd
AuthOrder                       mod_ldap.c
#AuthOrder                      mod_auth_pam.c* mod_auth_unix.c
LoadModule mod_ldap.c
<IfModule mod_ldap.c>
LDAPServer 192.168.1.20
LDAPDNInfo “cn=Manager,dc=ldap,dc=tces.ilc.edu.tw” “123456”
##LDAPDoUIDLookups on “ou=Student,dc=ldap,dc=tces.ilc.edu.tw”
##LDAPDoGIDLookups on “ou=groups,dc=ldap,dc=tces.ilc.edu.tw”
LDAPDoAuth on “ou=Student,dc=ldap,dc=tces.ilc.edu.tw” “(&(uid=%v)(objectclass=posixAccount))”
LDAPSearchScope subtree

## Assign default IDs
LDAPDefaultUID 500
LDAPDefaultGID 500

## Create the home directory
LDAPGenerateHomedir on
LDAPGenerateHomedirPrefix /home/s0990
LDAPForceGeneratedHomedir on
CreateHome on

## Use different attribute names where necessary
#LDAPAttr uid sAMAccountName
#LDAPAttr gidNumber primaryGroupID
</IfModule>

3. 重新啟動 ProFTPd FTP Server
# service proftpd restart
Shutting down proftpd:                                     [  OK  ]
Starting proftpd:                                          [  OK  ]

在 LDAP Server 中的測試帳號 s0990999
# /usr/bin/ldapsearch -x -b “ou=s0990,ou=Student,dc=ldap,dc=tces.ilc.edu.tw” uid=s0990999
# extended LDIF
#
# LDAPv3
# base <ou=s0990,ou=Student,dc=ldap,dc=tces.ilc.edu.tw> with scope subtree
# filter: uid=s0990135
# requesting: ALL
#

# s0990999, s0990, Student, ldap.tces.ilc.edu.tw
dn: uid=s0990999,ou=s0990,ou=Student,dc=ldap,dc=tces.ilc.edu.tw
uid: s0990999
cn:: 5Zub+gMjHlpbPpfoirPnkak=
sn:: 5Zub+gMjHlpbPpfoirPnkak=
mail: s0990999@tces.ilc.du.tw
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
userPassword:: e2
loginShell: /sbin/nologin
uidNumber: 1322
gidNumber: 1073
homeDirectory: /home/s0990/s0990999
gecos:: 5Zub+gMjHlpbPpfoirPnkak=

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

4. 測試連線
# lftp -u s0990999 192.168.1.9
密碼:
lftp s0990999@192.168.1.9:~> ls
-rw-r–r–   1 s0990999 1073        73416 Jan  7 13:06 Pietty.reg
lftp s0990999@192.168.1.9:/>

5. 檢查使者的家目錄是否會自動建立
# ls -l /home/s0990
total 4
drwx——. 2 1322 1073 4096 Jan  7 20:53 s0990999

在 FTP Server 上也可以發現使用者的家目錄會自動建立

Moodle 使用 LDAP Server 做帳號認證

1. 選擇 系統管理的 網站管理
[@more@]

2. 選擇 進階外掛身份認證

3. 選擇 管理身份認證

4. 找到 LDAP 的選項,然後按 啟用圖示

5. 選擇 設定

6. 輸入 主機網址
             可區辨的名稱
             密碼

7. 輸入 用戶類型
            情境

8.選擇 密碼格式

9. 最後 儲存變更

10. 在另外一台電腦,或用不同的瀏覽器,連線到 Moodle,選擇 登入

11. 輸入帳號及密碼後,按 登入

12. 已登入成功,但有些資料須做設定

也可以在 對應資料中直接做對應,這樣使用者第一次登入時,就會自動把資料對應出來

Pure-FTPd FTP Server 使用 LDAP Server 認證

開啟 PureFTPd FTP Server 的 LDAP  設定
# vim /etc/pure-ftpd/pure-ftpd.conf
# LDAP configuration file (see README.LDAP)
LDAPConfigFile                /etc/pure-ftpd/pureftpd-ldap.conf

修改 /etc/pure-ftpd/pureftpd-ldap.conf 設定
# vim /etc/pure-ftpd/pureftpd-ldap.conf
# Optional : name of the LDAP server. Default : localhost
# LDAP Server IP
LDAPServer 192.168.154.167

# Optional : server port. Default : 389
# LDAP Server 連線 Port
LDAPPort   389

# Mandatory : the base DN to search accounts from. No default.
LDAPBaseDN ou=Student,dc=ldap,dc=tces.ilc.edu.tw

# Optional : who we should bind the server as.
#            Default : binds anonymously or binds as FTP users
LDAPBindDN cn=Manager,dc=ldap,dc=tces.ilc.edu.tw

# Password if we don’t bind anonymously
# This configuration file should be only readable by root
# LDAP 管理者密碼
LDAPBindPW 123456

重新啟動 PureFTPd FTP Server
# service pure-ftpd restart
正在停止 pure-ftpd:                                       [  確定  ]
正在啟動 pure-ftpd:                                       [  確定  ]
[@more@]
要測試的帳號 s0990499 和 s0990999
# cat s0990t.ldif
dn: uid=s0990499,ou=s0990,ou=Student,dc=ldap,dc=tces.ilc.edu.tw
uid: s0990499
cn: 四忠01蔡中火
sn: 四忠01蔡中火
mail: s0990499@tces.ilc.edu.tw
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
userPassword: {SSHA}xecUVfAyOlao7udDzLccUvf4fHOonjzN
loginShell: /sbin/nologin
uidNumber: 500
gidNumber: 500
homeDirectory: /home/s0990/s0990499
gecos: 四忠01蔡中火

dn: uid=s0990999,ou=s0990,ou=Student,dc=ldap,dc=tces.ilc.edu.tw
uid: s0990999
cn: 四忠02陳大水
sn: 四忠02陳大水
mail: s0990999@tces.ilc.edu.tw
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
userPassword: {SSHA}WqVy40LfOfoRV1KBwlJFPpfGNgnkIbtr
loginShell: /sbin/nologin
uidNumber: 500
gidNumber: 500
homeDirectory: /home/s0990/s0990999
gecos: 四忠02陳大水

匯入 LDAP 資料
# service slapd stop
# /usr/sbin/slapadd -l s0990t.ldif
# chown -R ldap:ldap /var/lib/ldap
# service slapd start

搜尋 LDAP 資料庫是否有加入的資料
# ldapsearch -x -b “ou=Student,dc=ldap,dc=tces.ilc.edu.tw” uid=s0990999 | php /root/utf8ldif.php

# extended LDIF
#
# LDAPv3
# base <ou=Student,dc=ldap,dc=tces.ilc.edu.tw> with scope subtree
# filter: uid=s0990999
# requesting: ALL
#

# s0990999, s0990, Student, ldap.tces.ilc.edu.tw
dn: uid=s0990999,ou=s0990,ou=Student,dc=ldap,dc=tces.ilc.edu.tw
uid: s0990999
cn: 四忠02陳大水
sn: 四忠02陳大水
mail: s0990999@tces.ilc.edu.tw
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
userPassword: {SSHA}WqVy40LfOfoRV1KBwlJFPpfGNgnkIbtr
loginShell: /sbin/nologin
uidNumber: 500
gidNumber: 500
homeDirectory: /home/s0990/s0990999
gecos: 四忠02陳大水

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

建立使用者虛擬目錄
# vim mkuserdir.awk
# 建立使用者目錄
{print “mkdir -p /home/”$6″/”$4 }
# 更改檔案目錄的所屬擁有者及群組
{print “chown -R  500:500  /home/”$6″/”$4″ ” }

測試
# awk -f mkuserdir.awk 102_class41.lst
mkdir -p /home/s0990/s0990499
chown -R  500:500  /home/s0990/s0990499
mkdir -p /home/s0990/s0990999
chown -R  500:500  /home/s0990/s0990999

使用方式
# awk -f mkuserdir.awk 102_class41.lst  | sh

測試
# lftp -u s0990999 localhost
密碼:
lftp s0990999@localhost:~> ls -l
drwxr-xr-x    2 500        virtualgrp       4096 Jan  2 10:58 .
drwxr-xr-x    2 500        virtualgrp       4096 Jan  2 10:58 ..
lftp s0990999@localhost:/>

如果系統有使用 SELinux,要記得把家目錄的功能打開
# setsebool -P ftp_home_dir 1
# setsebool -P allow_ftpd_full_access=1

同步 LDAP Server – mirrotmode 方式

通常 LDAP Server 的負載並不會很大,因為主要都是做資料的查詢,但架設同步 LDAP Server 可以用來同步 LDAP Server 的工作,保持資料同步,做為備份及互相備援使用。

本篇文章參考: openldap 2.4 同步使用mirror mode @ Hello World :: 痞客邦 PIXNET
                              基于OpenLdap 2.4的双向同步 – iceblood的日志 – 网易博客
LDAP Server 1
HostName:ldap1.tces.ilc.edu.tw
IP:192.168.1.17

LDAP Server 2
HostName:ldap2.tces.ilc.edu.tw
IP:192.168.1.23

原本運作中的 LDAP Server 是 LDAP 1,LDAP 2 是用來保持同步的新 Server

[@more@]修改 LDAP Server 1(192.168.1.17) 的 /etc/openldap/slapd.conf
# vim /etc/openldap/slapd.conf
找到 # Replicas of this database 這一段後
加入下面的設定
# 開啟同步
moduleload  syncprov
# 設定唯一的 ID 編號
serverID    1
# 設定要從 ldap2 伺服器同步資料
# rid 編號和 ldap2 保持一樣
syncrepl      rid=001
# ldap2 伺服器的 IP 和 Port
  provider=ldap://192.168.1.23:389
# 密碼驗證方式為簡單模式,就是使用明碼
  bindmethod=simple
# Bind DN
  binddn=”cn=Manager,dc=ldap,dc=tces.ilc.edu.tw”
# ldap2 伺服器的管理密碼
  credentials=ldap2
# 與 ldap2 伺服器同步的
  searchbase=”dc=ldap,dc=tces.ilc.edu.tw”
# sche,a 驗證開啟
  schemachecking=on
# 設定為持續保持同步
  type=refreshAndPersist
# 設定為 60 秒同步一次,60 和 + 之間要空一格
  retry=”60 +”

# 開啟鏡像模式
mirrormode on

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

在 ldap2(192.168.1.23) 上安裝 openldap 套件
# yum install openldap openldap-clients openldap-servers

設定方式和 ldap1 一樣
# vim /etc/openldap/slapd.conf
moduleload  syncprov

serverID    2
syncrepl      rid=001
  provider=ldap://192.168.1..17
  bindmethod=simple
  binddn=”cn=Manager,dc=ldap,dc=tces.ilc.edu.tw”
  credentials=ldap1
  searchbase=”dc=ldap,dc=tces.ilc.edu.tw”
  schemachecking=on
  type=refreshAndPersist
  retry=”60 +”

mirrormode on

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100

修改完 /etc/openldap/slapd.conf 後,二台 LDAP Server 都要做下面的動作
# rm -rf /etc/openldap/slapd.d/*
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# chown -R ldap:ldap /etc/openldap/slapd.d
# service slapd restart

重新啟動 LDAP Server,二台 Server 之間即會展開連線進行同步
192.168.1.17 ldap1

192.168.1.23 ldap2 Server

原本的資料筆數

同步後資料筆數