GNU/Linux >> Belajar Linux >  >> Cent OS

Konfigurasikan Replikasi Multi-Master OpenLDAP di Linux

Dalam panduan ini, kami akan mengonfigurasi replikasi Multi-master server OpenLDAP di CentOS 7 / RHEL 7 . Pengaturan replikasi Multi-Master ini untuk mengatasi batasan replikasi Master-Slave biasa di mana hanya server master yang melakukan perubahan di direktori LDAP .

BACA:Cara mengonfigurasi OpenLDAP Master-Slave Replication

Dalam replikasi Multi-Master, dua atau lebih server bertindak sebagai master dan semua ini berwenang untuk setiap perubahan di direktori LDAP. Kueri dari klien didistribusikan ke beberapa server dengan bantuan replikasi.

Lingkungan

Untuk replikasi Multi-Master, kita akan menggunakan tiga OpenLDAP server. Detailnya ada di bawah.

ldpsrv1.itzgeek.local (192.168.12.10)
ldpsrv2.itzgeek.local (192.168.12.20)
ldpsrv3.itzgeek.local (192.168.12.30)

Instal LDAP

Instal paket LDAP di semua server Anda.
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel

Mulai layanan LDAP dan aktifkan untuk memulai otomatis saat boot sistem.

systemctl start slapd.service
systemctl enable slapd.service

Mengonfigurasi Pencatatan LDAP

Konfigurasikan syslog untuk mengaktifkan logging LDAP.

echo "local4.* /var/log/ldap.log" >> /etc/rsyslog.conf
systemctl restart rsyslog

Mengonfigurasi Replikasi Multi-Master OpenLDAP

Salin contoh file konfigurasi database ke /var/lib/ldap direktori dan perbarui izin file. Anda harus melakukan langkah-langkah di bawah ini pada semua server OpenLDAP Anda kecuali dinyatakan lain.

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*

Kami akan mengaktifkan modul syncprov.

vi syncprov_mod.ldif

Salin dan tempel baris di bawah ini ke syncprov_mod.ldif di atas berkas.

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

Sekarang kirim konfigurasi ke server LDAP.

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

Keluaran:

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"

Aktifkan Replikasi Konfigurasi

Ubah olcServerID di semua server . Misalnya, untuk ldpsrv1, setel olcServerID ke 1, untuk ldpsrv2, setel olcServerID ke 2 dan untuk ldpsrv3, setel ke 3.

vi olcserverid.ldif

Salin dan tempel teks di bawah ini ke dalam file di atas.

dn: cn=config
changetype: modify
add: olcServerID
olcServerID: 1

Perbarui konfigurasi di server LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f olcserverid.ldif

Keluaran:

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

Kita perlu membuat sandi untuk replikasi konfigurasi LDAP.

slappasswd

Keluaran:

New password:
Re-enter new password:
{SSHA}MAfw/QNizKx4NxueW7CpCSN6jeDB5Z+C

Anda harus membuat kata sandi di setiap server dengan menjalankan perintah slappasswd.

Tetapkan kata sandi untuk database konfigurasi.

vi olcdatabase.ldif

Salin dan tempel teks di bawah ini ke dalam file di atas. Anda harus memasukkan sandi yang Anda buat pada langkah sebelumnya pada file ini.

dn: olcDatabase={0}config,cn=config
add: olcRootPW
olcRootPW: {SSHA}MAfw/QNizKx4NxueW7CpCSN6jeDB5Z+C

Perbarui konfigurasi di server LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f olcdatabase.ldif

Keluaran:

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

Sekarang kita akan mengatur replikasi konfigurasi di semua server.

vi configrep.ldif

Salin dan tempel teks di bawah ini ke dalam file di atas.

### Update Server ID with LDAP URL ###

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 ldap://ldpsrv1.itzgeek.local
olcServerID: 2 ldap://ldpsrv2.itzgeek.local
olcServerID: 3 ldap://ldpsrv3.itzgeek.local

### Enable Config Replication###

dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

