Siapkan Replikasi Master-Slave OpenLDAP di CentOS 8

Dalam panduan ini, kita akan mempelajari cara men-setup OpenLDAP Master-Slave Replication pada CentOS 8. Dalam versi OpenLDAP terbaru, istilah Master dan Slave tidak digunakan lagi dan istilah Penyedia dan Konsumen menggantikannya. Dalam pengaturan seperti itu, penyedia LDAP mereplikasi pembaruan direktori ke konsumen LDAP yaitu konsumen menerima pembaruan replikasi dari penyedia.

Selain replikasi Penyedia-konsumen (master-slave), juga dimungkinkan untuk memiliki pengaturan lain sebagai replikasi multi-master (penyedia-penyedia) di mana pembaruan replikasi yang diterima di konsumen dapat disebarkan lebih lanjut oleh konsumen tersebut ke server lain, jadi konsumen juga dapat bertindak secara bersamaan sebagai penyedia.

Siapkan Replikasi Master-Slave OpenLDAP di CentOS 8

Dalam demo ini, kita akan mempelajari cara mengonfigurasi replikasi OpenLDAP Provider-Consumer (Master-Slave) di CentOS 8. Server LDAP kita berjalan di sistem CentOS 8.

Pengaturan Lingkungan Kami:

  • LDAP Provider (Master): ldapmaster.kifarunix-demo.com
  • LDAP Consumer (Slave): ldapslave.kifarunix-demo.com

Pastikan bahwa nama host dapat dipecahkan. Jika Anda tidak memiliki server DNS, cukup perbarui file host dengan nama host server individual dan alamat IP dengan menjalankan perintah di bawah ini pada setiap server.

Replace the hostnames and IP addresses accordingly.

echo -e "192.168.56.100 ldapmaster.kifarunix-demo.comn192.168.2.101 ldapslave.kifarunix-demo.com" >> /etc/hosts

Prasyarat

Memulai dengan, install and configure the basic OpenLDAP settings on both the Provider and the Consumer servers. Ikuti tautan di bawah ini untuk mempelajari cara menginstal dan mengkonfigurasi server OpenLDAP di CentOS 8.

Instal dan Siapkan OpenLDAP di CentOS 8

Jika Anda menggunakan LDAP dengan sertifikat SSL/TLS, Anda mungkin ingin menggunakan sertifikat karakter pengganti dalam kasus ini untuk menghindari keharusan menggunakan beberapa sertifikat pada client LDAP. Dalam hal ini, harap dicatat bahwaLDAPS does not work with wildcard ssl certificates.

Selain itu, pastikan waktu yang sinkron antara Penyedia dan Konsumen.

Cadangkan Data dan Konfigurasi Penyedia OpenLDAP

Namun, jika Anda telah membuat cukup banyak konfigurasi pada Penyedia Anda, Anda dapat backup konfigurasi dan datanya dan restore pada Konsumen, tetapi tentu saja setelah menginstal dan menyiapkan dasar-dasar OpenLDAP pada konsumen.

Jika Anda mengikuti panduan kami tentang menyiapkan OpenLDAP di CentOS 8, Anda dapat berhenti setelah membuat skema OpenLDAP SUDO.

Untuk mencadangkan konfigurasi database OpenLDAP (ke file LDIF), cukup jalankan salah satu perintah di bawah ini;

slapcat -n 0 -l ldap-config.ldif

Atau

slapcat -b cn=config -l ldap-config.ldif

Untuk mem-backup data OpenLDAP, cukup jalankan perintah slapcat seperti gambar di bawah ini;

slapcat -l ldap-data.ldif

Atau

slapcat -n 1 -l ldap-data.ldif

Kembalikan Data dan Konfigurasi OpenLDAP pada Konsumen

Dengan asumsi OpenLDAP Anda terinstal dan berjalan di server Konsumen Anda dengan semua pengaturan yang serupa dengan apa yang diatur pada Penyedia, seperti direktori dan izin LDAP yang relevan, Anda dapat melanjutkan sebagai berikut untuk memulihkan pengaturan konfigurasi Data dan database dari Penyedia.

