Backup Restore OpenLDAP

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.

Leave a Reply

Your email address will not be published. Required fields are marked *