### Adding config details for confDB replication ###

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001 provider=ldap://ldpsrv1.itzgeek.local binddn="cn=config"
  bindmethod=simple credentials=x searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncRepl: rid=002 provider=ldap://ldpsrv2.itzgeek.local binddn="cn=config"
  bindmethod=simple credentials=x searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
olcSyncRepl: rid=003 provider=ldap://ldpsrv3.itzgeek.local binddn="cn=config"
  bindmethod=simple credentials=x searchbase="cn=config"
  type=refreshAndPersist retry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE

Sekarang kirim konfigurasi ke server LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f configrep.ldif

Keluaran:

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

adding new entry "olcOverlay=syncprov,olcDatabase={0}config,cn=config"

modifying entry "olcDatabase={0}config,cn=config"

Aktifkan Replikasi Basis Data

Pada saat ini, semua konfigurasi LDAP Anda telah direplikasi. Sekarang, kita akan mengaktifkan replikasi data aktual, yaitu database pengguna. Lakukan langkah-langkah di bawah ini pada salah satu node karena node lainnya sedang dalam replikasi.

Kita perlu mengaktifkan syncprov untuk database hdb.

vi syncprov.ldif

Salin dan tempel teks di bawah ini ke dalam file di atas.

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

Perbarui konfigurasi di server LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -f syncprov.ldif

Keluaran:

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={2}hdb,cn=config"

Siapkan replikasi untuk database hdb.

vi olcdatabasehdb.ldif

Salin dan tempel konten di bawah ini ke file di atas. Anda mungkin mendapatkan kesalahan untuk olcSuffix, olcRootDN, dan olcRootPW jika Anda sudah memilikinya di konfigurasi Anda. Hapus entri, jika tidak diperlukan.

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=itzgeek,dc=local
-
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=itzgeek,dc=local
-
replace: olcRootPW
olcRootPW: {SSHA}xtbbtC/1pJclCPzo1n3Szac9jqavSphk
-
add: olcSyncRepl
olcSyncRepl: rid=004 provider=ldap://ldpsrv1.itzgeek.local binddn="cn=ldapadm,dc=itzgeek,dc=local" bindmethod=simple
  credentials=x searchbase="dc=itzgeek,dc=local" type=refreshOnly
  interval=00:00:00:10 retry="5 5 300 5" timeout=1
olcSyncRepl: rid=005 provider=ldap://ldpsrv2.itzgeek.local binddn="cn=ldapadm,dc=itzgeek,dc=local" bindmethod=simple
  credentials=x searchbase="dc=itzgeek,dc=local" type=refreshOnly
  interval=00:00:00:10 retry="5 5 300 5" timeout=1
olcSyncRepl: rid=006 provider=ldap://ldpsrv3.itzgeek.local binddn="cn=ldapadm,dc=itzgeek,dc=local" bindmethod=simple
  credentials=x searchbase="dc=itzgeek,dc=local" type=refreshOnly
  interval=00:00:00:10 retry="5 5 300 5" timeout=1
-
add: olcDbIndex
olcDbIndex: entryUUID  eq
-
add: olcDbIndex
olcDbIndex: entryCSN  eq
-
add: olcMirrorMode
olcMirrorMode: TRUE

Setelah Anda memperbarui file, kirim konfigurasi ke server LDAP.

ldapmodify -Y EXTERNAL  -H ldapi:/// -f olcdatabasehdb.ldif

Keluaran:

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

Buat perubahan pada olcDatabase={1}monitor.ldif file untuk membatasi akses monitor hanya ke root LDAP (ldapadm ) pengguna, bukan kepada orang lain.

# vi monitor.ldif

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=itzgeek,dc=local" read by * none

Setelah Anda memperbarui file, kirim konfigurasi ke server LDAP.

ldapmodify -Y EXTERNAL  -H ldapi:/// -f monitor.ldif

Tambahkan skema LDAP.

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

Buat base.ldif file untuk domain Anda.

# vi base.ldiff

dn: dc=itzgeek,dc=local
dc: itzgeek
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=itzgeek,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou=People,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: Group

