Cara Menginstal Server OpenLDAP untuk Otentikasi Terpusat


Protokol Akses Direktori Ringan (singkatnya LDAP) adalah serangkaian protokol standar industri, ringan, dan banyak digunakan untuk mengakses layanan direktori. Layanan direktori adalah infrastruktur informasi bersama untuk mengakses, mengelola, mengatur, dan memperbarui item sehari-hari dan sumber daya jaringan, seperti pengguna, grup, perangkat, alamat email, nomor telepon, volume, dan banyak objek lainnya.

Model informasi LDAP didasarkan pada entri. Entri dalam direktori LDAP mewakili satu unit atau informasi dan diidentifikasi secara unik dengan apa yang disebut Nama Khusus (DN). Setiap atribut entri memiliki tipe dan satu atau lebih nilai.

Atribut adalah sepotong informasi yang terkait dengan suatu entri. Jenisnya biasanya berupa string mnemonik, seperti “cn” untuk nama umum, atau “mail” untuk alamat email. Setiap atribut diberi satu atau lebih nilai yang terdiri dari daftar yang dipisahkan spasi.

Berikut adalah ilustrasi bagaimana informasi disusun dalam direktori LDAP.

Dalam artikel ini, kami akan menunjukkan cara memasang dan mengonfigurasi server OpenLDAP untuk autentikasi terpusat di Ubuntu 16.04/18.04 dan CentOS 7.

Langkah 1: Menginstal Server LDAP

1. Pertama, mulailah dengan menginstal OpenLDAP, implementasi open source dari LDAP dan beberapa utilitas pengelolaan LDAP tradisional menggunakan perintah berikut.

yum install openldap openldap-servers	    #CentOS 7
sudo apt install slapd ldap-utils	    #Ubuntu 16.04/18.04

Di Ubuntu, selama instalasi paket, Anda akan diminta memasukkan kata sandi untuk entri admin di direktori LDAP Anda, menetapkan kata sandi yang aman dan mengonfirmasikannya.

Ketika instalasi selesai, Anda dapat memulai layanan seperti yang dijelaskan selanjutnya.

2. Pada CentOS 7, jalankan perintah berikut untuk memulai daemon server openldap, aktifkan untuk memulai secara otomatis pada waktu boot dan periksa apakah sudah aktif dan berjalan (di Ubuntu layanan harus dimulai secara otomatis di bawah systemd, Anda cukup memeriksa statusnya):

sudo systemctl start slapd
sudo systemctl enable slapd
sudo systemctl status slapd

3. Selanjutnya, izinkan permintaan ke daemon server LDAP melalui firewall seperti yang ditunjukkan.

firewall-cmd --add-service=ldap    #CentOS 7
sudo ufw allow ldap                #Ubuntu 16.04/18.04

Langkah 2: Mengonfigurasi Server LDAP

Catatan: Tidak disarankan untuk mengedit konfigurasi LDAP secara manual, Anda perlu menambahkan konfigurasi dalam file dan menggunakan ldapadd atau < perintahldapmodify untuk memuatnya ke direktori LDAP seperti yang ditunjukkan di bawah ini.

4. Sekarang buat pengguna administratif OpenLDAP dan tetapkan kata sandi untuk pengguna tersebut. Pada perintah di bawah ini, nilai hash dibuat untuk kata sandi yang diberikan, catatlah, Anda akan menggunakannya dalam file konfigurasi LDAP.

slappasswd

5. Kemudian buat file LDIF (ldaprootpasswd.ldif) yang digunakan untuk menambahkan entri ke direktori LDAP.

sudo vim ldaprootpasswd.ldif

Tambahkan konten berikut di dalamnya:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD_CREATED

menjelaskan pasangan nilai atribut di atas:

  • olcDatabase: menunjukkan nama instance database tertentu dan biasanya dapat ditemukan di dalam /etc/openldap/slapd.d/cn=config.
  • cn=config: menunjukkan opsi konfigurasi global.
  • PASSWORD: adalah string hash yang diperoleh saat membuat pengguna administratif.

6. Selanjutnya, tambahkan entri LDAP yang sesuai dengan menentukan URI yang merujuk ke server ldap dan file di atas.

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif  

Langkah 3: Mengonfigurasi Basis Data LDAP

7. Sekarang salin contoh file konfigurasi database untuk slapd ke direktori /var/lib/ldap, dan atur izin yang benar pada file tersebut .

sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
sudo chown -R ldap:ldap /var/lib/ldap/DB_CONFIG
sudo systemctl restart slapd

8. Selanjutnya, impor beberapa skema LDAP dasar dari direktori /etc/openldap/schema sebagai berikut.

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif 
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

9. Sekarang tambahkan domain Anda di database LDAP dan buat file bernama ldapdomain.ldif untuk domain Anda.

sudo vim ldapdomain.ldif 

Tambahkan konten berikut di dalamnya (ganti contoh dengan domain dan PASSWORD Anda dengan nilai hash yang diperoleh sebelumnya):

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=example,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read

10. Kemudian tambahkan konfigurasi di atas ke database LDAP dengan perintah berikut.

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif

11. Pada langkah ini, kita perlu menambahkan beberapa entri ke direktori LDAP. Buat file lain bernama baseldapdomain.ldif dengan konten berikut.

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: example com
dc: example

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group 

Simpan file lalu tambahkan entri ke direktori LDAP.

sudo ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f baseldapdomain.ldif

12. Langkah selanjutnya adalah membuat pengguna LDAP misalnya contoh, tecmint, dan menetapkan sandi untuk pengguna ini sebagai berikut.

sudo useradd tecmint
sudo passwd tecmint

13. Kemudian buat definisi untuk grup LDAP dalam file bernama ldapgroup.ldif dengan konten berikut.

dn: cn=Manager,ou=Group,dc=example,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1005

Dalam konfigurasi di atas, gidNumber adalah GID di /etc/group untuk tecmint dan menambahkannya ke OpenLDAP direktori.

sudo ldapadd -Y EXTERNAL -x  -W -D "cn=Manager,dc=example,dc=com" -f ldapgroup.ldif

14. Selanjutnya, buat file LDIF lainnya bernama ldapuser.ldif dan tambahkan definisi untuk tecmint pengguna.

dn: uid=tecmint,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tecmint
uid: tecmint
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/tecmint
userPassword: {SSHA}PASSWORD_HERE
loginShell: /bin/bash
gecos: tecmint
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

lalu muat konfigurasi ke direktori LDAP.

ldapadd -Y EXTERNAL  -x -D cn=Manager,dc=example,dc=com -W -f  ldapuser.ldif

Setelah Anda menyiapkan server pusat untuk autentikasi, bagian terakhirnya adalah mengaktifkan klien untuk mengautentikasi menggunakan LDAP seperti yang dijelaskan dalam panduan ini:

  1. Cara Mengonfigurasi Klien LDAP untuk Menghubungkan Otentikasi Eksternal

Untuk informasi lebih lanjut, lihat dokumentasi yang sesuai dari katalog dokumen Perangkat Lunak OpenLDAP dan pengguna Ubuntu dapat merujuk ke panduan server OpenLDAP.

Ringkasan

OpenLDAP adalah implementasi LDAP sumber terbuka di Linux. Pada artikel ini, kami telah menunjukkan cara menginstal dan mengkonfigurasi server OpenLDAP untuk otentikasi terpusat, di Ubuntu 16.04/18.04 dan CentOS 7. Jika Anda memiliki pertanyaan atau pemikiran untuk dibagikan, jangan ragu untuk menghubungi kami melalui formulir komentar di bawah.