Documentation for a newer release is available. View Latest

Server Direktori

OpenLDAP

LDAP (Lightweight Directory Access Protocol) adalah sekumpulan protokol terbuka yang dipakai untuk mengakses informasi yang disimpan secara terpusat melalui jaringan. Itu berbasis pada standar X.500 untuk berbagi direktori, tapi kurang kompleks dan intensif sumber daya. Untuk alasan ini, LDAP kadang diacu sebagai "X.500 Lite".

Seperti X.500, LDAP mengatur informasi secara hirarkis menggunakan direktori. Direktori ini dapat menyimpan berbagai informasi seperti nama, alamat, atau nomor telepon, dan bahkan dapat digunakan dengan cara yang mirip dengan Network Information Service (NIS), memungkinkan siapa saja untuk mengakses akun mereka dari mesin apa pun di jaringan yang mendukung LDAP.

LDAP biasanya digunakan untuk pengguna dan grup yang dikelola secara terpusat, autentikasi pengguna, atau konfigurasi sistem. Ini juga dapat berfungsi sebagai direktori telepon virtual, memungkinkan pengguna untuk dengan mudah mengakses informasi kontak untuk pengguna lain. Selain itu, ia dapat merujuk pengguna ke server LDAP lain di seluruh dunia, dan dengan demikian menyediakan repositori informasi global ad-hoc. Namun, ini paling sering digunakan dalam organisasi individu seperti universitas, departemen pemerintah, dan perusahaan swasta.

Bagian ini mencakup instalasi dan konfigurasi OpenLDAP 2.4, implementasi open source dari protokol LDAPv2 dan LDAPv3.

Pengantar LDAP

Menggunakan arsitektur client-server, LDAP menyediakan sarana yang andal untuk membuat direktori informasi pusat yang dapat diakses dari jaringan. Ketika klien mencoba untuk mengubah informasi dalam direktori ini, server memverifikasi bahwa pengguna memiliki izin untuk membuat perubahan, dan kemudian menambahkan atau memperbarui entri seperti yang diminta. Untuk memastikan komunikasi aman, protokol kriptografi Transport Layer Security (TLS) dapat digunakan untuk mencegah penyerang mencegat transmisi.

Menggunakan Mozilla NSS

The OpenLDAP suite in Fedora Rawhide no longer uses OpenSSL. Instead, it uses the Mozilla implementation of Network Security Services (NSS). OpenLDAP continues to work with existing certificates, keys, and other TLS configuration. For more information on how to configure it to use Mozilla certificate and key database, see How do I use TLS/SSL with Mozilla NSS.

Server LDAP mendukung beberapa sistem basis data, yang memberi administrator fleksibilitas untuk memilih solusi yang paling cocok untuk jenis informasi yang mereka rencanakan untuk dilayani. Karena Application Programming Interface (API) klien yang terdefinisi dengan baik, jumlah aplikasi yang dapat berkomunikasi dengan server LDAP sangat banyak, dan meningkat baik dalam kuantitas maupun kualitas.

Terminologi LDAP

Berikut ini adalah daftar istilah khusus LDAP yang digunakan dalam bab ini:

entri

Satu unit dalam direktori LDAP. Setiap entri diidentifikasi oleh Distinguished Name uniknya (DN).

atribut

Informasi yang terkait langsung dengan entri. Misalnya, jika organisasi direpresentasikan sebagai entri LDAP, atribut yang terkait dengan organisasi ini mungkin menyertakan alamat, nomor faks, dll. Demikian pula, orang dapat direpresentasikan sebagai entri dengan atribut umum seperti nomor telepon pribadi atau alamat surel.

Atribut dapat memiliki nilai tunggal, atau daftar nilai yang dipisahkan spasi yang tidak berurutan. Sementara atribut tertentu bersifat opsional, yang lain diperlukan. Atribut yang diperlukan ditentukan menggunakan definisi objectClass, dan dapat ditemukan dalam berkas skema yang terletak di direktori /etc/openldap/slapd.d/cn=config/cn=schema/.
Penegasan atribut dan nilai yang sesuai juga disebut sebagai Relative Distinguished Name (RDN). Tidak seperti distinguished name yang unik secara global, relative distinguished name hanya unik per entri.

LDIF

LDAP Data Interchange Format (LDIF) adalah representasi teks biasa dari entri LDAP. Ini mengambil bentuk berikut:

id dn: distinguished_name
attribute_type: attribute_valueattribute_type: attribute_value…
…
+
  _id_ opsional adalah angka yang ditentukan oleh aplikasi yang digunakan
  untuk mengedit entri. Setiap entri dapat berisi pasangan _attribute_type_
  dan _attribute_value_ sebanyak yang diperlukan, selama semuanya
  didefinisikan dalam berkas skema yang sesuai. Baris kosong menunjukkan
  akhir entri.

Fitur OpenLDAP

Keluarga OpenLDAP menyediakan sejumlah fitur penting:

  • Dukungan LDAPv3 — Banyak perubahan dalam protokol sejak LDAP versi 2 dirancang untuk membuat LDAP lebih aman. Di antara peningkatan lainnya, ini termasuk dukungan untuk protokol Simple Authentication and Security Layer (SASL), Transport Layer Security (TLS), dan Secure Sockets Layer (SSL).

  • LDAP Di Atas IPC — Penggunaan komunikasi antar-proses (IPC) meningkatkan keamanan dengan menghilangkan kebutuhan untuk berkomunikasi melalui jaringan.

  • Dukungan IPv6 — OpenLDAP sesuai dengan Protokol Internet versi 6 (IPv6), generasi berikutnya dari Protokol Internet.

  • Dukungan LDIFv1 — OpenLDAP sepenuhnya sesuai dengan LDIF versi 1.

  • API C yang diperbarui — API C saat ini meningkatkan cara pemrogram dapat terhubung dan menggunakan server direktori LDAP.

  • Server LDAP Mandiri yang Disempurnakan — Ini termasuk sistem kontrol akses yang diperbarui, pooling thread, alat yang lebih baik, dan banyak lagi.

