Cara Install dan Konfigurasi OpenLDAP di Ubuntu/Debian dari Nol (Tutorial Lengkap)
Bayangkan Anda mengelola puluhan server, dan setiap server punya daftar user login sendiri-sendiri. Setiap kali ada karyawan baru masuk atau resign, Anda harus mengubah akun di setiap mesin satu per satu. Melelahkan, rawan human error, dan jelas tidak scalable.
Di sinilah OpenLDAP hadir sebagai solusi. LDAP (Lightweight Directory Access Protocol) memungkinkan Anda menyimpan data user, grup, dan informasi direktori lainnya di satu tempat terpusat, lalu semua server, aplikasi, atau layanan lain cukup “bertanya” ke direktori itu untuk otentikasi.
Bagi sysadmin, network engineer, maupun mahasiswa IT yang sedang belajar infrastruktur enterprise, memahami OpenLDAP adalah skill fundamental. Ia menjadi tulang punggung banyak sistem Single Sign-On (SSO), integrasi dengan Samba AD, otentikasi SSH terpusat, hingga backend untuk aplikasi seperti Nextcloud atau GitLab.
Artikel ini akan memandu Anda instalasi OpenLDAP dari nol di Ubuntu/Debian, mulai dari konsep dasar, instalasi paket slapd, konfigurasi base DN, sampai menambahkan entry pertama menggunakan ldapadd. Tutorial ini adalah bagian pembuka dari seri panjang tentang OpenLDAP, jadi pastikan Anda mengikuti setiap langkah dengan teliti.
Memahami Konsep Dasar: DN, OU, CN, dan Struktur Direktori LDAP
Sebelum masuk ke instalasi, penting untuk memahami “bahasa” yang digunakan LDAP. Tanpa memahami konsep ini, konfigurasi akan terasa seperti menghafal mantra tanpa tahu artinya.
Struktur Direktori Seperti Pohon Keluarga
LDAP menyimpan data dalam struktur hierarkis mirip pohon (tree), disebut DIT (Directory Information Tree). Setiap “cabang” atau node punya entry unik yang diidentifikasi oleh atribut-atribut berikut:
DC (Domain Component) Merepresentasikan bagian dari nama domain. Misalnya domain contoh.com akan dipecah menjadi dua komponen: dc=contoh dan dc=com. Ini menjadi fondasi paling atas dari struktur direktori Anda — semacam “akar pohon”.
DN (Distinguished Name) Ini adalah alamat lengkap dan unik dari sebuah entry di dalam direktori, mirip seperti path lengkap sebuah file di sistem operasi. Contoh:
uid=budi,ou=People,dc=contoh,dc=com
DN ini dibaca dari kanan ke kiri: mulai dari domain (dc=contoh,dc=com), lalu turun ke organizational unit (ou=People), lalu ke entry spesifik (uid=budi). Setiap entry di LDAP wajib memiliki DN yang unik.
OU (Organizational Unit) Semacam “folder” untuk mengelompokkan entry berdasarkan kategori atau divisi. Contoh umum: ou=People untuk menyimpan akun user, dan ou=Groups untuk menyimpan grup. Anda bisa membuat OU sesuai kebutuhan organisasi, misalnya ou=IT, ou=Finance, ou=Servers.
CN (Common Name) Nama umum dari sebuah entry, biasanya nama lengkap orang atau nama objek. Misalnya cn=Budi Santoso atau cn=admin untuk akun administrator direktori.
UID (User ID) Atribut yang menyimpan username unik seseorang, biasanya dipakai sebagai bagian dari RDN (Relative Distinguished Name) entry user, misalnya uid=budi.
Analogi Sederhana
Bayangkan LDAP seperti struktur folder di komputer:
dc=contoh,dc=comadalah drive utama, misalnyaD:\ou=Peopleadalah folderD:\Karyawan\uid=budi,ou=People,dc=contoh,dc=comadalah fileD:\Karyawan\budi.txt
Dengan analogi ini, Anda bisa membayangkan bagaimana LDAP “menavigasi” data secara hierarkis, dan mengapa DN harus unik — sama seperti path file yang tidak boleh duplikat dalam satu folder.
Persiapan Sebelum Instalasi
Sebelum mulai, pastikan Anda memenuhi beberapa syarat berikut:
- Server dengan Ubuntu 22.04/24.04 LTS atau Debian 11/12 (langkah pada Debian pada dasarnya identik)
- Akses root atau user dengan hak
sudo - Hostname atau FQDN yang jelas, misalnya
ldap.contoh.com - Koneksi internet untuk mengunduh paket
Update dulu sistem Anda:
sudo apt update && sudo apt upgrade -y
Tutorial Step-by-Step Instalasi OpenLDAP
Langkah 1: Install Paket slapd dan ldap-utils
slapd adalah daemon utama OpenLDAP (Standalone LDAP Daemon), sedangkan ldap-utils berisi tools command-line seperti ldapadd, ldapsearch, ldapmodify, dan slappasswd.
sudo apt install -y slapd ldap-utils
Selama instalasi, sistem akan meminta Anda memasukkan password admin LDAP. Simpan password ini baik-baik karena akan dipakai untuk semua operasi administratif ke depannya. Jika prompt ini tidak muncul (kadang terjadi di beberapa versi karena debconf sudah pre-seeded), jangan khawatir — Anda tetap bisa mengaturnya di langkah berikutnya.
Langkah 2: Reconfigure slapd untuk Mengatur Domain dan Base DN
Konfigurasi awal setelah apt install biasanya masih minimal dan menggunakan domain default (dc=nodomain). Untuk mengatur base DN sesuai kebutuhan organisasi Anda, jalankan:
sudo dpkg-reconfigure slapd
Anda akan melalui beberapa pertanyaan interaktif:
- Omit OpenLDAP server configuration? → Pilih No, karena Anda ingin melakukan konfigurasi.
- DNS domain name → Masukkan domain Anda, misalnya
contoh.com. Ini akan otomatis dikonversi menjadi base DNdc=contoh,dc=com. - Organization name → Masukkan nama organisasi, misalnya
Contoh Corp. - Administrator password → Set ulang password admin jika diperlukan.
- Database backend to use → Pilih MDB (backend default dan direkomendasikan di versi modern OpenLDAP, menggantikan HDB/BDB yang sudah lama deprecated).
- Do you want the database to be removed when slapd is purged? → Pilih No untuk keamanan data.
- Move old database? → Pilih Yes agar konfigurasi lama dipindahkan dengan aman.
Langkah 3: Verifikasi Instalasi dan Konfigurasi
OpenLDAP versi modern (Ubuntu/Debian terbaru) tidak lagi menggunakan file slapd.conf biasa, melainkan sistem konfigurasi runtime (RTC) yang disimpan sebagai entry LDAP itu sendiri di direktori /etc/ldap/slapd.d/. Ini penting dipahami agar Anda tidak bingung mencari file config seperti tutorial-tutorial lama.
Cek apakah service berjalan:
sudo systemctl status slapd
Pastikan statusnya active (running). Selanjutnya, verifikasi konfigurasi dengan query langsung ke backend cn=config:
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config
Jika muncul belasan entry konfigurasi, artinya slapd berjalan dan terbaca dengan benar.
Anda juga bisa memverifikasi isi database menggunakan slapcat, yang membaca langsung dari backend tanpa melalui jaringan:
sudo slapcat
Anda akan melihat entry dasar seperti:
dn: dc=contoh,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: Contoh Corp
dc: contoh
Langkah 4: Membuka Port Firewall (Jika UFW Aktif)
OpenLDAP secara default berjalan di port 389/tcp (LDAP biasa) dan 636/tcp (LDAPS, setelah TLS dikonfigurasi). Jika Anda menggunakan UFW:
sudo ufw allow 389/tcp comment 'OpenLDAP'
sudo ufw allow 636/tcp comment 'OpenLDAPS'
Langkah 5: Membuat Struktur OU (Organizational Unit)
Sekarang saatnya membangun struktur direktori. Buat file LDIF (LDAP Data Interchange Format) untuk mendefinisikan OU People dan Groups:
nano base.ldif
Isi dengan:
dn: ou=People,dc=contoh,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=contoh,dc=com
objectClass: organizationalUnit
ou: Groups
Tambahkan entry ini ke direktori menggunakan ldapadd:
ldapadd -x -D "cn=admin,dc=contoh,dc=com" -W -f base.ldif
Penjelasan flag yang digunakan:
-x: gunakan simple authentication (bukan SASL)-D: bind DN, yaitu identitas yang digunakan untuk login (di sini admin direktori)-W: minta password secara interaktif (lebih aman daripada menuliskannya langsung di command)-f: file LDIF yang akan diproses
Jika berhasil, Anda akan melihat output seperti adding new entry "ou=People,dc=contoh,dc=com".
Langkah 6: Menambahkan Entry User Pertama
Sebelum menambahkan user, buat dulu password terenkripsi menggunakan slappasswd:
slappasswd
Masukkan password yang diinginkan, dan tool ini akan menghasilkan hash seperti {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxx. Salin hash ini untuk digunakan di langkah berikutnya.
Buat file LDIF baru:
nano user-budi.ldif
Isi dengan:
dn: uid=budi,ou=People,dc=contoh,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: budi
sn: Santoso
givenName: Budi
cn: Budi Santoso
displayName: Budi Santoso
uidNumber: 10001
gidNumber: 10001
userPassword: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxx
gecos: Budi Santoso
loginShell: /bin/bash
homeDirectory: /home/budi
Tambahkan entry ke direktori:
ldapadd -x -D "cn=admin,dc=contoh,dc=com" -W -f user-budi.ldif
Langkah 7: Verifikasi Entry yang Ditambahkan
Cek apakah entry berhasil masuk dengan ldapsearch:
ldapsearch -x -LLL -b "dc=contoh,dc=com" "(uid=budi)"
Jika muncul detail lengkap entry budi, berarti proses instalasi dan konfigurasi dasar OpenLDAP sudah berhasil.
Studi Kasus Sederhana
Misalnya sebuah perusahaan kecil “Contoh Corp” punya 20 karyawan yang tersebar di 5 server berbeda (web server, mail server, file server, VPN server, dan monitoring server). Sebelum menggunakan LDAP, admin harus membuat akun secara manual di 5 tempat setiap kali ada karyawan baru — total 100 kali input data untuk 20 orang.
Dengan OpenLDAP yang sudah dikonfigurasi seperti di atas, admin cukup menambahkan satu entry LDIF di direktori pusat. Selama kelima server tersebut dikonfigurasi untuk melakukan otentikasi via LDAP (misalnya menggunakan SSSD atau PAM-LDAP), karyawan baru bisa langsung login ke semua sistem hanya dengan satu akun. Efisiensi waktu meningkat drastis dan risiko human error jauh berkurang.
Kesalahan yang Sering Terjadi
1. Lupa domain masih dc=nodomain Penyebab: langsung memakai apt install tanpa menjalankan dpkg-reconfigure slapd. Dampak: base DN tidak sesuai kebutuhan, entry yang ditambahkan menjadi tidak konsisten. Solusi: selalu jalankan dpkg-reconfigure slapd setelah instalasi dan pastikan domain terisi benar.
2. Salah menulis DN pada file LDIF Penyebab: typo pada urutan dc, ou, atau uid. Dampak: muncul error seperti No such object (32) saat ldapadd. Solusi: selalu cocokkan DN pada LDIF dengan base DN aktual hasil slapcat atau ldapsearch.
3. Password di-hardcode di command line Penyebab: menggunakan -w password alih-alih -W. Dampak: password tersimpan di history shell, berisiko dari sisi keamanan. Solusi: selalu gunakan -W agar password dimasukkan secara interaktif dan tidak tercatat di history.
4. Lupa membuka port firewall Penyebab: UFW aktif tapi port 389/636 belum di-allow. Dampak: client dari server lain tidak bisa konek ke LDAP meski service jalan normal di localhost. Solusi: jalankan perintah ufw allow seperti dijelaskan di Langkah 4.
5. Menggunakan backend HDB pada instalasi baru Penyebab: mengikuti tutorial lama yang masih memakai backend HDB/BDB. Dampak: backend tersebut sudah deprecated dan tidak direkomendasikan di versi OpenLDAP modern. Solusi: selalu pilih MDB saat proses dpkg-reconfigure slapd.
Tips dan Rekomendasi
- Gunakan
ldapsearch -Y EXTERNAL -H ldapi:///untuk operasi administratif lokal tanpa perlu password, karena memanfaatkan SASL EXTERNAL via socket Unix. - Backup direktori secara rutin dengan
slapcat > backup.ldifsebelum melakukan perubahan besar. - Untuk lingkungan produksi, segera lanjutkan konfigurasi TLS/SSL agar trafik LDAP terenkripsi (LDAPS di port 636), karena secara default trafik LDAP tidak terenkripsi.
- Rencanakan struktur OU sejak awal (misalnya per divisi atau per jenis resource) agar direktori tetap rapi saat organisasi berkembang.
- Simpan seluruh file LDIF di sistem version control (seperti Git) agar perubahan konfigurasi terlacak historinya.

Kesimpulan
OpenLDAP adalah fondasi penting untuk membangun sistem otentikasi terpusat yang scalable. Melalui tutorial ini, Anda telah mempelajari konsep dasar DN, OU, dan CN, cara instalasi paket slapd, konfigurasi base DN melalui dpkg-reconfigure, hingga menambahkan struktur OU dan entry user pertama menggunakan ldapadd.
Poin penting yang perlu diingat:
- Struktur LDAP bersifat hierarkis, mirip pohon direktori file
- Konfigurasi modern OpenLDAP menggunakan sistem
cn=config, bukan lagislapd.conf - Backend MDB adalah pilihan standar saat ini, bukan HDB/BDB
- Selalu gunakan LDIF untuk menambah/mengubah data agar prosesnya terdokumentasi dan bisa diulang
Ini baru langkah awal. Di seri berikutnya, kita akan membahas konfigurasi TLS/SSL untuk mengamankan trafik LDAP, integrasi dengan PAM/SSSD untuk login sistem, serta pengelolaan grup dan hak akses (ACL) yang lebih detail.
Sudah berhasil menjalankan OpenLDAP di server Anda? Bagikan pengalaman atau kendala yang Anda temui di kolom komentar
— kami dengan senang hati membantu troubleshoot bersama. Jangan lupa bagikan artikel ini ke rekan sysadmin lain yang mungkin sedang belajar hal yang sama, dan pantau terus seri tutorial OpenLDAP berikutnya di blog ini.
Frequently Asked Questions (FAQ)
Pertanyaan: Apa perbedaan antara slapd.conf dan sistem cn=config pada OpenLDAP modern? Jawaban: slapd.conf adalah metode konfigurasi lama berbasis file teks statis, sedangkan cn=config (RTC) menyimpan konfigurasi sebagai entry LDAP di direktori /etc/ldap/slapd.d/, sehingga perubahan bisa dilakukan secara dinamis via ldapmodify tanpa restart service.
Pertanyaan: Apakah OpenLDAP di Ubuntu dan Debian berbeda cara instalasinya? Jawaban: Tidak jauh berbeda. Nama paket, struktur konfigurasi, dan perintah dasar identik karena Ubuntu berbasis Debian. Perbedaan biasanya hanya pada versi paket slapd yang tersedia di repository masing-masing.
Pertanyaan: Mengapa harus memilih backend MDB, bukan HDB atau BDB? Jawaban: HDB dan BDB adalah backend lama yang sudah deprecated dan tidak lagi dikembangkan aktif. MDB (Lightning Memory-Mapped Database) lebih cepat, lebih stabil, dan menjadi default rekomendasi pada versi OpenLDAP modern.
Pertanyaan: Apakah trafik LDAP default sudah terenkripsi? Jawaban: Belum. Instalasi default OpenLDAP di port 389 berjalan tanpa enkripsi. Untuk keamanan produksi, Anda perlu mengaktifkan TLS/SSL sehingga trafik bisa lewat LDAPS di port 636.
Pertanyaan: Bagaimana cara mengecek apakah entry LDAP sudah berhasil ditambahkan? Jawaban: Gunakan perintah ldapsearch -x -LLL -b "dc=domain,dc=com" "(uid=namauser)". Jika entry ditemukan dan atributnya ditampilkan, berarti proses ldapadd sebelumnya berhasil.
Punya pertanyaan soal langkah instalasi di atas, atau menemukan error yang belum dibahas di sini? Tulis di kolom komentar, mari kita diskusikan bersama.
Jangan lupa share artikel ini ke tim atau komunitas sysadmin Anda, dan ikuti terus seri tutorial OpenLDAP berikutnya — mulai dari konfigurasi TLS, integrasi PAM/SSSD, hingga manajemen ACL tingkat lanjut.
Dukung kami dengan Subscribe & Join Membership channel YouTube | Walid Umar
Akses video pembelajaran eksklusif, materi persiapan UKK (Uji Kompetensi Siswa) dan Penyelesaian Soal LKS ITNSA