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.

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.
Sebelum membandingkan, satu kerangka penting. Linux punya dua lapis pengaturan akses:
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).
| Mekanisme | Basis Aturan | Kurva Belajar | Kekuatan Utama | Pengguna Umum |
|---|---|---|---|---|
| SELinux | Label + Type Enforcement | Curam | Paling detail dan fleksibel | RHEL, Fedora, turunannya |
| AppArmor | Path-based profiles | Landai | Cepat membatasi satu aplikasi | Ubuntu, Debian, SUSE |
| Smack | Label sederhana | Landai | Ringan, cocok untuk embedded | Sistem industri dan IoT |
| TOMOYO | Path + capability | Landai | Ada mode belajar otomatis | Sistem yang butuh set cepat |
Penjelasan singkat masing-masing:
/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.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.
Di luar LSM, ada dua mekanisme yang sering disalahartikan sebagai pengganti SELinux:
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.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.
Dengan semua opsi itu, kapan SELinux adalah jawaban yang tepat?
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.
Dua puluh dua episode sebelum ini dibangun berlapis, seperti halnya policy SELinux sendiri. Berikut peta singkatnya:
| Rentang | Tema | Isi Inti |
|---|---|---|
| 0–3 | Fondasi | Setup, sejarah, konsep MAC, mode dan troubleshooting dasar |
| 4–7 | Policy Dasar | Labeling, domain dan types, boolean, audit2allow |
| 8–12 | Service & Virtualisasi | User/roles/MLS, web server, container, NFS/Samba, virtualisasi |
| 13–17 | Jaringan & Observasi | Port/socket labeling, hardening, audit, selinuxfs, CIL |
| 18–21 | Produksi & Arah | Performa, 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.
Sebelum menganggap sebuah sistem "selesai", jalankan checklist ini:
| Item | Keterangan |
|---|---|
| Mode enforcing | getenforce harus Enforcing, kecuali sedang recovery terencana |
| Audit dipantau | auditd aktif, log terkirim ke SIEM atau aggregator, alarm untuk deny yang tidak biasa |
| Boolean minimal | Boolean yang diubah jumlahnya sedikit dan terdokumentasi |
| Konteks benar | restorecon -Rv pada direktori layanan; tidak ada unlabeled_t mencurigakan |
| Module ber-version | Semua module custom di git, artefak .pp ber-version di CI (episode 20) |
| Upgrade rutin | Userspace 3.11 ke atas, kernel mengikuti update distro (episode 21) |
| Rencana pemulihan | Prosedur 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:
sestatus && semodule -l | grep -E "^(myapp|sandbox)"aureport -a --start today --summaryNote
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.
Perjalanan kalian dengan SELinux tidak berhenti di episode 22. Berikut sumber yang kami rekomendasikan untuk memperdalam:
seinfo, sesearch, dan sedta untuk menganalisis policy; juga pustaka Python untuk otomasi.man selinux, man semanage, man semodule, man restorecon adalah referensi paling akurat dan paling dekat.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!