Penyiapan Server OpenLDAP

Langkah-langkah umum untuk menyiapkan server LDAP di Fedora adalah sebagai berikut:

  1. Pasang keluarga OpenLDAP. Lihat Memasang Keluarga OpenLDAP untuk informasi lebih lanjut tentang paket yang diperlukan.

  2. Sesuaikan konfigurasi seperti yang dijelaskan dalam Mengonfigurasi sebuah Server OpenLDAP.

  3. Mulai layanan slapd seperti yang dijelaskan dalam Menjalankan sebuah Server OpenLDAP.

  4. Gunakan utilitas ldapadd untuk menambahkan entri ke direktori LDAP.

  5. Gunakan utilitas ldapsearch untuk memverifikasi bahwa layanan slapd mengakses informasi dengan benar.

Memasang Keluarga OpenLDAP

Rangkaian pustaka dan alat OpenLDAP disediakan oleh paket berikut:

Tabel 1. Daftar paket OpenLDAP
Paket Deskripsi

openldap

Paket yang berisi pustaka yang diperlukan untuk menjalankan server OpenLDAP dan aplikasi klien.

openldap-clients

Paket yang berisi utilitas baris perintah untuk melihat dan memodifikasi direktori di server LDAP.

openldap-servers

Paket yang berisi layanan dan utilitas untuk mengonfigurasi dan menjalankan server LDAP. Ini termasuk Standalone LDAP Daemon, slapd.

openldap-servers-sql

Paket yang berisi modul dukungan SQL.

Selain itu, paket berikut biasanya digunakan bersama dengan server LDAP:

Tabel 2. Daftar paket LDAP tambahan yang umum dipasang
Paket Deskripsi

nss-pam-ldapd

Paket yang berisi nslcd, layanan nama LDAP lokal yang memungkinkan pengguna melakukan kueri LDAP lokal.

mod_ldap

Paket yang berisi modul mod_authnz_ldap dan mod_ldap. Modul mod_authnz_ldap adalah modul otorisasi LDAP untuk Server HTTP Apache. Modul ini dapat mengautentikasi kredensial pengguna terhadap direktori LDAP, dan dapat menerapkan kontrol akses berdasarkan nama pengguna, DN lengkap, keanggotaan grup, sebarang atribut, atau string filter lengkap. Modul mod_ldap yang terkandung dalam paket yang sama menyediakan cache memori bersama yang dapat dikonfigurasi, untuk menghindari akses direktori berulang di banyak permintaan HTTP, dan juga dukungan untuk SSL/TLS.

Untuk memasang paket, gunakan perintah dnf dalam bentuk berikut sebagai root:

dnf install package

Misalnya, untuk melakukan instalasi server LDAP dasar, ketik yang berikut ini pada prompt shell sebagai root:

~]# dnf install openldap openldap-clients openldap-servers

Perhatikan bahwa Anda harus memiliki hak istimewa pengguna super (yaitu, Anda harus masuk sebagai root) untuk menjalankan perintah ini. Untuk informasi selengkapnya tentang cara memasang paket baru di Fedora, lihat Memasang Paket.

Ringkasan Utilitas Server OpenLDAP

Untuk melakukan tugas administratif, paket openldap-servers memasang utilitas berikut bersama dengan layanan slapd:

Tabel 3. Daftar utilitas server OpenLDAP
Perintah Deskripsi

slapacl

Memungkinkan Anda memeriksa akses ke daftar atribut.

slapadd

Memungkinkan Anda menambahkan entri dari berkas LDIF ke direktori LDAP.

slapauth

Memungkinkan Anda memeriksa daftar ID untuk izin otorisasi dan autentikasi.

slapcat

Memungkinkan Anda menarik entri dari direktori LDAP dalam format baku dan menyimpannya dalam berkas LDIF.

slapdn

Memungkinkan Anda memeriksa daftar Distinguished Names (DN) berdasarkan sintaks skema yang tersedia.

slapindex

Memungkinkan Anda untuk mengindeks ulang direktori slapd berdasarkan konten saat ini. Jalankan utilitas ini setiap kali Anda mengubah opsi pengindeksan dalam berkas konfigurasi.

slappasswd

Memungkinkan Anda membuat kata sandi pengguna terenkripsi untuk digunakan dengan utilitas ldapmodify, atau di berkas konfigurasi slapd.

slapschema

Memungkinkan Anda untuk memeriksa kepatuhan basis data dengan skema yang sesuai.

slaptest

Memungkinkan Anda memeriksa konfigurasi server LDAP.

Untuk penjelasan terperinci tentang utilitas ini dan penggunaannya, lihat halaman manual yang sesuai seperti yang disebut dalam Dokumentasi Terpasang.

Pastikan berkas memiliki pemilik yang benar

Meskipun hanya root yang dapat menjalankan slapadd, layanan slapd berjalan sebagai pengguna ldap. Karena itu, server direktori tidak dapat memodifikasi berkas apa pun yang dibuat oleh slapadd. Untuk memperbaiki masalah ini, setelah menjalankan utilitas slapadd, ketik yang berikut ini pada prompt shell:

chown -R ldap:ldap /var/lib/ldap
Hentikan slapd sebelum menggunakan utilitas ini

Untuk menjaga integritas data, hentikan layanan slapd sebelum menggunakan slapadd, slapcat, atau slapindex. Anda dapat melakukannya dengan mengetikkan yang berikut ini pada prompt shell sebagai root:

