openldap 提供副本的功能,副本除了可作備份之外,也可以當成另一台 ldap server以供查詢,這樣可以分擔主要伺服器的工作。

副本建置主要流程
1.停用主要伺服器的 slapd 行程
2.重新設定主要伺服器的 slapd.conf,加入副本伺服器的相關設定
3.將主要伺服器的資料庫複製到副本伺服器
4.設定副本伺服器的 slapd.conf
5.啟動副本伺服器的 slapd 行程
6.啟動主要伺服器的 slapd 行程
7.啟動主要伺服器的 slurpd 行程
設定主要伺服器的 slapd.conf
要支援副本的功能,必須在主要伺服器與副本伺服器上都做好設定,讓彼此能夠建立連線。底下說明主要伺服器上的 slapd.conf設定方法:
首先要加入日誌檔名稱,讓 slapd 記錄 LDAP 的所有變更,這樣才知道那些地方變更要通知副本伺服器:
指定日誌檔位置
replogfile    /var/lib/ldap/slapd.replog
接著要設定副本伺服器的相關資訊,使用 replica 來設定,有多台副本伺服器的話就要設定多個 replica 參數(有幾台就要設定幾個)。
replica    host=ldap2.com:389
    副本伺服器的主機位置
    suffix="dc=ldap1,dc=com"
    要複製節點的資訊
    binddn="cn=ldap2,dc=ldap1,dc=com"
    使用者,需對副本伺服器有寫入權限
    credentials=MyPass
    設定密碼,用來與副本伺服器進行溝通
    bindmethod=simple
    這個選項可用 simple 與 sasl,應該就是設定安全性的選項
    tls=yes
    使否要使用加密來傳遞資料
設定副本伺服器的 slapd.conf

xiangyang17 發表在 痞客邦 留言(0) 人氣()

使用 LDAP 的原因之一就是用來管理 Linux 帳號,本文將介紹如何將 Linux 原有的帳號移轉到 LDAP。

Migrationtools

