Melakukan konfigurasi server OpenLDAP mungkin terlihat mudah, apalagi setelah kita berhasil mengintegrasikannya dengan aplikasi. Namun, hal yang lebih penting adalah bagaimana menjaga supaya data OpenLDAP tersebut tetap aman dan bisa digunakan saat ada kendala. Bayangkan skenario dimana data OpenLDAP yang kita gunakan corrupt atau ada kesalahan konfigurasi yang mengakibatkan seluruh aplikasi yang terintegrasi dengan OpenLDAP terkendala juga. Tanpa strategi backup yang tepat, proses restore akan sangat sulit dilakukan dan mungkin memakan waktu yang lama.
Di infrastruktur OpenLDAP yang sudah kita buat, saya menyadari bahwa backup manual bukanlah solusi. Kita butuh sistem yang otomatis melakukan backup sesuai dengan schedule. Oleh karena itu, kali ini saya akan membedah bagaimana cara melakukan backup OpenLDAP beserta dengan script-nya supaya bisa dilakukan secara otomatis.
Backup OpenLDAP
Untuk backup OpenLDAP sebenarnya cukup mudah, namun kita perlu melakukan backup satu persatu, mulai dari data konfigurasi sampai dengan data domain (Apabila ada 4 domain di OpenLDAP maka akan ada 5 data backup, yaitu backup konfigurasi, lalu backup data 4 domain yang ada). OpenLDAP yang saya gunakan untuk uji coba memiliki 2 DN domain:
# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config "(olcSuffix=*)" olcSuffix | grep olcSuffix | awk '{print $2}'
dc=excellent,dc=co,dc=id
dc=colamen,dc=id
Berikut adalah langkah-langkah untuk melakukan backup data konfigurasi beserta dengan data DN domain yang ada:
- Siapkan direktori tempat penyimpananan data backup (Data backup direkomendasikan untuk disimpan pada storage yang terpisah, misalnya NFS supaya tidak terkena dampak apabila server OpenLDAP terkendala):
# ls -ld /srv/backup-ldap drwxr-xr-x 2 root root 4096 Apr 23 11:42 /srv/backup-ldap
- Backup data konfigurasi dengan perintah berikut:
# slapcat -n 0 -l /srv/backup-ldap/config.ldif
- Backup data semua domain DN dengan perintah berikut:
# slapcat -b 'dc=excellent,dc=co,dc=id' -l /srv/backup-ldap/excellent_co_id.ldif # slapcat -b 'dc=colamen,dc=id' -l /srv/backup-ldap/colamen_id.ldif
- Pastikan data backup sudah ada pada direktori backup dan sample isinya ada dengan perintah berikut:
# cd /srv/backup-ldap # ls -ltrh total 48K -rw-r--r-- 1 root root 40K Apr 23 12:07 config.ldif -rw-r--r-- 1 root root 4.5K Apr 23 13:17 excellent_co_id.ldif -rw-r--r-- 1 root root 4.5K Apr 23 13:17 colamen_id.ldif # head config.ldif dn: cn=config objectClass: olcGlobal cn: config olcArgsFile: /var/run/slapd/slapd.args olcPidFile: /var/run/slapd/slapd.pid olcToolThreads: 1 structuralObjectClass: olcGlobal entryUUID: f7e18a8a-b534-1040-9498-4fba284d8517 creatorsName: cn=config createTimestamp: 20260316033548Z # head excellent_co_id.ldif dn: dc=excellent,dc=co,dc=id objectClass: top objectClass: dcObject objectClass: organization o: PT Excellent Infotama Kreasindo dc: excellent structuralObjectClass: organization entryUUID: f7e4f9ea-b534-1040-879b-45549cba0e76 creatorsName: cn=admin,dc=excellent,dc=co,dc=id createTimestamp: 20260316033548Z
Restore OpenLDAP
Setelah OpenLDAP di backup, kita bisa melakukan restore ke OpenLDAP lain dalam kondisi fresh install. Berikut adalah langkah-langkah yang perlu dilakukan untuk melakukan restore data backup OpenLDAP ke server OpenLDAP baru.
- Melakukan Instalasi OpenLDAP di Ubuntu 24.04
- Sebelum kita melakukan restore, kita bisa lihat dulu kondisi fresh install OpenLDAP dengan perintah berikut supaya bisa dijadikan perbandingan setelah restore nanti:
# ldapsearch -LLL -x -H ldapi:/// -s base -b "" namingContexts dn: namingContexts: dc=vercel-dns-017,dc=com # ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config "(olcSuffix=*)" olcSuffix | grep olcSuffix | awk '{print $2}' dc=vercel-dns-017,dc=com # slapcat -n 1 | grep "^dn: " | wc -l 1 - Stop service slapd dengan perintah berikut:
# systemctl status slapd
- Delete direktori konfigurasi OpenLDAP:
# rm -rf /etc/ldap/slapd.d/* # rm -rf /var/lib/ldap/*
- Salin data backup OpenLDAP ke server OpenLDAP yang baru, boleh ke direktori /srv atau direktori lain
- Restore backup konfigurasi dengan perintah berikut:
# slapadd -n 0 -F /etc/ldap/slapd.d/ -l /srv/config.ldif Closing DB...
- Restore backup data semua domain dengan perintah berikut:
# slapadd -n 1 -F /etc/ldap/slapd.d/ -l /srv/excellent_co_id.ldif Closing DB... # slapadd -n 2 -F /etc/ldap/slapd.d/ -l /srv/colamen_id.ldif Closing DB...
- Start service slapd dengan perintah berikut:
# systemctl start slapd
- Melakukan pengecekan data OpenLDAP setelah proses restore dilakukan sebagai perbandingan:
# ldapsearch -LLL -x -H ldapi:/// -s base -b "" namingContexts dn: namingContexts: dc=excellent,dc=co,dc=id namingContexts: dc=colamen,dc=id # ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config "(olcSuffix=*)" olcSuffix | grep olcSuffix | awk '{print $2}' dc=excellent,dc=co,dc=id dc=colamen,dc=id # slapcat -n 1 | grep "^dn: " | wc -l 8
Script Backup Otomatis
Meskipun cara manual di atas terlihat mudah, bayangkan jika kita harus melakukannya setiap hari tepat pada jam 2 pagi. Belum lagi jika kita memiliki banyak domain (multi-domain) seperti dc=excellent,dc=co,dc=id dan dc=colamen,dc=id. Risiko human error sangat besar—misalnya lupa melakukan backup atau folder backup ternyata penuh. Oleh karena itu, kita butuh sebuah script yang bisa melakukan semua hal di atas secara otomatis, terjadwal, dan memberikan laporan langsung ke Telegram. Berikut langkah-langkah yang perlu dilakukan untuk mengaktifkan backup otomatis:
- Silakan download script backup https://colamen.id/pmg/backup
# cd /srv # wget -c https://colamen.id/pmg/backup # chmod u+x backup
- Edit file script /srv/backup dan sesuaikan attribute-attribute berikut:
- BACKUP_DIR = (Direktori tempat backup)
- RETAIN_DAYS = (Data backup yang akan di keep sebelum dihapus – Default: 31 Hari, maka pada saat backup ke-32 maka backup hari ke-1 akan dihapus)
- ENABLE_TELEGRAM = (True or false, apakah hendak aktifkan notifikasi telegram atau tidak)
- BOT_TOKEN = (Token bot telegram)
- CHAT_ID = (ID user / group telegram)
- Backup data LDAP menggunakan script:
# /srv/backup Direktori backup sudah ada: /srv/backup-ldap Memulai backup OpenLDAP... [✔] Backup Sukses. Proses selesai.
- Pastikan data backup sudah ada pada direktori backup:
# ls -ltrh /srv/backup-ldap total 96K -rw-r--r-- 1 root root 40K Apr 23 12:07 config.ldif -rw-r--r-- 1 root root 4.5K Apr 23 13:17 excellent_co_id.ldif -rw-r--r-- 1 root root 0 Apr 23 13:17 colamen_id.ldif -rw-r--r-- 1 root root 40K Apr 23 15:09 config_23042026150946.ldif -rw-r--r-- 1 root root 4.5K Apr 23 15:09 excellent_co_id_23042026150946.ldif -rw-r--r-- 1 root root 0 Apr 23 15:09 colamen_id_23042026150946.ldif
- Jika kita mengaktifkan notifikasi telegram, maka kita akan menerima notifikasi proses backup, baik berhasil maupun gagal
- Aktifkan backup by schedule melalui crontab:
# crontab -e
- Isi crontab seperti berikut (Backup akan dilakukan pukul 2 dini hari setiap harinya):
0 2 * * * /srv/backup > /dev/null 2>&1
Dengan script backup ini, server OpenLDAP kita akanotomatis melakukan backup sehingga apabila mengalami kendala bisa langsung di restore. Apabila rekan-rekan mengalami kesulitan atau ada kebutuhan konfigurasi LDAP, Excellent menyediakan layanan implementasi LDAP dan sudah mencakup backup otomatis seperti diatas. Bagi rekan-rekan yang berminat untuk jasa layanan tersebut bisa langsung kontak & tanya-tanya ke email sales@excellent.co.id.