Belajar SELinux - Ekosistem, Alternatif & Refleksi Akhir
Episode 22 of 23

Belajar SELinux - Ekosistem, Alternatif & Refleksi Akhir

Episode pamungkas: membandingkan SELinux dengan AppArmor, Smack, TOMOYO, seccomp, dan capabilities; kapan harus memilih SELinux; rekap perjalanan 23 episode; checklist produksi; dan sumber belajar untuk melangkah lebih jauh.

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

Pendahuluan

Setelah di episode 21 kita melihat masa depan SELinux — userspace 3.11 dan peta jalan 3.12 — tibalah saatnya episode pamungkas. Kita tidak akan menambah tool baru; kita akan meletakkan SELinux pada tempatnya dalam ekosistem keamanan Linux yang lebih luas, membandingkannya dengan alternatif nyata, merekap seluruh perjalanan dari episode 0 sampai 21, dan menutup dengan checklist produksi serta peta belajar lanjutan. Ini adalah peta akhir dari seri 23 episode ini.

Pembahasan Utama

Satu Kunci DAC, atau Banyak Kartu Akses?

Sebelum membandingkan, satu kerangka penting. Linux punya dua lapis pengaturan akses:

  • DAC (Discretionary Access Control) — model klasik Unix: owner, group, others, plus bit suid. Pemilik file bisa memberikan akses sesukanya ("discretionary").
  • MAC (Mandatory Access Control) — keputusan diambil di luar kendali pemilik file, oleh sistem policy yang terpusat. Pemilik file tidak bisa "memberi" akses yang dilarang policy.

Analogi yang sering kami pakai: DAC seperti rumah dengan satu kunci yang bisa disalin pemiliknya; MAC seperti gedung dengan kartu akses yang dikelola satu otoritas pusat — meski pemilik ruang menempelkan kartu, satpam tetap memegang daftar siapa yang boleh masuk. SELinux adalah salah satu implementasi MAC; yang lain adalah AppArmor, Smack, dan TOMOYO, yang semuanya hidup di bawah kerangka LSM (Linux Security Module).

Perbandingan Mekanisme MAC di Linux

MekanismeBasis AturanKurva BelajarKekuatan UtamaPengguna Umum
SELinuxLabel + Type EnforcementCuramPaling detail dan fleksibelRHEL, Fedora, turunannya
AppArmorPath-based profilesLandaiCepat membatasi satu aplikasiUbuntu, Debian, SUSE
SmackLabel sederhanaLandaiRingan, cocok untuk embeddedSistem industri dan IoT
TOMOYOPath + capabilityLandaiAda mode belajar otomatisSistem yang butuh set cepat

Penjelasan singkat masing-masing:

  • AppArmor bekerja dengan profile berbasis path — misalnya "aplikasi di /usr/bin/myapp boleh membaca /etc/config, tidak boleh yang lain". Karena menempel pada path, sangat mudah dimengerti, tetapi aturannya kurang ekspresif dibanding label SELinux dan bisa "dilewati" jika file di-rename atau di-hardlink di luar sepengetahuan profile.
  • Smack menggunakan label seperti SELinux tetapi jauh lebih sederhana dan kecil — pilihan umum di perangkat tertanam yang butuh isolasi ringan.
  • TOMOYO juga path-based dan menawarkan mode belajar yang mencatat akses nyata untuk dijadikan policy — enak untuk memulai, tetapi tetap perlu review manusia.

Perlu ditegaskan: perbandingan ini bukan soal "siapa yang terbaik", melainkan "kondisi apa yang sedang kalian hadapi". Detail teknis dan batas masing-masing bisa digali dari dokumentasi resmi setiap proyek.

Seccomp dan Capabilities: Bukan MAC, Tapi Pelengkap

Di luar LSM, ada dua mekanisme yang sering disalahartikan sebagai pengganti SELinux:

  • Linux capabilities memecah hak superuser menjadi unit kecil (CAP_NET_BIND_SERVICE, CAP_DAC_OVERRIDE, dan seterusnya). Ia membatasi apa yang bisa dilakukan root, tetapi tidak menyediakan kontrol akses berbasis label. Bayangkan ia sebagai daftar izin pegawai, bukan peta ruangan.
  • seccomp (termasuk seccomp-bpf) memfilter syscall yang boleh dipanggil sebuah proses. Ini sangat efektif di dalam container (Docker dan Kubernetes menerapkan profile default), tetapi bekerja pada level system call — bukan pada objek file, socket, atau signal.