~]# systemctl stop slapd.service

Untuk informasi selengkapnya tentang cara memulai, menghentikan, memulai ulang, dan memeriksa status layanan slapd saat ini, lihat Menjalankan suatu Server OpenLDAP.

Ringkasan Utilitas Klien OpenLDAP

Paket openldap-clients memasang utilitas berikut yang dapat digunakan untuk menambah, memodifikasi, dan menghapus entri di direktori LDAP:

Tabel 4. Daftar utilitas klien OpenLDAP
Perintah Deskripsi

ldapadd

Memungkinkan Anda menambahkan entri ke direktori LDAP, baik dari berkas, atau dari masukan standar. Ini adalah tautan simbolis ke ldapmodify -a.

ldapcompare

Memungkinkan Anda membandingkan atribut yang diberikan dengan entri direktori LDAP.

ldapdelete

Memungkinkan Anda menghapus entri dari direktori LDAP.

ldapexop

Memungkinkan Anda melakukan operasi LDAP yang diperluas.

ldapmodify

Memungkinkan Anda mengubah entri di direktori LDAP, baik dari berkas, atau dari masukan standar.

ldapmodrdn

Memungkinkan Anda mengubah nilai RDN dari entri direktori LDAP.

ldappasswd

Memungkinkan Anda menetapkan atau mengubah sandi untuk pengguna LDAP.

ldapsearch

Memungkinkan Anda menelusuri entri direktori LDAP.

ldapurl

Memungkinkan Anda menyusun atau memecah URL LDAP.

ldapwhoami

Memungkinkan Anda melakukan operasi whoami di server LDAP.

Dengan pengecualian ldapsearch, masing-masing utilitas ini lebih mudah digunakan dengan mereferensikan berkas yang berisi perubahan yang akan dibuat daripada mengetik perintah agar setiap entri diubah dalam direktori LDAP. Format berkas semacam itu diuraikan dalam halaman manual untuk setiap utilitas.

Ringkasan Aplikasi Klien LDAP Umum

Meskipun ada berbagai klien LDAP grafis yang mampu membuat dan memodifikasi direktori di server, tidak satu pun dari mereka yang termasuk dalam Fedora. Aplikasi populer yang dapat mengakses direktori dalam mode baca-saja termasuk Mozilla Thunderbird, Evolution, atau Ekiga.

Mengonfigurasi Server OpenLDAP

Secara baku, konfigurasi OpenLDAP disimpan di direktori /etc/openldap/. Tabel berikut menyoroti direktori dan berkas yang paling penting dalam direktori ini:

Tabel 5. Daftar berkas dan direktori konfigurasi OpenLDAP
Path Deskripsi

/etc/openldap/ldap.conf

Berkas konfigurasi untuk aplikasi klien yang menggunakan pustaka OpenLDAP. Ini termasuk ldapadd, ldapsearch, Evolution, dll.

/etc/openldap/slapd.d/

Direktori yang berisi konfigurasi slapd.

Perhatikan bahwa OpenLDAP tidak lagi membaca konfigurasinya dari berkas /etc/openldap/slapd.conf. Sebaliknya, ia menggunakan basis data konfigurasi yang terletak di direktori /etc/openldap/slapd.d/. Jika Anda memiliki berkas slapd.conf yang ada dari instalasi sebelumnya, Anda dapat mengonversinya ke format baru dengan menjalankan perintah berikut sebagai root:

~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

Konfigurasi slapd terdiri dari entri LDIF yang diatur dalam struktur direktori hirarkis, dan cara yang disarankan untuk mengedit entri ini adalah dengan menggunakan utilitas server yang dijelaskan dalam Ringkasan Utilitas Server OpenLDAP.

Jangan mengedit berkas LDIF secara langsung

Kesalahan dalam berkas LDIF dapat membuat layanan slapd tidak dapat dimulai. Karena itu, sangat disarankan agar Anda menghindari mengedit berkas LDIF di dalam /etc/openldap/slapd.d/ secara langsung.

Mengubah Konfigurasi Global

Opsi konfigurasi global untuk server LDAP disimpan dalam berkas /etc/openldap/slapd.d/cn=config.ldif. Direktif berikut biasanya digunakan:

olcAllows

Direktif olcAllows memungkinkan Anda menentukan fitur mana yang akan diaktifkan. Ini mengambil bentuk berikut:

olcAllows: feature

Ini menerima daftar fitur yang dipisahkan spasi seperti yang dijelaskan dalam Opsi olcAllows yang tersedia. Opsi baku adalah bind_v2.

Tabel 6. Opsi olcAllows yang tersedia
Opsi Deskripsi

bind_v2

Memungkinkan penerimaan permintaan pengikatan LDAP versi 2.

bind_anon_cred

Mengaktifkan ikatan anonim saat Distinguished Name (DN) kosong.

bind_anon_dn

Memungkinkan ikatan anonim ketika Distinguished Name (DN) tidak kosong.

update_anon

Memungkinkan pemrosesan operasi pembaruan anonim.

proxy_authz_anon

Memungkinkan pemrosesan kontrol otorisasi proksi anonim.

Contoh 1. Menggunakan direktif olcAllows
olcAllows: bind_v2 update_anon
olcConnMaxPending

Direktif olcConnMaxPending memungkinkan Anda menentukan jumlah maksimum permintaan yang tertunda untuk sesi anonim. Ini mengambil bentuk berikut:

olcConnMaxPending: number

Opsi baku adalah 100.

Contoh 2. Menggunakan direktif olcConnMaxPending
olcConnMaxPending: 100
olcConnMaxPendingAuth

