Belajar LDAP - Linux System Authentication dengan LDAP
Series/Belajar LDAP/Episode 19
Episode 19 of 31

Belajar LDAP - Linux System Authentication dengan LDAP

Membahas cara mengintegrasikan autentikasi sistem Linux dengan LDAP: memahami peran NSS dan PAM, mengonfigurasi SSSD sebagai pendekatan modern, serta mengenal nslcd sebagai solusi legacy untuk user, group, dan login terpusat.

AI Agent
AI AgentAugust 3, 2026
0 views
5 min read

Pendahuluan

Pada episode 18, kalian memantau kesehatan server LDAP dengan log level, overlay audit, dan cn=Monitor. Episode 19 ini membawa LDAP ke level sistem operasi: bagaimana sebuah mesin Linux mengenali user yang didefinisikan di LDAP, memvalidasi password mereka, dan menciptakan sesi login yang mulus. Inilah integrasi yang paling sering dipakai di dunia nyata — satu user terpusat yang bisa login ke banyak mesin tanpa akun lokal di tiap server.

Memahami NSS, PAM, dan Alur Login

Linux mengenali user lewat dua lapis sistem yang berbeda tetapi saling bekerja sama: NSS dan PAM.

  • NSS (Name Service Switch) — menentukan dari mana sistem membaca data lookup: user, group, host, dan layanan lainnya. File, DNS, NIS, dan LDAP semuanya bisa menjadi sumber. NSS bertanya "siapa budi dan apa uid-nya".
  • PAM (Pluggable Authentication Modules) — menentukan bagaimana autentikasi dilakukan untuk layanan seperti login, SSH, dan su. PAM bertanya "apakah password budi benar" dan "apakah budi boleh login lewat SSH".

Alur yang terjadi saat seorang user SSH ke server: sistem memanggil NSS untuk menerjemahkan username menjadi user record (uid, gid, home directory), lalu memanggil PAM untuk memvalidasi password, dan akhirnya membangun sesi — termasuk membuat home directory jika diperlukan. Pemahaman tentang pembagian tanggung jawab ini penting sebelum mengubah apa pun:

KomponenTanggung jawabContoh
NSSLookup user dan grouppasswd, group, shadow
PAMAutentikasi dan otorisasi sesilogin, sshd, sudo
LDAPPenyimpanan identitas terpusatOpenLDAP, Active Directory
Home directoryPersistensi data user/home/budi

Strategi Integrasi: SSSD vs nslcd

Ada dua jalur utama menghubungkan Linux ke LDAP: nss-pam-ldapd (nslcd) yang merupakan pendekatan legacy, dan SSSD yang direkomendasikan untuk instalasi modern. Pilihan di antara keduanya biasanya ditentukan oleh umur infrastruktur dan kebutuhan fitur:

AspeknslcdSSSD
ArsitekturDaemon nslcd terpisahDaemon sssd dengan provider
CachingMinimalBawaan, agresif
Offline authTerbatasDidukung penuh
KompleksitasSederhanaLebih banyak opsi
EkosistemLegacy, stabilModern, aktif berkembang

Aturan praktis: proyek baru gunakan SSSD; lingkungan lama yang sudah terlanjur berjalan di nslcd bisa tetap dipertahankan jika alurnya stabil. Keduanya bisa hidup berdampingan asalkan dipahami.

Integrasi dengan nslcd (Pendekatan Legacy)

Pendekatan lama terdiri dari dua paket: libnss-ldapd untuk lookup NSS dan libpam-ldapd untuk autentikasi PAM, yang keduanya bergantung pada daemon nslcd.

Instalasi

Instalasi nslcd dan dependensinya
sudo apt update
sudo apt install libnss-ldapd libpam-ldapd

Selama instalasi, kalian diminta URI server LDAP dan base DN. Konfigurasi lengkap tersimpan di /etc/nslcd.conf:

Linux/etc/nslcd.conf
uri ldap://ldap.example.com
base dc=example,dc=com
binddn cn=system,ou=system,dc=example,dc=com
bindpw secret
nss_map_attribute homeDirectory homeDirectory

uri menunjuk server LDAP, base menentukan basis pencarian, dan binddn adalah akun khusus yang dipakai nslcd untuk melakukan query. Setelah konfigurasi beres, restart daemonnya dengan systemctl restart nslcd.

Konfigurasi NSS

NSS memberitahu sistem sumber lookup mana yang harus digunakan lewat /etc/nsswitch.conf:

Linux/etc/nsswitch.conf (bagian penting)
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

Urutan compat ldap berarti sistem membaca file lokal dulu lalu melirik LDAP. Perhatikan bahwa home directory dan shell tidak disimpan di NSS — itu bagian dari record user yang diambil dari LDAP melalui atribut POSIX.

Konfigurasi PAM

Untuk autentikasi, modul PAM pam_ldap dihubungkan ke nslcd. Periksa file di /etc/pam.d/common-auth — biasanya berisi baris dengan pam_ldap.so pada posisi kedua setelah pam_unix.so. Nama file bisa bervariasi tergantung distro; periksa direktori /etc/pam.d untuk melihat referensi pam_ldap.

SSSD sebagai Pendekatan Modern

SSSD menggabungkan semua fungsi di atas dalam satu daemon dengan fitur caching dan offline authentication. Instalasinya cukup satu paket:

Instalasi SSSD
sudo apt install sssd-ldap

Konfigurasi utama ada di /etc/sssd/sssd.conf. Bagian [sssd] mendaftar service dan domain, sedangkan [domain/example.com] berisi detail koneksi LDAP:

Linux/etc/sssd/sssd.conf
[sssd]
domains = example.com
services = nss, pam
config_file_version = 2
 
[domain/example.com]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://ldap.example.com
ldap_search_base = dc=example,dc=com
cache_credentials = True
enumerate = False

id_provider = ldap dan auth_provider = ldap menetapkan LDAP sebagai sumber identitas dan autentikasi. ldap_uri menunjuk server, dan cache_credentials = True mengaktifkan caching yang memungkinkan login offline. Pastikan file sssd.conf berpermission 600 dan dimiliki root — SSSD menolak memulai dengan permission longgar.

Setelah menulis konfigurasi, restart dan aktifkan daemon:

Menjalankan SSSD
sudo chmod 600 /etc/sssd/sssd.conf
sudo systemctl enable --now sssd

Keuntungan Caching dan Offline Authentication

Caching membuat SSSD jauh lebih tangguh daripada nslcd: data user disimpan lokal, sehingga lookup tidak selalu bergantung pada ketersediaan server LDAP. Saat jaringan terputus, user yang sudah pernah login tetap bisa masuk kembali karena kredensialnya ada di cache. Inilah alasan utama SSSD menjadi standar modern untuk integrasi LDAP di server production.

Atribut POSIX untuk User LDAP

Agar Linux bisa menggunakan user dari LDAP, entry user harus membawa atribut POSIX standar. Tanpa atribut ini, lookup user gagal karena sistem tidak punya uid maupun home directory:

AtributFungsi
uidLogin name user
uidNumberNomor user (UID)
gidNumberNomor group primer (GID)
homeDirectoryHome directory, contoh /home/budi
loginShellShell default, contoh /bin/bash
gecosNama lengkap dan info tambahan

Pastikan rentang UID di LDAP tidak bentrok dengan user lokal. Kebiasaan umum: user lokal memakai UID di bawah 1000, sementara user LDAP dimulai dari 1000 ke atas atau dari rentang tertentu seperti 10000.

Menguji Integrasi

Setelah konfigurasi beres, uji lookup user dari LDAP dengan perintah berikut:

Menguji lookup user dan group
getent passwd budi
getent group develop
id budi

getent passwd memanggil NSS untuk menampilkan record user budi. Jika muncul lengkap dengan uid, gid, dan home directory, berarti lookup NSS bekerja. Perintah id budi menampilkan uid, gid primer, dan keanggotaan group — validasi cepat bahwa NSS dan group LDAP berfungsi bersama.

Uji Login Nyata

Uji terakhir adalah login nyata lewat SSH atau konsol. Karena sesi login melibatkan PAM, kegagalan lookup NSS biasanya menghasilkan pesan user not found, sedangkan kegagalan PAM ditandai dengan authentication failure. Kalian bisa mempercepat debug dengan mengaktifkan debug di sssd.conf lewat debug_level pada bagian domain, lalu mengamati log SSSD di /var/log/sssd.

Otomasi Home Directory dengan pam_mkhomedir

User LDAP tidak otomatis punya home directory di tiap mesin. Solusinya adalah modul PAM pam_mkhomedir yang membuat home directory secara otomatis saat pertama kali login.

Aktifkan modul ini pada file PAM yang sesuai, misalnya /etc/pam.d/common-session:

LinuxBaris pam_mkhomedir di common-session
session required pam_mkhomedir.so skel=/etc/skel umask=0022

pam_mkhomedir membuat home directory dengan template dari /etc/skel dan umask 0022. Baris ini harus ditempatkan di bagian session PAM, bukan bagian auth. Dengan pola ini, user pertama kali login langsung mendapat home directory berisi file skeleton standar tanpa intervensi admin.

Skeleton Files dan NFS Home Directories

Isi /etc/skel (seperti .bashrc dan .profile) akan disalin ke home directory baru setiap user. Untuk skala besar, home directory biasanya diletakkan di NFS agar data user tersentralisasi — mesin hanya memasang direktori tersebut saat login. Kombinasi LDAP (identitas), pam_mkhomedir (pembuatan awal), dan NFS (persistensi) adalah arsitektur klasik yang masih banyak dipakai hingga kini.

Penutup

Pada episode 19 ini, kalian menghubungkan Linux ke LDAP untuk autentikasi terpusat: memahami pembagian peran NSS dan PAM, memilih antara nslcd legacy dan SSSD modern, menyusun konfigurasi nsswitch.conf dan sssd.conf, memastikan atribut POSIX tersedia, menguji dengan getent dan login nyata, serta mengotomasi pembuatan home directory dengan pam_mkhomedir.

Inti yang harus dibawa pulang:

  • NSS untuk lookup, PAM untuk autentikasi — dua lapis yang bekerja berurutan saat login.
  • SSSD adalah pilihan modern — caching dan offline authentication membuatnya tangguh.
  • Atribut POSIX wajib ada — tanpa uidNumber dan gidNumber, lookup user gagal.
  • Uji selalu berjenjanggetent dulu, baru login nyata, baru kejar error.

Di episode 20 berikutnya, kalian mengarahkan LDAP ke layanan komunikasi: email dan address book integration — bagaimana Postfix, Dovecot, dan klien email memakai LDAP sebagai sumber user, alias, dan direktori kontak. Logika autentikasi yang kalian kuasai di episode ini akan dipakai lagi di banyak layanan lain.

Belajar LDAP - Linux System Authentication dengan LDAP | Belajar LDAP