Keduanya bukan "pengganti SELinux" — mereka berlapis dengannya. Skenario paling aman menggunakan ketiganya sekaligus: SELinux membatasi akses objek, capabilities memangkas hak root, dan seccomp memblokir syscall berbahaya.

Kapan Kalian Sebaiknya Memilih SELinux

Dengan semua opsi itu, kapan SELinux adalah jawaban yang tepat?

  1. Distro keluarga RHEL. RHEL, Fedora, Rocky, AlmaLinux, dan CentOS Stream menjadikan SELinux aktif secara default dan terintegrasi penuh (policy yang matang dan dukungan Red Hat). Mengganti dengan AppArmor di sini justru melawan arus.
  2. Beban kerja multi-tenant. Ketika satu mesin melayani banyak pengguna atau layanan yang harus terpisah ketat — SELinux dengan type enforcement dan MCS/MLS memberi isolasi terbaik.
  3. Regulasi ketat. Lingkungan yang diaudit (PCI-DSS, ISO 27001, instansi pemerintah) membutuhkan kontrol yang bisa dijelaskan dan dilacak. Model label SELinux menyediakan alasan audit yang rapi.
  4. Kebutuhan kontrol yang detail. Jika AppArmor path-based terasa kurang ekspresif — misalnya ingin membedakan akses berdasarkan jenis file, bukan path — SELinux menang.

Jika kebutuhan kalian hanya "batasi satu aplikasi besok sore" di Ubuntu, AppArmor adalah pilihan yang jujur dan baik. Tidak ada paksaan memakai SELinux di mana-mana — keputusan yang benar adalah keputusan yang sesuai konteks.

Rekap Perjalanan 0–21

Dua puluh dua episode sebelum ini dibangun berlapis, seperti halnya policy SELinux sendiri. Berikut peta singkatnya:

RentangTemaIsi Inti
0–3FondasiSetup, sejarah, konsep MAC, mode dan troubleshooting dasar
4–7Policy DasarLabeling, domain dan types, boolean, audit2allow
8–12Service & VirtualisasiUser/roles/MLS, web server, container, NFS/Samba, virtualisasi
13–17Jaringan & ObservasiPort/socket labeling, hardening, audit, selinuxfs, CIL
18–21Produksi & ArahPerforma, sandbox, policy-as-code, rilis 3.11

Perhatikan pola yang berulang sepanjang seri ini: selalu mulai dari pengamatan (apa yang dilarang), lalu sempitkan perubahan (izinkan seminimal mungkin), lalu verifikasi (deny hilang, layanan tetap jalan). Pola itu adalah keterampilan paling berharga yang kalian bawa keluar dari seri ini — jauh lebih berharga daripada hafalan perintah.

Checklist Produksi SELinux

Sebelum menganggap sebuah sistem "selesai", jalankan checklist ini:

ItemKeterangan
Mode enforcinggetenforce harus Enforcing, kecuali sedang recovery terencana
Audit dipantauauditd aktif, log terkirim ke SIEM atau aggregator, alarm untuk deny yang tidak biasa
Boolean minimalBoolean yang diubah jumlahnya sedikit dan terdokumentasi
Konteks benarrestorecon -Rv pada direktori layanan; tidak ada unlabeled_t mencurigakan
Module ber-versionSemua module custom di git, artefak .pp ber-version di CI (episode 20)
Upgrade rutinUserspace 3.11 ke atas, kernel mengikuti update distro (episode 21)
Rencana pemulihanProsedur tertulis untuk permissive sementara dan relabel menyeluruh

Cek status dengan getenforce, daftar module dengan semodule -l, dan jejak deny dengan aureport. Verifikasi cepat yang bisa kalian jalankan sekarang:

Status dan daftar module
sestatus && semodule -l | grep -E "^(myapp|sandbox)"
Ringkasan deny terakhir
aureport -a --start today --summary

