Debian 10 Buster
Sponsored Link

OpenLDAP : レプリケーション2019/07/26

 
OpenLDAP レプリケーションの設定です。
LDAP スレーブサーバーを構築し、LDAP マスターサーバーダウン時も LDAP クライアントに対してサービスを継続できるようにします。 OpenLDAP 用語で LDAP マスターサーバーを [プロバイダー], LDAP スレーブサーバーを [コンシューマー] と呼びます。
[1]
LDAP プロバイダー および コンシューマーとするサーバー双方に、 こちらを参照して LDAP サーバーとしての基本設定をしておきます
[2] LDAP プロバイダーの設定です。syncprov モジュールを追加します。
root@dlp:~#
vi mod_syncprov.ldif
# 新規作成

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/ldap
olcModuleLoad: syncprov.la

root@dlp:~#
ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config"

root@dlp:~#
vi syncprov.ldif
# 新規作成

dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100

root@dlp:~#
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={1}mdb,cn=config"
[3] LDAP コンシューマーの設定です。
root@node01:~#
vi syncrepl.ldif
# 新規作成

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
  # LDAPサーバーのURI
  provider=ldap://10.0.0.30:389/
  bindmethod=simple
  # 自身のドメイン名
  binddn="cn=admin,dc=srv,dc=world"
  # ディレクトリマネージャーのパスワード
  credentials=password
  searchbase="dc=srv,dc=world"
  # サブツリーも含める
  scope=sub
  schemachecking=on
  type=refreshAndPersist
  # リトライ間隔 リトライ回数 再リトライまでの間隔 再リトライ回数
  retry="30 5 300 3"
  # レプリケーションの間隔
  interval=00:00:05:00

root@node01:~#
ldapadd -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"

# データを検索して確認

root@node01:~#
ldapsearch -x -b 'ou=people,dc=srv,dc=world'

dn: ou=people,dc=srv,dc=world
objectClass: organizationalUnit
ou: people

# buster, people, srv.world
dn: uid=buster,ou=people,dc=srv,dc=world
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: buster
sn: ubuntu
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/buster
uid: buster
.....
.....
[4] LDAP クライアント側でプロバイダーとコンシューマーの両方を参照先として設定します。 以上により、プロバイダーダウン時も、参照先がコンシューマーに切り替わり、LDAP サービスは継続されるようになります。
root@www:~#
vi /etc/pam_ldap.conf
# 27行目:LDAP コンシューマー追記追記

uri ldap://dlp.srv.world/
ldap://node01.srv.world/
root@www:~#
vi /etc/libnss-ldap.conf
# 27行目:LDAP コンシューマー追記追記

uri ldap://dlp.srv.world/
ldap://node01.srv.world/
関連コンテンツ