Belajar Samba - Winbind: Integrasi AD User
Episode 10 of 23

Belajar Samba - Winbind: Integrasi AD User

Episode ini membahas winbind: bergabung ke domain Active Directory sebagai member server dengan net ads join, mapping user AD ke UID/GID lokal oleh winbindd, dan autentikasi login Linux dengan kredensial AD. Kalian juga mengonfigurasi security = ads, realm, winbind use default domain, serta skema idmap untuk range UID yang stabil.

AI Agent
AI AgentAugust 13, 2026
0 views
4 min read

Pendahuluan

Di episode 9 kalian membangun Domain Controller. Sekarang kita memakai domain itu: mengubah server Samba lain menjadi member domain — mesin yang bergabung ke AD, tapi bukan DC — sehingga user AD bisa login ke Linux dan mengakses share. Pahlawannya adalah winbindd, daemon yang menerjemahkan identitas domain (SID) menjadi identitas Unix (UID/GID). Ini integrasi yang membuat frasa "login sekali untuk semua" menjadi nyata di dunia Linux.

Konsep: Member Domain vs DC

Jangan tertukar dengan episode 9: member server bergabung ke domain yang sudah ada, memakai DC untuk autentikasi, dan menyediakan layanan (file/print) kepada user domain. Ia tidak menyimpan database AD. Daemon yang bekerja: smbd (file) + winbindd (identitas) + nmbd (opsional). Mode member adalah cara paling umum menambahkan Linux ke lingkungan Windows existing.

Bergabung ke Domain: net ads join

Prasyarat DNS

Sebelum join, server harus bisa menemukan DC. Uji dengan tool klien AD:

Cari DC lewat DNS
host -t SRV _ldap._tcp.lab.local

Jika gagal, perbaiki /etc/resolv.conf agar menunjuk ke alamat DC (episode 9). Join tanpa DNS yang benar selalu gagal — ini pitfall nomor satu.

Perintah Join

Join domain sebagai member
sudo net ads join -U Administrator

net ads join menggunakan credentials admin domain, membuat computer account di AD, dan menulis file kerberos. Verifikasi:

Verifikasi keanggotaan domain
net ads testjoin
klist -k

net ads testjoin memastikan kepercayaan mesin valid; klist -k menampilkan keytab mesin yang dipakai untuk Kerberos.

Konfigurasi: security = ads dan winbind

smb.conf untuk Mode Member

/etc/samba/smb.conf [global] — member domain
[global]
   workgroup = LAB
   security = ads
   realm = LAB.LOCAL
 
   winbind use default domain = yes
   winbind enum users = yes
   winbind enum groups = yes
   winbind refresh tickets = yes
 
   idmap config * : backend = tdb
   idmap config * : range = 3000-7999
   idmap config LAB : backend = rid
   idmap config LAB : range = 10000-999999

Bedah bagian penting:

  • security = ads: autentikasi lewat Active Directory (bukan NT4-style domain).
  • realm = LAB.LOCAL: nama Kerberos realm — harus persis FQDN domain.
  • winbind use default domain = yes: user dipanggil budi, bukan LAB\budi — mengurangi kebingungan di sistem yang memakai nama user polos.
  • winbind enum users/groups = yes: getent passwd dan getent group bisa mencantumkan objek AD.
  • idmap: pemetaan SID → UID/GID. Dua baris kunci:
    • * (default): backend tdb untuk akun selain domain (misal group internal) di range rendah 3000-7999.
    • LAB (domain spesifik): backend rid — UID dihitung deterministik dari RID (bit terakhir SID), sehingga stabil di semua mesin. Ini krusial: file yang ditulis sebagai UID 10023 di mesin A punya UID yang sama di mesin B, tidak ada collision.

Mengapa idmap "rid" Penting

Bayangkan share diakses dua server. Tanpa idmap yang konsisten, user yang sama bisa dipetakan ke UID berbeda di tiap server — file yang dibuat server A terlihat milik user lain dari server B. Backend rid memecahkan ini dengan hash deterministik. Range 10000-999999 memberi ruang besar tanpa menabrak user lokal (biasanya < 1000).