Direktif olcConnMaxPendingAuth memungkinkan Anda menentukan jumlah maksimum permintaan yang tertunda untuk sesi yang diautentikasi. Mengambil bentuk berikut:

olcConnMaxPendingAuth: number

Opsi baku adalah 1000.

Contoh 3. Menggunakan direktif olcConnMaxPendingAuth
olcConnMaxPendingAuth: 1000
olcDisallows

Direktif olcDisallows memungkinkan Anda menentukan fitur mana yang akan dinonaktifkan. Mengambil bentuk berikut:

olcDisallows: feature

Ini menerima daftar fitur yang dipisahkan ruang seperti yang dijelaskan dalam Opsi olcDisallows yang tersedia. Tidak ada fitur yang dinonaktifkan secara baku.

Tabel 7. Opsi olcDisallows yang tersedia
Opsi Deskripsi

bind_anon

Menonaktifkan penerimaan permintaan ikatan anonim.

bind_simple

Menonaktifkan mekanisme otentikasi ikatan sederhana.

tls_2_anon

Menonaktifkan pemberlakuan sesi anonim saat perintah STARTTLS diterima.

tls_authc

Melarang perintah STARTTLS saat diautentikasi.

Contoh 4. Menggunakan direktif olcDisallows
olcDisallows: bind_anon
olcIdleTimeout

Direktif olcIdleTimeout memungkinkan Anda menentukan berapa detik untuk menunggu sebelum menutup koneksi menganggur. Mengambil bentuk berikut:

olcIdleTimeout: number

Opsi ini dinonaktifkan secara baku (yaitu, diatur ke 0).

Contoh 5. Menggunakan direktif olcIdleTimeout
olcIdleTimeout: 180
olcLogFile

Direktif olcLogFile memungkinkan Anda menentukan berkas untuk menulis pesan log. Mengambil bentuk berikut:

olcLogFile: file_name

Pesan log ditulis ke kesalahan standar secara baku.

Contoh 6. Menggunakan direktif olcLogFile
olcLogFile: /var/log/slapd.log
olcReferral

Opsi olcReferral memungkinkan Anda menentukan URL server untuk memproses permintaan jika server tidak dapat menanganinya. Mengambil bentuk berikut:

olcReferral: URL

Opsi ini dinonaktifkan secara baku.

Contoh 7. Menggunakan direktif olcReferral
olcReferral: ldap://root.openldap.org
olcWriteTimeout

Opsi olcWriteTimeout memungkinkan Anda menentukan berapa detik untuk menunggu sebelum menutup koneksi dengan permintaan tulis yang luar biasa. Mengambil bentuk berikut:

olcWriteTimeout

Opsi ini dinonaktifkan secara baku (yaitu, diatur ke 0).

Contoh 8. Menggunakan direktif olcWriteTimeout
olcWriteTimeout: 180

Mengubah Konfigurasi Spesifik Basis Data

Secara baku, server OpenLDAP menggunakan Berkeley DB (BDB) sebagai back end basis data. Konfigurasi untuk basis data ini disimpan dalam berkas /etc/openldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif. Direktif berikut ini biasanya digunakan dalam konfigurasi khusus basis data:

olcReadOnly

Direktif olcReadOnly memungkinkan Anda untuk menggunakan basis data dalam mode baca-saja. Mengambil bentuk berikut:

olcReadOnly: boolean

Ini menerima TRUE (aktifkan mode baca-saja), atau FALSE (aktifkan modifikasi basis data). Opsi baku adalah FALSE.

Contoh 9. Menggunakan direktif olcReadOnly
olcReadOnly: TRUE
olcRootDN

Direktif olcRootDN memungkinkan Anda menentukan pengguna yang tidak dibatasi oleh kontrol akses atau parameter batas administratif yang ditetapkan untuk operasi di direktori LDAP. Mengambil bentuk berikut:

olcRootDN: distinguished_name

Ini menerima Distinguished Name (* DN *). Opsi baku adalah cn=Manager,dn=my-domain,dc=com.

Contoh 10. Menggunakan direktif olcRootDN
olcRootDN: cn=root,dn=example,dn=com
olcRootPW

Direktif olcRootPW memungkinkan Anda untuk mengatur kata sandi untuk pengguna yang ditentukan menggunakan direktif olcRootDN. Mengambil bentuk berikut:

olcRootPW: password

Ini menerima string teks polos, atau hash. Untuk menghasilkan hash, ketik berikut ini pada prompt shell:

~]$ slappaswd
New password:
Re-enter new password:
{SSHA}WczWsyPEnMchFf1GRTweq2q7XJcvmSxD
Contoh 11. Menggunakan direktif olcRootPW
olcRootPW: \{SSHA}WczWsyPEnMchFf1GRTweq2q7XJcvmSxD
olcSuffix

Direktif olcSuffix memungkinkan Anda menentukan domain untuk memberikan informasi. Mengambil bentuk berikut:

olcSuffix: domain_name

Ini menerima fully qualified domain name (* FQDN *). Opsi baku adalah dc=my-domain,dc=com.

Contoh 12. Menggunakan direktif olcSuffix
olcSuffix: dc=example,dc=com

Memperluas Skema

Since OpenLDAP 2.3, the /etc/openldap/slapd.d/ directory also contains LDAP definitions that were previously located in /etc/openldap/schema/. It is possible to extend the schema used by OpenLDAP to support additional attribute types and object classes using the default schema files as a guide. However, this task is beyond the scope of this chapter. For more information on this topic, see http://www.openldap.org/doc/admin/schema.html.

Menjalin Koneksi yang Aman

Klien dan server OpenLDAP dapat diamankan menggunakan kerangka kerja Transport Layer Security (TLS). TLS adalah protokol kriptografi yang dirancang untuk memberikan keamanan komunikasi melalui jaringan. Seperti disebutkan di atas, OpenLDAP suite di Fedora menggunakan Mozilla NSS sebagai implementasi TLS.

