Mengelola identitas di KDC: mengenal kadmin dan kadmin.local, operasi principal seperti addprinc, modprinc, dan delprinc, kebijakan password, ACL admin di kadm5.acl, serta praktik audit administrasi Kerberos.

Di episode 7 kalian sudah membuat service principal dan keytab lewat kadmin.local. Episode 8 ini kita berhenti sejenak dari teknik dan fokus ke tanggung jawab yang lebih besar: administrasi principal secara utuh. Sebagai admin Kerberos, kalian tidak hanya menambah principal, tetapi juga mengelola siklus hidupnya — atribut, kebijakan password, hak akses admin, hingga audit jejak. Dalam skala enterprise dengan ribuan akun, kesalahan administrasi kecil bisa menjadi lubang keamanan besar.
Ada dua cara masuk ke alat administrasi:
kadmind di admin_server dan menuntut autentikasi memakai principal admin (misalnya admin/admin) sebelum satu perintah pun diproses.kinit admin/admin
kadminkinit admin/admin mendapatkan TGT untuk akun admin, lalu kadmin memakai ticket itu untuk membuka koneksi administratif. Perbedaan krusialnya: kadmin.local mengabaikan ACL sama sekali, sedangkan kadmin remote selalu diperiksa terhadap kadm5.acl. Inilah mengapa ACL hanya berarti untuk akses remote — jadi jangan pernah membuka kadmind ke jaringan yang tidak dipercaya.
Inti administrasi ada enam perintah:
| Perintah | Fungsi |
|---|---|
addprinc | Menambah principal baru |
modprinc | Mengubah atribut principal |
delprinc | Menghapus principal |
listprincs | Menampilkan semua principal |
getprinc | Menampilkan detail satu principal |
cpw | Mengubah password principal |
Contoh sesi:
kadmin.local: listprincs
K/M@EXAMPLE.COM
admin/admin@EXAMPLE.COM
budi@EXAMPLE.COM
host/web1.example.com@EXAMPLE.COM
kadmin.local: getprinc budi
kadmin.local: modprinc -maxlife 8h budi
kadmin.local: cpw budi
kadmin.local: delprinc budilistprincs berguna untuk inventaris; getprinc menampilkan detail seperti waktu kedaluwarsa, policy, dan atribut; modprinc -maxlife 8h membatasi umur ticket principal tersebut; cpw mengganti password; dan delprinc menghapus identitas — langkah terakhir saat user keluar (offboarding).
modprinc bekerja pada sekumpulan atribut. Ini yang paling sering kalian sentuh:
| Atribut | Fungsi | Contoh |
|---|---|---|
-expire | Kedaluwarsa principal (akun) | -expire 2027-01-01 |
-pwexpire | Kedaluwarsa password | -pwexpire 90d |
-maxlife | Umur maksimum ticket | -maxlife 8h |
-maxrenewlife | Umur maksimum perpanjangan | -maxrenewlife 7d |
-requires_preauth | Wajib preauthentication | -requires_preauth |
-allow_forwardable | Mengizinkan flag forwardable | -allow_forwardable |
-allow_renewable | Mengizinkan flag renewable | -allow_renewable |
-allow_postdate | Mengizinkan ticket postdated | -allow_postdate |
kadmin.local: modprinc -expire 2027-01-01 budi@EXAMPLE.COM
kadmin.local: modprinc -maxlife 8h budi@EXAMPLE.COM
kadmin.local: modprinc -requires_preauth budi@EXAMPLE.COMAturan praktisnya: beri principal hanya atribut yang dibutuhkan. -requires_preauth mencegah AS-REP roasting, jadi aktifkan untuk semua user. -maxlife dan -maxrenewlife mengontrol seberapa lama kredensial hidup — semakin pendek, semakin kecil jendela penyalahgunaan jika cache dicuri.
Tip
Atribut principal hanya membatasi — ia tidak menambah. Jika principal budi memiliki -maxlife 8h, maka TGT-nya tidak akan pernah lebih dari 8 jam, berapa pun nilai ticket_lifetime di konfigurasi klien. Nilai efektif selalu diambil dari yang paling ketat antara permintaan klien dan batas principal.
Password yang lemah adalah pintu masuk favorit penyerang. Kerberos menyediakan kebijakan password yang menempel pada principal — bukan sembarang kriteria global. Perintahnya add_policy, modpol, delpol, dan listpols:
kadmin.local: add_policy -minlength 14 -minclasses 3 -history 24 strong
kadmin.local: listpols
kadmin.local: modprinc -policy strong budi@EXAMPLE.COMKriteria utama yang bisa diatur:
-minlength — panjang minimal password.-minclasses — minimal jumlah kelas karakter (huruf besar, huruf kecil, angka, simbol).-history — jumlah password lama yang tidak boleh dipakai ulang.-minlife dan -maxlife — rentang umur password.-failcount dan -lockout — kunci otomatis setelah beberapa kali gagal.Satu principal hanya bisa memakai satu policy. Bedakan policy untuk user biasa, service account, dan admin — jangan semuanya memakai satu standar.
Meski detail keytab sudah dibahas di episode 7, ada sisi administrasi yang wajib kalian kuasai: rotasi. Karena keytab adalah kredensial statis di disk, ia harus dirotasi berkala. Prosesnya:
ktadd.ktutil atau biarkan sebagai transisi.kadmin.local: ktadd -k /etc/krb5.keytab HTTP/web1.example.com
Entry for principal "HTTP/web1.example.com" with kvno 4, encryption type
aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.Perhatikan KVNO naik ke 4. Service yang masih memegang keytab KVNO 3 akan gagal autentikasi hingga keytab-nya diperbarui — jadi koordinasikan rotasi dengan waktu maintenance, atau tumpang-tindihkan kedua KVNO selama masa transisi.
File kadm5.acl (biasanya di /var/kerberos/krb5kdc/kadm5.acl atau /etc/krb5kdc/kadm5.acl) menentukan siapa boleh melakukan apa terhadap principal mana. Format tiap baris:
principal hak-akses target-principalHak aksesnya: a (add), d (delete), m (modify), c (change password), i (inspect), l (list), s (set key), dan * untuk semua. Contoh:
*/admin@EXAMPLE.COM *
budi@EXAMPLE.COM c user/*Baris pertama memberi semua hak kepada principal dengan awalan admin — ini akun admin penuh. Baris kedua memberi budi hak hanya mengganti password pada principal berawalan user/. Kalian bisa menerapkan least privilege yang sangat halus: misalnya admin grup hanya bisa m dan c pada anggota grupnya, tidak bisa a atau d.
Warning
Baris pertama yang tampak polos — */admin@EXAMPLE.COM * — adalah kunci kerajaan Kerberos. Siapa pun yang memegang principal admin/admin bisa menambah, mengubah, dan menghapus principal apa pun termasuk kunci service. Batasi jumlah akun admin, gunakan password yang sangat kuat, dan pantau semua penggunaannya.
Dua operasi yang paling sering menimbulkan masalah jika salah: penghapusan dan reset.
kadmin.local: cpw -keepold host/web1.example.com
kadmin.local: delprinc -force budi@EXAMPLE.COMcpw -keepold mempertahankan kunci lama sambil menambahkan yang baru — berguna saat merotasi tanpa memutus service yang masih memakai kunci lama. delprinc -force melewati konfirmasi interaktif, cocok untuk skrip massal. Sebelum menghapus, pastikan principal tidak lagi dipakai: cek proses yang berjalan, job scheduler, dan service yang mereferensikannya. Menghapus principal yang masih dipakai service akan membuat seluruh autentikasi service itu mati mendadak.
Administrasi tanpa audit ibarat kas tanpa pencatatan. Semua operasi kadmind bisa ditulis ke log — atur lewat admin_server_log di kdc.conf:
[kdcdefaults]
kdc_ports = 88
[realms]
EXAMPLE.COM = {
database_name = /var/lib/krb5kdc/principal
admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
acl_file = /var/kerberos/krb5kdc/kadm5.acl
admin_server_log = FILE:/var/log/kadmind.log
kdc_ports = 88
}Dengan admin_server_log aktif, setiap addprinc, modprinc, delprinc, dan cpw tercatat beserta principal admin yang melakukannya. Rutinitas audit yang sehat: tinjau log ini berkala, cari pola mencurigakan seperti perubahan policy massal atau cpw pada service account tanpa jadwal, dan archive log sesuai kebijakan retensi. Di episode 22 nanti kita akan memperdalam monitoring dan alerting.
Pada episode 8 ini, kalian menguasai sisi administrasi Kerberos: perbedaan kadmin dan kadmin.local, enam operasi dasar principal, atribut principal, kebijakan password, rotasi keytab, ACL admin di kadm5.acl, serta audit administrasi.
Inti yang harus dibawa pulang:
kadmin.local mengabaikan ACL, kadmin remote selalu tunduk pada kadm5.acl.add_policy) menempel pada principal, bukan global.kadm5.acl memungkinkan least privilege yang halus — manfaatkan.kadmind.log untuk audit.Di episode 9 berikutnya, kita turun ke pengalaman sehari-hari setiap user: ticket management dan lifetime — cara kerja lifetime, renewable, forwardable, proxiable, dan postdated, plus teknik memperpanjang ticket untuk job yang berjalan berminggu-minggu. Atribut yang kalian setel di episode ini akan menentukan apa yang bisa dilakukan di episode 9.