Note

Checklist ini bukan alat penghakiman, melainkan alat perbaikan — persis seperti yang kami tekankan di seri-seri lain. Tidak ada sistem yang lahir sempurna; yang ada adalah sistem yang dipelihara menuju kesempurnaan. Jalankan checklist ini berkala (ritme kuartal adalah yang masuk akal), tandai yang belum lolos, dan buat rencana menutup gap-nya.

Sumber Belajar untuk Melangkah Lebih Jauh

Perjalanan kalian dengan SELinux tidak berhenti di episode 22. Berikut sumber yang kami rekomendasikan untuk memperdalam:

  • Situs proyek SELinux (selinuxproject.org) — titik awal resmi, tautan ke wiki, milis, dan dokumentasi.
  • Dokumentasi Red Hat "Using SELinux" — referensi praktis untuk RHEL dan turunannya, lengkap dengan contoh nyata.
  • SEToolsseinfo, sesearch, dan sedta untuk menganalisis policy; juga pustaka Python untuk otomasi.
  • SELinux Coloring Book — pengantar visual yang sangat membantu untuk memahami konsep domain dan type.
  • Tulisan Dan Walsh dan kontributor komunitas — artikel panjang dan praktis di opensource.com dan blog terkait; hampir setiap "kenapa saya harus peduli SELinux" dijawab di sana.
  • Man pagesman selinux, man semanage, man semodule, man restorecon adalah referensi paling akurat dan paling dekat.
  • Praktik di lab — buat VM, aktifkan SELinux, jalankan layanan, rusakkan, lalu perbaiki. Tidak ada substitusi untuk mengotori tangan.

Penutup

Dan inilah titik akhirnya. Selama 23 episode — dari episode 0 sampai 22 — kalian telah membangun pemahaman SELinux dari nol: mengapa MAC dibutuhkan, bagaimana konteks dan type enforcement bekerja, bagaimana menulis module, mengatur boolean dan port, membaca deny dari audit log, menjaga performa, mengurung program dengan sandbox, mengotomatiskan policy sebagai kode, mengikuti rilis 3.11, dan kini menempatkan SELinux dalam ekosistem yang lebih luas. Itu adalah perjalanan yang lengkap — bukan sekadar kumpulan perintah, melainkan cara berpikir.

Mari kita tutup dengan tiga pesan yang paling penting.

Pertama, SELinux adalah alat, bukan tujuan. Ia menjawab pertanyaan "siapa yang boleh mengakses apa" dengan cara yang ketat, konsisten, dan bisa diaudit. Di sistem yang tepat (keluarga RHEL, multi-tenant, terregulasi) ia adalah keunggulan nyata; di tempat lain, alternatif yang jujur seperti AppArmor bisa menjadi pilihan yang lebih masuk akal. Keahlian sejati adalah memilih dan menggunakan alat yang sesuai konteks.

Kedua, keamanan dibangun dari pengamatan dan iterasi, bukan dari keberanian. Seluruh seri ini mengajarkan satu pola: lihat deny-nya, pahami, izinkan seminimal mungkin, verifikasi. Tidak ada satu pun deny yang "langsung diperbaiki tanpa dibaca" — dan pola itulah yang akan menyelamatkan kalian di produksi, berkali-kali.

Ketiga, teruslah praktik. Policy SELinux yang sehat adalah policy yang diuji dan dipelihara, bukan yang ditulis sekali lalu dilupakan. Buat lab, simulasikan insiden, uji rollback, dan perbarui userspace secara rutin. Keterampilan ini langka dan sangat berharga — di dunia DevOps, SRE, dan keamanan infrastruktur, admin yang memahami MAC adalah aset yang tidak tergantikan.

Terima kasih sudah menemani seri ini sampai akhir. Kalian sekarang memiliki peta lengkap untuk tidak hanya mengerti SELinux, tetapi juga mengelolanya dengan percaya diri. Bangun sesuatu yang aman, catat apa yang kalian pelajari, dan bagikan kembali ke komunitas. Sampai jumpa di seri belajar berikutnya — dan selamat berkarya sebagai praktisi keamanan Linux!