To establish a secure connection using TLS, obtain the required certificates as described in How do I use TLS/SSL with Mozilla NSS. Then, a number of options must be configured on both the client and the server. At a minimum, a server must be configured with the Certificate Authority (CA) certificates and also its own server certificate and private key. The clients must be configured with the name of the file containing all the trusted CA certificates.

Biasanya, server hanya perlu menandatangani satu sertifikat CA. Klien mungkin ingin terhubung ke berbagai server aman, oleh karena itu adalah umum untuk menentukan daftar beberapa CA tepercaya dalam konfigurasinya.

Konfigurasi Server

Bagian ini mencantumkan direktif konfigurasi global untuk slapd yang perlu ditentukan dalam berkas /etc/openldap/slapd.d/cn=config.ldif pada server OpenLDAP untuk membuat TLS.

Sementara konfigurasi gaya lama menggunakan satu berkas, biasanya dipasang sebagai /usr/local/etc/openldap/slapd.conf, gaya baru menggunakan basis data back end slapd untuk menyimpan konfigurasi. Basis data konfigurasi biasanya berada di direktori /usr/local/etc/openldap/slapd.d/.

Direktif berikut juga berlaku untuk menetapkan SSL. Selain direktif TLS, Anda perlu mengaktifkan port yang didedikasikan untuk SSL di sisi server – biasanya itu adalah port 636. Untuk melakukannya, edit berkas /etc/sysconfig/slapd dan tambahkan string ldaps:/// ke daftar URL yang ditentukan dengan direktif SLAPD_URLS.

olcTLSCACertificateFile

Direktif olcTLSCACertificateFile menentukan berkas yang dikodekan dengan skema Privacy-Enhanced Mail (PEM) yang berisi sertifikat CA tepercaya. Direktif mengambil bentuk berikut:

olcTLSCACertificateFile: path

Ganti path dengan path ke berkas sertifikat CA, atau, jika Anda menggunakan Mozilla NSS, dengan nama sertifikat.

olcTLSCACertificatePath

Direktif olcTLSCACertificatePath menentukan path ke direktori yang berisi sertifikat CA individual dalam berkas terpisah. Direktori ini harus dikelola secara khusus dengan utilitas OpenSSL c_rehash yang menghasilkan tautan simbolis dengan nama hash yang mengarah ke berkas sertifikat yang sebenarnya. Secara umum, lebih mudah untuk menggunakan direktif olcTLSCACertificateFile sebagai gantinya.

Jika Mozilla NSS digunakan, olcTLSCACertificatePath menerima path ke basis data Mozilla NSS (seperti yang ditunjukkan dalam Memakai olcTLSCACertificatePath dengan Mozilla NSS). Dalam kasus seperti itu, c_rehash tidak diperlukan.
Direktif mengambil bentuk berikut:

olcTLSCACertificatePath: path

Ganti path dengan path ke direktori yang berisi berkas sertifikat CA, atau dengan path ke berkas basis data Mozilla NSS.

Contoh 13. Menggunakan olcTLSCACertificatePath dengan Mozilla NSS

Dengan Mozilla NSS, direktif olcTLSCACertificatePath menentukan path direktori yang berisi sertifikat NSS dan berkas basis data kunci. Misalnya:

olcTLSCACertificatePath: sql:/home/nssdb/sharednssdb

Perintah certutil digunakan untuk menambahkan sertifikat CA ke berkas basis data NSS ini:

certutil -d sql:/home/nssdb/sharednssdb -A -n "CA_certificate" -t CT,, -a -i certificate.pem

Perintah di atas menambahkan sertifikat CA yang disimpan dalam berkas berformat PEM bernama certificate.pem. Opsi -d menentukan direktori basis data yang berisi sertifikat dan berkas basis data kunci, opsi -n menetapkan nama untuk sertifikat, -t CT,, berarti bahwa sertifikat dipercaya untuk digunakan dalam klien dan server TLS. Opsi -A menambahkan sertifikat yang ada ke basis data sertifikat, opsi -a memungkinkan penggunaan format ASCII untuk masukan atau keluaran, dan opsi -i meneruskan berkas masukan certificate.pem ke perintah.

olcTLSCertificateFile

Direktif olcTLSCertificateFile menentukan berkas yang berisi sertifikat server slapd. Direktif mengambil bentuk berikut:

olcTLSCertificateFile: path

Ganti path dengan path ke berkas sertifikat server slapd, atau, jika Anda menggunakan Mozilla NSS, dengan nama sertifikat.

Contoh 14. Menggunakan olcTLSCertificateFile dengan Mozilla NSS

Saat menggunakan Mozilla NSS dengan berkas basis data sertifikat dan kunci yang ditentukan dengan direktif olcTLSCACertificatePath, olcTLSCertificateFile digunakan untuk menentukan nama sertifikat yang akan digunakan. Pertama, jalankan perintah berikut untuk melihat daftar sertifikat yang tersedia di berkas basis data NSS Anda:

certutil -d sql:/home/nssdb/sharednssdb -L

Pilih sertifikat dari daftar dan berikan namanya ke olcTLSCertificateFile. Misalnya:

olcTLSCertificateFile slapd_cert
olcTLSCertificateKeyFile

Direktif olcTLSCertificateKeyFile menentukan berkas yang berisi kunci privat yang cocok dengan sertifikat yang disimpan dalam berkas yang ditentukan dengan olcTLSCertificateFile. Perhatikan bahwa implementasi saat ini tidak mendukung kunci privat terenkripsi, dan oleh karena itu berkas yang memuat harus cukup dilindungi. Direktif mengambil bentuk berikut:

olcTLSCertificateKeyFile: path

Ganti path dengan path ke berkas kunci privat jika Anda menggunakan sertifikat PEM. Saat menggunakan Mozilla NSS, path adalah singkatan dari nama berkas yang berisi kata sandi untuk kunci untuk sertifikat yang ditentukan dengan direktif olcTLSCertificateFile (lihat Memakai olcTLSCertificateKeyFile dengan Mozilla NSS).

Contoh 15. Menggunakan olcTLSCertificateKeyFile dengan Mozilla NSS

Saat menggunakan Mozilla NSS, direktif ini menentukan nama berkas yang berisi kata sandi untuk kunci untuk sertifikat yang ditentukan dengan olcTLSCertificateFile:

olcTLSCertificateKeyFile: slapd_cert_key

Perintah modutil dapat digunakan untuk menonaktifkan perlindungan kata sandi atau untuk mengubah kata sandi untuk berkas basis data NSS. Misalnya:

modutil -dbdir sql:/home/nssdb/sharednssdb -changepw
Konfigurasi Klien

Tentukan perintah berikut dalam berkas konfigurasi /etc/openldap/ldap.conf pada sistem klien. Sebagian besar direktif ini sejajar dengan opsi konfigurasi server. Direktif in/etc/openldap/ldap.conf dikonfigurasi bagi seluruh sistem, namun, pengguna individu dapat menggantinya dalam berkas ~/.ldaprc mereka.

Direktif yang sama dapat digunakan untuk membuat koneksi SSL. String ldaps:// harus digunakan sebagai pengganti ldap:// dalam perintah OpenLDAP seperti ldapsearch. Ini memaksa perintah untuk menggunakan port baku untuk SSL, port 636, dikonfigurasi di server.

TLS_CACERT

Direktif TLS_CACERT menentukan berkas yang berisi sertifikat untuk semua Otoritas Sertifikat yang akan dikenali klien. Ini setara dengan direktif olcTLSCACertificateFile di server. TLS_CACERT harus selalu ditentukan sebelum TLS_CACERTDIR di /etc/openldap/ldap.conf. Direktif mengambil bentuk berikut:

TLS_CACERT path

Ganti path dengan path ke berkas sertifikat CA.

TLS_CACERTDIR

Direktif TLS_CACERTDIR menentukan path ke direktori yang berisi sertifikat Otoritas Sertifikat dalam berkas terpisah. Seperti halnya olcTLSCACertificatePath di server, direktori yang ditentukan harus dikelola dengan utilitas OpenSSL c_rehash. Path ke berkas basis data Mozilla NSS juga diterima, c_rehash tidak diperlukan dalam kasus seperti itu. Direktif mengambil bentuk berikut:

TLS_CACERTDIR directory

Ganti directory dengan path ke direktori yang berisi berkas sertifikat CA. Dengan Mozilla NSS, directory adalah singkatan dari path ke sertifikat atau berkas basis data kunci.

TLS_CERT

TLS_CERT menentukan berkas yang berisi sertifikat klien. Direktif ini hanya dapat ditentukan dalam berkas ~/.ldaprc pengguna. Dengan Mozilla NSS, direktif ini menentukan nama sertifikat yang akan dipilih dari basis data yang ditentukan dengan direktif TLS_CACERTDIR yang disebutkan di atas. Direktif mengambil bentuk berikut:

TLS_CERT path

Ganti path dengan path ke berkas sertifikat klien, atau dengan nama sertifikat dari basis data NSS.

TLS_KEY

TLS_KEY menentukan berkas yang berisi kunci privat yang cocok dengan sertifikat yang disimpan dalam berkas yang ditentukan dengan direktif TLS_CERT. Seperti halnya olcTLSCertificateFile di server, berkas kunci terenkripsi tidak didukung, sehingga berkas itu sendiri harus dilindungi dengan hati-hati. Opsi ini hanya dapat dikonfigurasi dalam berkas ~/.ldaprc pengguna.

Saat menggunakan Mozilla NSS, TLS_KEY menentukan nama berkas yang berisi kata sandi untuk kunci pribadi yang melindungi sertifikat yang ditentukan dengan direktif TLS_CERT. Demikian pula dengan direktif olcTLSCertificateKeyFile di server (lihat Memakai olcTLSCertificateKeyFile dengan Mozilla NSS), Anda dapat menggunakan perintah modutil untuk mengelola kata sandi ini.
Direktif [opsi] TLS_KEY mengambil bentuk berikut:

TLS_KEY path

Ganti path dengan path ke berkas sertifikat klien atau dengan nama berkas kata sandi di basis data NSS.

Menyiapkan Replikasi

Replikasi adalah proses menyalin pembaruan dari satu server LDAP (provider) ke satu atau beberapa server atau klien lain (konsumen). Penyedia mereplikasi pembaruan direktori kepada konsumen, pembaruan yang diterima dapat disebarkan lebih lanjut oleh konsumen ke server lain, sehingga konsumen juga dapat bertindak secara bersamaan sebagai penyedia. Selain itu, konsumen tidak harus menjadi server LDAP, mungkin hanya klien LDAP. Di OpenLDAP, Anda dapat menggunakan beberapa mode replikasi, yang paling menonjol adalah mirror dan sync. Untuk informasi selengkapnya tentang mode replikasi OpenLDAP, lihat Panduan Administrator Perangkat Lunak OpenLDAP yang dipasang dengan paket openldap-servers (lihat Dokumentasi Terpasang).

Untuk mengaktifkan mode replikasi yang dipilih, gunakan salah satu direktif berikut di /etc/openldap/slapd.d/ pada penyedia dan konsumen.

olcMirrorMode

