Mendasari keamanan direktori: risiko password cleartext dan eavesdropping, jenis bind anonymous, simple, dan SASL, mekanisme SASL PLAIN hingga GSSAPI, penyimpanan password ber-hash, serta prinsip least privilege.

Di episode 14 kalian membuat pencarian cepat dengan index. Sekarang arah pembahasannya bergeser: direktori yang cepat tapi bocor tidak ada artinya. Episode 15 ini membuka fase keamanan dan enkripsi dengan membahas ancaman dasar — mulai dari password yang dikirim apa adanya hingga serangan man-in-the-middle — lalu memetakan jenis-jenis autentikasi yang tersedia di OpenLDAP sebelum kalian menutupnya dengan TLS di episode 16.
Sifat dasar LDAP adalah protokol jaringan teks yang berjalan di atas TCP. Tanpa pengamanan, berikut yang mengancam:
Semua ancaman ini bisa dijawab dengan kombinasi enkripsi transport (episode 16) dan kebijakan akses yang ketat. Episode ini menyiapkan konsep autentikasinya dulu.
OpenLDAP menyediakan beberapa cara untuk mengenali siapa yang berbicara:
Perbandingan ringkasnya:
| Metode | Kredensial | Keamanan transport | Kecocokan |
|---|---|---|---|
| Anonymous | tidak ada | tidak relevan | data publik |
| Simple bind | DN + password | perlu TLS | aplikasi lama, integrasi sederhana |
| SASL | tergantung mekanisme | tergantung mekanisme | enterprise, SSO |
| External | cert atau soket | inherent TLS/ldapi | admin cn=config, mutual TLS |
SASL tidak mengautentikasi sendiri — ia menjadi wadah bagi berbagai mekanisme:
Karena simple bind dan SASL PLAIN mengirim password polos, OpenLDAP menyediakan gerbang pengaman lewat olcSecurity pada cn=config maupun per database:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcSecurity
olcSecurity: tls=1
olcSecurity: ssf=1tls=1 mewajibkan koneksi TLS untuk semua operasi, dan ssf=1 (security strength factor) menuntut ada lapisan keamanan dengan kekuatan minimal 1. Hasilnya: bind yang mengirim password tanpa TLS ditolak sejak awal, bukan hanya diingatkan.
Important
Berhati-hatilah saat memasang olcSecurity: tls=1 lewat koneksi biasa. Begitu diterapkan, semua sesi tanpa TLS langsung gagal — termasuk sesi admin yang sedang memakainya. Terapkan selalu lewat ldapmodify -Y EXTERNAL -H ldapi:/// atau pastikan TLS sudah berjalan lebih dulu.
Selain transport, cara server menyimpan password juga menentukan keamanan keseluruhan. OpenLDAP menyimpan hash, bukan password polos, dengan label skema:
| Skema | Status | Catatan |
|---|---|---|
{SSHA} | umum | salted SHA-1, default lama |
{SHA} | deprecated | SHA-1 tanpa salt, mudah di-brute force |
{SSHA256}, {SSHA512} | direkomendasikan | salted SHA dengan kekuatan lebih tinggi |
{CRYPT} | tergantung | memakai crypt sistem |
{MD5} | deprecated | tanpa salt, lemah |
{ARGON2} | modern | Argon2, jika build slapd mendukungnya |
Default hash diatur lewat olcPasswordHash di cn=config. Menghindari {SHA} dan {MD5} yang deprecated adalah keputusan keamanan paling murah yang bisa kalian lakukan.
Autentikasi hanya setengah jalan — yang kedua adalah otorisasi. Beberapa pengaturan kunci:
olcDisallows: bind_anon untuk melarang bind anonim, dan olcRequires: authc agar semua operasi menuntut autentikasi.olcSecurity seperti di atas.read, bukan write, dan akun replikasi cukup akses untuk search.olcAuthzPolicy mengatur bagaimana identitas SASL dipetakan ke DN direktori; di episode 17 ini menjadi kunci integrasi Kerberos.dn: cn=config
changetype: modify
replace: olcDisallows
olcDisallows: bind_anon
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcRequires
olcRequires: authcAudit keamanan berkala, monitoring dan logging yang dibahas di episode 18, serta pembatasan firewall (hanya buka port 389 dan 636 untuk jaringan yang berhak) menutup sisa celah.
Pada episode 15 ini kalian memahami fondasi keamanan OpenLDAP: ancaman password cleartext, eavesdropping, dan man-in-the-middle; perbedaan anonymous, simple bind, SASL, dan external; mekanisme SASL dari PLAIN hingga GSSAPI; pengamanan dengan olcSecurity dan ssf; skema penyimpanan password dari {SSHA} hingga {ARGON2}; serta kebijakan akses minimal dan penutupan akses anonim.
Inti yang harus dibawa pulang:
olcSecurity: ssf=1 memaksa lapisan aman.{SSHA512} atau lebih baik, jauhi {MD5} dan {SHA}.bind_anon dilarang, dan firewall.Di episode 16 berikutnya, kalian memasang lapisan yang menyegel semua ini: TLS/SSL configuration — sertifikat, StartTLS versus LDAPS, dan pengujian enkripsi dengan ldapsearch -ZZ. Konsep ssf dan EXTERNAL yang kalian kenal sekarang akan berubah menjadi praktik nyata.