這是由 PDAL Software Pty Ltd 所開發出來的 LDAP 工具,透過這個工具就能將本機帳號移轉到 LDAP 裡。如果是使用 RedHat 或是 CentOS 的話,安裝 openldap-servers 時就會將這些工具安裝在 /usr/share/openldap/migration 底下,下面列出所有檔案與功能:
migrate_aliases.pl
轉換 /etc/aliases
migrate_all_netinfo_offline.sh
離線轉換並匯入 netinfo 資料
migrate_all_netinfo_online.sh
線上轉換並匯入 netinfo 資料
migrate_all_nis_offline.sh
離線轉換並匯入 nis 資料
migrate_all_nis_online.sh
線上轉換並匯入 nis 資料
migrate_all_nisplus_offline.sh
離線轉換並匯入 nisplus 資料
migrate_all_nisplus_online.sh
線上轉換並匯入 nisplus 資料
migrate_all_offline.sh
離線轉換並匯入 本機設定 資料
migrate_all_online.sh
線上轉換並匯入 本機設定 資料
migrate_automount.pl
轉換 automount 的相關設定
migrate_base.pl
用來產生 OU
migrate_common.ph
migrate 的設定檔
migrate_fstab.pl
轉換 /etc/fstab
migrate_group.pl
轉換 /etc/group
migrate_hosts.pl
轉換 /etc/hosts
migrate_netgroup.pl
netgroup 的設定檔
migrate_networks.pl
轉換 /etc/networks
migrate_passwd.pl
轉換 /etc/passwd
migrate_profile.pl
用來產生 LDAPv3 的設定項目
migrate_protocols.pl
轉換 /etc/protocols
migrate_rpc.pl
轉換 /etc/rpc
migrate_services.pl
轉換 /etc/services
migrate_slapd_conf.pl
用來產生 openldap 設定檔
migrate_all_online.sh
移轉的執行檔
設定 Migrationtools
Migrationtools 的設定檔是 migrate_common.ph 這個檔案,在移轉之前必須作ㄧ些設定才行。找到底下這兩個設定,依實際狀況修改:
$DEFAULT_MAIL_DOMAIN = "xiang.com";
用來定義 email 系統使用的網域名稱
$DEFAULT_BASE = "dc=xiang,dc=com";
這裡將只示範 Linux 帳號的移轉,而預設 Migrationtools 會將上述項目都移轉,因此必須做些修改讓 Migrationtools 只轉號 Linux 帳號。修改的方式很簡單,在 migrate_all_online.sh 裡找到下面這些項目:
#echo "Migrating aliases..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_aliases.pl        $ETC_ALIASES >> $DB
#echo "Migrating fstab..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_fstab.pl          $ETC_FSTAB >> $DB
echo "Migrating groups..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_group.pl           $ETC_GROUP >> $DB
echo "Migrating hosts..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_hosts.pl           $ETC_HOSTS >> $DB
echo "Migrating networks..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_networks.pl        $ETC_NETWORKS >> $DB
echo "Migrating users..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_passwd.pl          $ETC_PASSWD >> $DB
echo "Migrating protocols..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_protocols.pl       $ETC_PROTOCOLS >> $DB
echo "Migrating rpcs..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_rpc.pl             $ETC_RPC >> $DB
echo "Migrating services..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_services.pl        $ETC_SERVICES >> $DB
echo "Migrating netgroups..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_netgroup.pl        $ETC_NETGROUP >> $DB
echo "Migrating netgroups (by user)..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_netgroup_byuser.pl $ETC_NETGROUP >> $DB
echo "Migrating netgroups (by host)..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_netgroup_byhost.pl $ETC_NETGROUP >> $DB
因為只要轉換帳號,所以只要留下 group 與 passwd 有關的項目就好其他全部註解掉,修改過得應該會像這樣:
#echo "Migrating aliases..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_aliases.pl        $ETC_ALIASES >> $DB
#echo "Migrating fstab..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_fstab.pl          $ETC_FSTAB >> $DB
echo "Migrating groups..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_group.pl           $ETC_GROUP >> $DB
#echo "Migrating hosts..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_hosts.pl          $ETC_HOSTS >> $DB
#echo "Migrating networks..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_networks.pl       $ETC_NETWORKS >> $DB
echo "Migrating users..."
$PERL -I${INSTDIR} ${INSTDIR}migrate_passwd.pl          $ETC_PASSWD >> $DB
#echo "Migrating protocols..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_protocols.pl      $ETC_PROTOCOLS >> $DB
#echo "Migrating rpcs..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_rpc.pl            $ETC_RPC >> $DB
#echo "Migrating services..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_services.pl       $ETC_SERVICES >> $DB
#echo "Migrating netgroups..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_netgroup.pl       $ETC_NETGROUP >> $DB
#echo "Migrating netgroups (by user)..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_netgroup_byuser.pl        $ETC_NETGROUP >> $DB
#echo "Migrating netgroups (by host)..."
#$PERL -I${INSTDIR} ${INSTDIR}migrate_netgroup_byhost.pl        $ETC_NETGROUP >> $DB
執行移轉
執行 migrate_all_online.sh 這個 script 就會進入移轉程序,完整路徑為 /usr/share/openldap/migration/migrate_all_online.sh:
[root@Centos migration]# ./migrate_all_online.sh
執行 shell script
Enter the X.500 naming context you wish to import into: [dc=xiang,dc=com]
你的 LDAP Base DN 為何? [] 內為預設值,如果相符就不需要輸入
Enter the hostname of your LDAP server [ldap]: localhost
LDAP 主機名稱或 IP
Enter the manager DN: [cn=manager,dc=xiang,dc=com]:
管理者的 DN
Enter the credentials to bind with:
輸入密碼
Do you wish to generate a DUAConfigProfile [yes|no]? no
是否要建置 DUAConfigProfile
開始移轉會看到如下的資訊:
adding new entry "uid=nikon,ou=People,dc=xiang,dc=com"
adding new entry "uid=xiangyang,ou=People,dc=xiang,dc=com"
adding new entry "uid=david,ou=People,dc=xiang,dc=com"
adding new entry "uid=mary,ou=People,dc=xiang,dc=com"
adding new entry "uid=john,ou=People,dc=xiang,dc=com"
adding new entry "uid=lili,ou=People,dc=xiang,dc=com"
adding new entry "uid=lulu,ou=People,dc=xiang,dc=com"
adding new entry "uid=kyo,ou=People,dc=xiang,dc=com"
adding new entry "uid=abel,ou=People,dc=xiang,dc=com"
adding new entry "uid=alerk,ou=People,dc=xiang,dc=com"
adding new entry "uid=derek,ou=People,dc=xiang,dc=com"
adding new entry "uid=eric,ou=People,dc=xiang,dc=com"
這樣便完成移轉。

xiangyang17 發表在 痞客邦 留言(0) 人氣()

應公司要求 K了一點 LDAP 的東西,整理成筆記並分享出來,資料還不是很齊,陸續在補齊........

LDAP
LDAP 是一種目錄服務,可用來記錄人員的各種資訊,可以把他想成通訊錄,但是又更先進一點。對管理人員來說最好用的地方應該就是他可以整合帳號,讓所有的服務使用同一組帳號登入,當然前提是應用程式必須支援。
openLDAP
openLDAP 是 Linux 常見的 LDAP 軟體,許多 Linux 發行版本都有支援,像是 RedHat Enterprise Linux、fedora、CentOS 等等。
openLDAP 相關程式
slapd
openLDAP 的 daemon
slurpd
多個 LDAP 伺服器進行複寫時所用的程式
所需套件
openldap:openldap 基礎元件,預設一定會安裝。
openldap-servers:伺服器元件,若要做為 LDAP 伺服器就要安裝這個套件。
openldap-clients:用戶端元件

相關檔案及目錄

/etc/openldap:openldap 的主要目錄
/etc/openldap/slapd.conf:伺服器設定檔
/etc/openldap/cacerts:為一目錄,存放憑證相關資料
/etc/openldap/DB_CONFIG.example:資料庫設定檔範例
/etc/openldap/ldap.conf:用戶端設定檔
/etc/openldap/schema:為一目錄,存放綱要資料,簡單來說就是要支援哪種資料類型

xiangyang17 發表在 痞客邦 留言(0) 人氣()

1.png
與一般的 phpadminxxx 一樣,phpldapadmin 可以使用網頁方式來管理 LDAP 目錄,這篇文章將示範如何在 CentOS 上安裝。安裝前請先確定你的網頁伺服器已經安裝並正常運作中。
官網及下載網址
phpldapadmin 首頁: http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page

xiangyang17 發表在 痞客邦 留言(0) 人氣()

1
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。