Direktif olcMirrorMode memungkinkan mode replikasi cermin. Ini mengambil bentuk berikut:

olcMirrorMode on

Opsi ini perlu ditentukan baik pada penyedia maupun konsumen. Juga serverID harus ditentukan bersama dengan opsi syncrepl. Temukan contoh terperinci di bagian 18.3.4. MirrorMode dari Panduan Administrator Perangkat Lunak OpenLDAP (lihat Dokumentasi Terpasang).

olcSyncrepl

Direktif olcSyncrepl memungkinkan mode replikasi sinkronisasi. Ini mengambil bentuk berikut:

olcSyncrepl on

Mode replikasi sinkronisasi memerlukan konfigurasi khusus pada penyedia dan konsumen. Konfigurasi ini dijelaskan secara menyeluruh dalam Bagian 18.3.1. Syncrepl dari Panduan Administrator Perangkat Lunak OpenLDAP (lihat Dokumentasi Terpasang).

Memuat Modul dan Backend

Anda dapat meningkatkan layanan slapd dengan modul yang dimuat secara dinamis. Dukungan untuk modul-modul ini harus diaktifkan dengan opsi --enable-modules saat mengonfigurasi slapd. Modul disimpan dalam berkas dengan ekstensi .la:

module_name.la

Backends menyimpan atau mengambil data sebagai respons terhadap permintaan LDAP. Backend dapat dikompilasi secara statis menjadi slapd, atau ketika dukungan modul diaktifkan, mereka dapat dimuat secara dinamis. Dalam kasus terakhir, konvensi penamaan berikut diterapkan:

back_backend_name.la

Untuk memuat modul atau backend, gunakan direktif berikut di /etc/openldap/slapd.d/:

olcModuleLoad

Direktif olcModuleLoad menentukan modul yang dapat dimuat secara dinamis untuk dimuat. Ini mengambil bentuk berikut:

olcModuleLoad: module

Di sini, module adalah singkatan dari berkas yang berisi modul, atau backend, yang akan dimuat.

Kebijakan SELinux untuk Aplikasi yang Menggunakan LDAP

SELinux adalah implementasi dari mekanisme mandatory access control di kernel Linux. Secara baku, SELinux mencegah aplikasi mengakses server OpenLDAP. Untuk mengaktifkan autentikasi melalui LDAP, yang diperlukan oleh beberapa aplikasi, SELinux Boolean allow_ypbind perlu diaktifkan. Aplikasi tertentu juga menuntut Boolean authlogin_nsswitch_use_ldap yang diaktifkan dalam skenario ini. Jalankan perintah berikut untuk mengaktifkan Boolean yang disebutkan di atas:

~]# setsebool -P allow_ypbind=1
~]# setsebool -P authlogin_nsswitch_use_ldap=1

Opsi -P membuat pengaturan ini persisten antar reboot sistem. Lihat tautan:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/[Panduan Pengguna dan Administrator SELinux Red Hat Enterprise Linux 7] untuk informasi lebih rinci tentang SELinux.

Menjalankan Server OpenLDAP

Bagian ini menjelaskan cara memulai, menghentikan, memulai ulang, dan memeriksa status saat ini dari Daemon LDAP Mandiri. Untuk informasi selengkapnya tentang cara mengelola layanan sistem secara umum, lihat Layanan dan Daemon.

Memulai Layanan

Untuk memulai layanan slapd di sesi saat ini, ketik berikut ini pada prompt shell sebagai root:

~]# systemctl start slapd.service

Untuk mengonfigurasi layanan agar memulai secara otomatis pada waktu boot, gunakan perintah berikut sebagai root:

~]# systemctl enable slapd.service

Lihat Layanan dan Daemon untuk informasi selengkapnya tentang cara mengonfigurasi layanan di Fedora.

Menghentikan Layanan

Untuk menghentikan layanan slapd yang sedang berjalan di sesi saat ini, ketik berikut ini pada prompt shell sebagai root:

~]# systemctl stop slapd.service

Untuk mencegah layanan dimulai secara otomatis pada waktu boot, ketik sebagai root:

~]# systemctl disable slapd.service
rm `/etc/systemd/system/multi-user.target.wants/slapd.service`

Lihat Layanan dan Daemon untuk informasi selengkapnya tentang cara mengonfigurasi layanan di Fedora.

Memulai Ulang Layanan

Untuk memulai ulang layanan slapd yang sedang berjalan, ketik berikut ini pada prompt shell sebagai root:

~]# systemctl restart slapd.service

Ini menghentikan layanan dan seketika memulainya lagi. Gunakan perintah ini untuk memuat ulang konfigurasi.

Memverifikasi Status Layanan

Untuk memverifikasi bahwa layanan slapd sedang berjalan, ketik berikut ini pada prompt shell:

~]$ systemctl is-active slapd.service
active

Mengonfigurasi Sistem untuk Mengautentikasi Menggunakan OpenLDAP

Untuk mengonfigurasi sistem agar mengautentikasi menggunakan OpenLDAP, pastikan bahwa paket yang sesuai dipasang pada server LDAP dan komputer klien. Untuk informasi tentang cara menyiapkan server, ikuti petunjuk di Memasang Keluarga OpenLDAP dan Mengonfigurasi Server OpenLDAP. Pada klien, ketik yang berikut ini pada prompt shell sebagai root:

~]# dnf install openldap openldap-clients nss-pam-ldapd

Memigrasikan Informasi Autentikasi Lama ke Format LDAP

Paket migrationtools menyediakan satu set skrip shell dan Perl untuk membantu Anda memigrasikan informasi autentikasi ke dalam format LDAP. Untuk memasang paket ini, ketik yang berikut ini pada prompt shell sebagai root:

~]# dnf install migrationtools