Bangun struktur direktori.

ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f base.ldif

Keluaran:

Enter LDAP Password:
adding new entry "dc=itzgeek,dc=local"

adding new entry "cn=ldapadm ,dc=itzgeek,dc=local"

adding new entry "ou=People,dc=itzgeek,dc=local"

adding new entry "ou=Group,dc=itzgeek,dc=local"

Uji replikasi LDAP

Mari buat LDAP pengguna yang disebut “ldaptest “ di salah satu server master Anda, untuk melakukannya, buat .ldif file di ldpsrv1.itzgeek.local (dalam kasus saya).

[root@ldpsrv1 ~]# vi ldaptest.ldif

Perbarui file di atas dengan konten di bawah ini.

dn: uid=ldaptest,ou=People,dc=itzgeek,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldaptest
uid: ldaptest
uidNumber: 9988
gidNumber: 100
homeDirectory: /home/ldaptest
loginShell: /bin/bash
gecos: LDAP Replication Test User
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

Tambahkan pengguna ke server LDAP menggunakan ldapadd perintah.

[root@ldpsrv1 ~]# ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f ldaptest.ldif

Keluaran:

Enter LDAP Password:
adding new entry "uid=ldaptest,ou=People,dc=itzgeek,dc=local"

Telusuri “ldaptest ” di server master lain (ldpsrv2.itzgeek.local ).

[root@ldpsrv2 ~]# ldapsearch -x cn=ldaptest -b dc=itzgeek,dc=local

Keluaran:

# extended LDIF
#
# LDAPv3
# base <dc=itzgeek,dc=local> with scope subtree
# filter: cn=ldaptest
# requesting: ALL
#

# ldaptest, People, itzgeek.local
dn: uid=ldaptest,ou=People,dc=itzgeek,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldaptest
uid: ldaptest
uidNumber: 9988
gidNumber: 100
homeDirectory: /home/ldaptest
loginShell: /bin/bash
gecos: LDAP Replication Test User
userPassword:: e2NyeXB0fXg=
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Sekarang, setel kata sandi untuk pengguna yang dibuat di ldpsrv1.itzgeek.local dengan membuka ldpsrv2.itzgeek.local . Jika Anda dapat mengatur kata sandi, itu berarti replikasi berfungsi seperti yang diharapkan.

[root@ldpsrv2 ~]# ldappasswd -s password123 -W -D "cn=ldapadm,dc=itzgeek,dc=local" -x "uid=ldaptest,ou=People,dc=itzgeek,dc=local"

Dimana,

-s tentukan kata sandi untuk nama pengguna

-x nama pengguna yang kata sandinya diubah

-D Nama khusus untuk diautentikasi ke server LDAP.

Dalam topologi replikasi Master-Slave, Anda tidak dapat mengatur kata sandi untuk pengguna LDAP di server budak.

Ekstra

Konfigurasikan klien LDAP untuk mengikat ke server master baru juga.

authconfig --enableldap --enableldapauth --ldapserver=ldpsrv1.itzgeek.local,ldpsrv2.itzgeek.local,ldpsrv3.itzgeek.local --ldapbasedn="dc=itzgeek,dc=local" --enablemkhomedir --update

Itu saja.


Cent OS
  1. Konfigurasikan server OpenVPN Anda di Linux

  2. Cara menginstal &mengkonfigurasi Redis 6 di Rocky Linux/Centos 8

  3. Layanan OS Linux 'ldap'

  1. Langkah demi Langkah Konfigurasi Server OpenLDAP pada CentOS 7 / RHEL 7

  2. Konfigurasikan Otentikasi Berbasis OpenVPN LDAP

  3. Konfigurasikan replikasi sumber-replika MySQL

  1. Cara mengkonfigurasi Replikasi Multi-Master MySQL di Oracle Linux

  2. Konfigurasikan replikasi sumber-sumber MySQL

  3. Cara Instal dan Konfigurasi OpenLDAP di CentOS / RHEL Linux