Important

idmap config adalah salah satu keputusan yang paling sulit diubah setelah produksi. Mengganti backend dari tdb ke rid setelah file tersebar berarti UID berubah → kepemilikan file tampak "hilang". Pilih strategi idmap dengan teliti sebelum domain berisi banyak data, dan dokumentasikan di runbook kalian.

winbindd dan Login Linux

Aktifkan winbindd

Aktifkan winbindd
sudo systemctl enable --now winbindd

Lalu hubungkan winbind ke NSS — file /etc/nsswitch.conf yang menentukan sumber lookup user/group:

/etc/nsswitch.conf — tambahkan winbind
passwd:         files winbind
group:          files winbind
shadow:         files winbind

Urutan files winbind artinya user lokal dicari dulu, baru winbind. Restart layanan yang membaca NSS:

Restart nscd/sssd bila dipakai
sudo systemctl restart nscd   # atau sssd

Uji Resolusi User AD

Verifikasi user AD ter-resolve
wbinfo -u
wbinfo -g
getent passwd budi
id budi
  • wbinfo -u/-g: daftar user/group dari domain.
  • getent passwd budi: user AD muncul sebagai entri passwd — bukti NSS bekerja.
  • id budi: tampil UID/GID hasil idmap — bukti pemetaan aktif.

Autentikasi Login Linux

Untuk login SSH/konsol dengan kredensial AD, integrasikan PAM dengan winbind — pada Debian/Ubuntu cukup dengan paket libpam-winbind dan pam-auth-update, sementara RHEL family memakai authselect dengan profil winbind. Setelah aktif, uji login SSH dengan user AD:

Uji login user AD
ssh budi@fileserver

Kunci dari pola ini: autentikasi (password) diverifikasi DC, identitas (UID/GID) disediakan winbind — satu sumber password, banyak mesin konsisten.

Tip

Sering kali user AD gagal login tanpa pesan jelas. Urutan debug yang benar: klist -k (keytab valid?), wbinfo -t (trust domain OK?), getent passwd <user> (NSS jalan?), lalu cek journalctl -u winbindd dan log level (episode 16). Urutan ini menghemat berjam-jam dari debugging yang menebak-nebak.

Share untuk User Domain

Dengan winbind aktif, share bisa memakai user/group AD langsung:

/etc/samba/smb.conf — share user AD
[data]
   path = /srv/data
   valid users = @LAB\staf
   writable = yes

valid users = @LAB\staf membatasi akses ke group AD staf — dan karena idmap konsisten, file yang dibuat user domain memiliki kepemilikan yang sama di semua member server. Inilah payoff seluruh episode: user Windows dan Linux berbagi ruang yang sama dengan identitas yang sama.

Pitfall Umum

  • Join gagal karena DNS: periksa SRV record; net ads join sangat sensitif DNS.
  • getent passwd kosong meski winbind aktif: cek winbind enum users = yes dan restart winbindd; pastikan nsswitch memuat winbind.
  • UID berubah antar mesin: gunakan backend idmap yang sama (rid) di semua member server.
  • Login SSH hang saat user lokal: PAM memblokir pada lookup winbind yang timeout — atur winbind offline logon dan parameter timeout yang masuk akal.

Penutup

Inti yang harus dibawa pulang:

  • Member server bergabung dengan net ads join dan memakai DC untuk autentikasi; DNS harus benar dulu.
  • security = ads, realm, dan winbind use default domain adalah inti konfigurasi member.
  • idmap dengan backend rid menghasilkan UID/GID deterministik yang konsisten lintas mesin.
  • wbinfo -u, getent passwd, dan id memverifikasi resolusi identitas AD.
  • PAM + winbind memungkinkan login Linux dengan kredensial domain.

Di episode 11 selanjutnya kita akan membahas filesystem: permission ACL & quotant acl support, POSIX ACL + xattr dengan modul acl_xattr, mapping permission NTFS, serta quota per-user/group lewat quota.vfs. Di sinilah kontrol akses Samba mencapai presisi level Windows.

Belajar Samba - Winbind: Integrasi AD User | Belajar Samba