Ini akan memasang skrip ke direktori /usr/share/migrationtools/. Setelah terpasang, edit berkas /usr/share/migrationtools/migrate_common.ph dan ubah baris berikut untuk mencerminkan domain yang benar, misalnya:

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "example.com";

# Default base
$DEFAULT_BASE = "dc=example,dc=com";

Atau, Anda dapat menentukan variabel lingkungan langsung pada baris perintah. Misalnya, untuk menjalankan skrip migrate_all_online.sh dengan basis baku yang diatur ke dc=example,dc=com, ketik:

~]# export DEFAULT_BASE="dc=example,dc=com" \
/usr/share/migrationtools/migrate_all_online.sh

Untuk memutuskan skrip mana yang akan dijalankan untuk memigrasikan basis data pengguna, lihat Skrip migrasi LDAP yang umum digunakan.

Tabel 8. Skrip migrasi LDAP yang umum digunakan
Layanan Nama yang Ada Apakah LDAP Berjalan? Skrip untuk Digunakan

berkas flat /etc

ya

migrate_all_online.sh

berkas flat /etc

tidak

migrate_all_offline.sh

NetInfo

ya

migrate_all_netinfo_online.sh

NetInfo

tidak

migrate_all_netinfo_offline.sh

NIS (YP)

ya

migrate_all_nis_online.sh

NIS (YP)

tidak

migrate_all_nis_offline.sh

Untuk informasi selengkapnya tentang cara menggunakan skrip ini, lihat berkas README dan migration-tools.txt di direktori /usr/share/doc/migrationtools/.

Sumber Daya Tambahan

Sumber daya berikut menawarkan informasi tambahan tentang Lightweight Directory Access Protocol. Sebelum mengonfigurasi LDAP di sistem, sangat disarankan agar Anda meninjau sumber daya ini, terutama citetitle]Panduan Administrator Perangkat Lunak OpenLDAP.

Dokumentasi Terpasang

Dokumentasi berikut dipasang dengan paket openldap-servers:

  • /usr/share/doc/openldap-servers/guide.html — Salinan [citetitle]_Panduan Administrator Perangkat Lunak OpenLDAP.

  • /usr/share/doc/openldap-servers/README.schema — Berkas README yang berisi deskripsi berkas skema yang dipasang.

Selain itu, ada juga sejumlah halaman manual yang dipasang dengan paket openldap, openldap-servers, dan openldap-clients:

Aplikasi Klien

  • ldapadd(1) — Halaman manual untuk perintah ldapadd menjelaskan cara menambahkan entri ke direktori LDAP.

  • ldapdelete(1) — Halaman manual untuk perintah ldapdelete menjelaskan cara menghapus entri dalam direktori LDAP.

  • ldapmodify(1) — Halaman manual untuk perintah ldapmodify menjelaskan cara mengubah entri dalam direktori LDAP.

  • ldapsearch(1) — Halaman manual untuk perintah ldapsearch menjelaskan cara menelusuri entri dalam direktori LDAP.

  • ldappasswd(1) — Halaman manual untuk perintah ldappasswd menjelaskan cara menyetel atau mengubah kata sandi pengguna LDAP.

  • ldapcompare(1) — Menjelaskan cara menggunakan alat ldapcompare.

  • ldapwhoami(1) — Menjelaskan cara menggunakan alat ldapwhoami.

  • ldapmodrdn(1) — Menjelaskan cara memodifikasi RDN entri.

Aplikasi Server

  • slapd(8C) — Menjelaskan opsi baris perintah untuk server LDAP.

Aplikasi Administratif

  • slapadd(8C) — Menjelaskan opsi baris perintah yang digunakan untuk menambahkan entri ke basis data slapd.

  • slapcat(8C) — Menjelaskan opsi baris perintah yang digunakan untuk menghasilkan berkas LDIF dari basis data slapd.

  • slapindex(8C) — Menjelaskan opsi baris perintah yang digunakan untuk meregenerasi indeks berdasarkan konten basis data slapd.

  • slappasswd(8C) — Menjelaskan opsi baris perintah yang digunakan untuk membuat sandi pengguna untuk direktori LDAP.

Berkas Konfigurasi

  • ldap.conf(5) — Halaman manual untuk berkas ldap.conf menjelaskan format dan opsi yang tersedia dalam berkas konfigurasi untuk klien LDAP.

  • slapd-config(5) — Menjelaskan format dan opsi yang tersedia dalam direktori konfigurasi /etc/openldap/slapd.d.

Dokumentasi Daring
http://www.openldap.org/doc/admin24/

Versi saat ini dari Panduan Administrator Perangkat Lunak OpenLDAP.

http://www.kingsmountain.com/ldapRoadmap.shtml

LDAP Roadmap &FAQ dari Jeff Hodges yang berisi tautan ke beberapa sumber daya yang berguna dan berita yang muncul mengenai protokol LDAP.

http://www.ldapman.org/articles/

Kumpulan artikel yang menawarkan pengenalan LDAP yang baik, termasuk metode untuk merancang pohon direktori dan menyesuaikan struktur direktori.

http://www.padl.com/

Situs web pengembang beberapa alat LDAP yang berguna.

OpenLDAP by Example oleh John Terpstra dan Benjamin Coles; Prentice Hall.

Kumpulan latihan praktis dalam penggelaran OpenLDAP.

Implementing LDAP oleh Mark Wilcox; Wrox Press, Inc.

Sebuah buku yang mencakup LDAP dari perspektif administrator sistem dan pengembang perangkat lunak.

Understanding and Deploying LDAP Directory Services oleh Tim Howes dkk.; Macmillan Technical Publishing.

Buku yang mencakup prinsip-prinsip desain LDAP, serta penggelarannya di lingkungan produksi.