Copy Data dan Cadangan Konfigurasi ke Konsumen OpenLDAP

Copy data dan cadangan konfigurasi dari server Penyedia OpenLDAP ke server Konsumen OpenLDAP.

scp {ldap-data.ldif,ldap-config.ldif} [email protected]:

Pulihkan Data dan Konfigurasi Penyedia OpenLDAP di Konsumen

Setelah penyalinan selesai, masuk ke server Konsumen dan hentikan service LDAP.

systemctl stop slapd

Pastikan konfigurasi LDAP dan direktori data kosong;

rm -rf /etc/openldap/slapd.d/*
rm -rf /var/lib/openldap/*

Pulihkan cadangan konfigurasi dengan menjalankan salah satu perintah di bawah ini;

slapadd -b cn=config -l ldap-config.ldif -F /etc/openldap/slapd.d/

atau

slapadd -n 0 -l ldap-config.ldif -F /etc/openldap/slapd.d/

Pulihkan direktori data LDAP dengan menjalankan perintah;

slapadd -n 1 -l ldap-data.ldif -F /etc/openldap/slapd.d/

Tetapkan kepemilikan yang tepat dari data LDAP dan direktori konfigurasi

chown -R ldap:ldap /etc/openldap/slapd.d/ /var/lib/openldap/

Konfigurasikan OpenLDAP dengan SSL/TLS

Jika Penyedia Anda dikonfigurasi dengan SSL/TLS, maka Anda perlu menyalin sertifikat dari master dan menempatkannya di lokasi yang sesuai pada slave;

scp [email protected]r.kifarunix-demo.com:/etc/pki/tls/ldapserver.{crt,key} /etc/pki/tls

Tetapkan kepemilikan yang tepat dari sertifikat dan kunci di atas;

chown ldap:ldap /etc/pki/tls/ldapserver.{crt,key}

Mulai dan aktifkan service LDAP.

systemctl enable --now slapd

Izinkan Layanan OpenLDAP di Firewall

Untuk mengizinkan client jarak jauh menanyakan server OpenLDAP, izinkan: ldap (389 UDP/TCP) dan  ldaps (636 UDP/TCP) service di firewall.

firewall-cmd --add-service={ldap,ldaps} --permanent
firewall-cmd --reload

Konfigurasi Penyedia OpenLDAP (Master) untuk Replikasi

Sekarang setelah Penyedia LDAP dan Konsumen berada dalam status konfigurasi yang sama, Anda sekarang dapat melanjutkan dengan penyiapan replikasi.

Buat user BindDN Hanya Baca

Anda harus memiliki user hanya baca yang dapat digunakan untuk membaca entri yang direplikasi. Dalam pengaturan kami, kami memiliki user hanya baca;

cn=readonly,ou=system,dc=ldapmaster,dc=silensec,dc=com

Sebagai contoh, di bawah ini adalah daftar kontrol akses yang ditentukan pada Penyedia OpenLDAP kami.

ldapsearch -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}mdb,cn=config" olcAccess -Q -LLL
dn: olcDatabase={1}mdb,cn=config olcAccess: {0}to attrs=userPassword,shadowLastChange,shadowExpire by self writ e by anonymous auth by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=ext ernal,cn=auth" manage by dn.subtree="ou=system,dc=ldapmaster,dc=kifarunix-dem o,dc=com" read by dn.subtree="ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=co m" read by * none olcAccess: {1}to dn.subtree="ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" mana ge by * none olcAccess: {2}to dn.subtree="dc=ldapmaster,dc=kifarunix-demo,dc=com" by dn.sub tree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by user s read by * none

Aktifkan Hamparan Penyedia Sinkronisasi LDAP (syncprov) pada Penyedia (Master)

Untuk mengaktifkan sinkronisasi konten LDAP (replikasi syncrepl) antara Penyedia dan Konsumen, Anda perlu mengaktifkan modul Overlay syncprov di server Penyedia (Master).

vim enable-syncprov.ldif
dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: syncprov.la

Pastikan modul tersedia di jalur modul yang ditentukan;

slapcat -n 0 | grep -i modulepath
olcModulePath: /usr/libexec/openldap

Jika tidak, Anda perlu menentukan jalur lengkap modul di file ldif di atas.

Perbarui basis data OpenLDAP;

ldapadd -Y EXTERNAL -H ldapi:/// -f enable-syncprov.ldif

Konfigurasi Pengaturan Replikasi pada Penyedia

Tentukan setelan replikasi hamparan syncprov di Penyedia LDAP Anda.

vim sy
ncprov-options.ldif
dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpNoPresent: TRUE olcSpCheckpoint: 100 10 olcSpSessionlog: 100

Lihat man slapo-syncprovuntuk deskripsi opsi yang digunakan di atas.

ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov-options.ldif

Aktifkan Pengindeksan syncprov yang diperlukan

Anda harus mengaktifkan entryCSNdan entryUIDindeks untuk meningkatkan kecepatan pemindaian database dan kinerja log sesi pada penyedia masing-masing.

vim enable-indexing.ldif
dn: olcDatabase={1}mdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: entryCSN eq - add: olcDbIndex olcDbIndex: entryUUID eq
ldapadd -Y EXTERNAL -H ldapi:/// -f enable-indexing.ldif

Konfigurasikan OpenLDAP Konsumen (Budak) untuk Replikasi

Selanjutnya, lanjutkan untuk mengonfigurasi Konsumen OpenLDAP Anda agar terhubung ke Penyedia untuk mengambil pembaruan apa pun yang dibuat. Ini dapat dilakukan dengan mengaktifkan olcSyncreplatribut di sepanjang opsi konfigurasinya.

vim enable-syncrepl.ldif
dn: olcDatabase={1}mdb,cn=config changetype: modify add: olcSyncrepl olcSyncrepl: rid=001 provider=ldap://ldapmaster.kifarunix-demo.com binddn="cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com" bindmethod=simple  credentials="[email protected]"  searchbase="dc=ldapmaster,dc=kifarunix-demo,dc=com" type=refreshAndPersist timeout=0 network-timeout=0 retry="60 +"

Ganti provider, binddn and the binddn credentials, the search base dengan nilai-nilai yang sesuai.

Dalam pengaturan ini;

  • Konsumen (ldap slave) terhubung ke penyedia (master) untuk melakukan a refreshAndPersist polling dimana slave memulai koneksi ke master untuk sinkronisasi DIT. Kemudian mempertahankan koneksi sedemikian rupa sehingga perubahan selanjutnya ke penyedia segera disebarkan ke konsumen.
  • Pengguna ikat adalah cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=comdanpassword ditentukan dan bind method ditentukan oleh credentials dan bindmethod masing-masing.
  • Baca selengkapnya tentang opsi sinkronisasi Panduan OpenLDAP.

Perbarui database Konsumen dengan informasi replikasi sinkronisasi.

ldapadd -Y EXTERNAL -H ldapi:/// -f enable-syncrepl.ldif

Setup replikasi Provider-Consumer (Master-Slave) sekarang selesai.

Konfigurasikan Pencatatan OpenLDAP

Dalam pengaturan kami, logging sudah dikonfigurasi sebelum pencadangan selesai, oleh karena itu, kami dapat mengonfirmasi hal yang sama pada budak OpenLDAP;

slapcat -n 0 | grep -i loglevel
olcLogLevel: stats

Jadi, yang perlu Anda lakukan hanyalah mengonfigurasi Rsyslog untuk mengaktifkan OpenLDAP untuk masuk ke file tertentu. Secara default, OpenLDAP masuk ke  local4 fasilitas.

echo "local4.* /var/log/slapd.log" >> /etc/rsyslog.conf

Mulai ulang Rsyslog

systemctl restart rsyslog

Mulai ulang service server LDAP.

systemctl restart slapd

Memverifikasi Status Replikasi OpenLDAP

Setelah penyiapan replikasi penyedia-konsumen kami selesai, sekarang saatnya untuk memverifikasi apakah semuanya berfungsi seperti yang diharapkan.

Untuk memulainya, coba tambahkan entri baru pada Penyedia OpenLDAP (Master) misalnya entri user baru. Pada saat yang sama, ikuti log Konsumen OpenLDAP untuk memeriksa status replikasi.

Pada Konsumen OpenLDAP;

vim new-user.ldif
dn: uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com cn: koromicha gidnumber: 10050 homedirectory: /home/koromicha loginshell: /bin/bash objectclass: inetOrgPerson objectclass: posixAccount objectclass: shadowAccount shadowinactive: 7 shadowlastchange: 0 shadowmax: 60 shadowmin: 1 shadowwarning: 7 sn: Doe uid: koromicha uidnumber: 10050 userpassword: {SSHA}vg3PjAkA2mKNjrxAg5ucywm06yf8h8pO dn: cn=koromicha,ou=groups,dc=ldapmaster,dc=kifarunix-demo,dc=com cn: koromicha gidnumber: 10050 memberuid: koromicha objectclass: posixGroup

Tambahkan entri baru ke database Penyedia OpenLDAP.

ldapadd -Y EXTERNAL -H ldapi:/// -f new-user.ldif

Anda sekarang dapat membaca file log,  /var/log/slapd.logdan mencari kata kunci,do_syncrepl.

Juga, cari entri baru pada konsumen OpenLDAP;

ldapsearch -Y EXTERNAL -H ldapi:/// -b "ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com" dn -Q -LLL
dn: ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com dn: uid=janedoe,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com dn: uid=johndoe,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com dn: uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com

Setel ulang password untuk user di penyedia OpenLDAP dan verifikasi di Konsumen OpenLDAP;

[[email protected] ~]# ldappasswd -x -h ldapmaster.kifarunix-demo.com -D "cn=admin,dc=ldapmaster,dc=kifarunix-demo,dc=com" -S "uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com" -W

Setelah password diatur ulang, Anda dapat memverifikasi menggunakan ldapwhoamiperintah yang ditunjukkan di bawah ini;

[[email protected] ~]# ldapwhoami -x -h ldapslave.kifarunix-demo.com -D "uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com" -W -vvv ldap_initialize( ldap://ldapslave.kifarunix-demo.com ) Enter LDAP Password: dn:uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com Result: Success (0) [[email protected] ~]#

Besar. Anda sekarang memiliki kumpulan replikasi penyedia-konsumen OpenLDAP (Master-Slave) fungsional.

Tapi apa kontra dari pengaturan OpenLDAP Master-Slave? Nah, menurut Zytrax ;

Konfigurasi Master-Slave (atau penyedia-konsumen) memiliki dua kekurangan yang jelas:

  • Multiple locations. Jika semua atau sebagian besar client memiliki kebutuhan untuk memperbarui DIT maka mereka harus mengakses satu server (menjalankan DIT budak) untuk akses baca normal dan server lain (menjalankan master DIT) untuk melakukan pembaruan. Atau client selalu dapat mengakses server yang menjalankan master DIT. Dalam kasus terakhir ini, replikasi hanya menyediakan fungsionalitas cadangan.
  • Resilience. Karena hanya ada satu server yang berisi master DIT, ini mewakili satu titik kegagalan.

Itu menandai panduan kami tentang cara mengatur Replikasi OpenLDAP Master-Slave di CentOS 8. Dalam panduan kami berikutnya, kami akan membahas cara mengatur replikasi server OpenLDAP Penyedia-Penyedia.

Referensi

Replikasi – Perangkat Lunak OpenLDAP 2.4 Panduan Administrator

Tutorial Terkait

Siapkan Server OpenLDAP dengan SSL/TLS di Debian 10

Instal dan Setup Server FreeIPA di CentOS 8

Siapkan Alat Kata Sandi Layanan Mandiri LDAP di CentOS 8

Instal phpLDAPadmin di CentOS 8

Terapkan Kebijakan Kata Sandi OpenLDAP