Belajar SELinux (Security-Enhanced Linux) dari dasar hingga production-grade: pre-requisites & setup environment, sejarah pengembangan NSA & Red Hat, konsep MAC & Type Enforcement, mode enforcing/permissive/disabled & troubleshooting, labeling & filesystem context, domain types & policy modules, booleans & tunables, audit2allow & local policy generation, users roles & MLS/MCS, web server & application services, containers Podman/Docker/CRI-O & Kubernetes, NFS Samba & network services, virtualization & custom policies, network port & socket labeling, hardening & least privilege, audit monitoring & incident response, selinuxfs & runtime inspection, advanced policy development dengan CIL, performance & scalability, sandbox & seunshare, policy-as-code & automation dengan Ansible, fitur modern userspace 3.11, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum masuk lebih dalam ke SELinux, ada beberapa skill dasar Linux yang wajib kalian kuasai terlebih dahulu: CLI dan shell, manajemen service systemd, permission file, hingga package manager dnf. Episode ini juga memandu kalian menyiapkan environment lab yang aman, menginstall tools userspace SELinux, dan memverifikasi bahwa SELinux aktif di sistem.

Menelusuri mengapa dunia butuh SELinux: keterbatasan DAC yang hanya membatasi berdasarkan user dan group, kelahiran proyek SELinux oleh NSA bersama Red Hat, integrasinya ke kernel Linux 2.6 pada 2003, hingga ekosistem modern userspace 3.11 yang dipakai hari ini.

Membongkar fondasi arsitektur SELinux: Type Enforcement yang membatasi domain terhadap type, format security context user:role:type:sensitivity, peran Access Vector Cache (AVC), hingga lapisan kernel LSM dan tools userspace yang bekerja sama menjalankan policy.

Membedah tiga mode SELinux — enforcing, permissive, dan disabled — beserta cara berpindah antar mode secara aman lewat runtime, parameter kernel, dan konfigurasi /etc/selinux/config. Ditutup dengan praktik membaca log AVC untuk mendiagnosis denial menggunakan ausearch.

Mendalami sistem labeling SELinux: membaca konteks file dengan ls -Z dan stat -Z, mengubah label sementara dengan chcon, memetakan label permanen dengan semanage fcontext, memulihkan label default dengan restorecon, hingga relabeling filesystem dengan fixfiles dan setfiles.

Membaca dan memahami policy dari dalam: struktur aturan Type Enforcement seperti allow dan neverallow, atribut dan role, membaca policy dengan sesearch dan seinfo, hingga mengelola modul policy dengan semodule dalam format .pp dan CIL modern.

Mengenal boolean dan tunable SELinux sebagai saklar perilaku policy yang bisa diubah tanpa menulis ulang modul: cara membaca status dengan getsebool, mengubah secara sementara dan persisten dengan setsebool -P, boolean umum untuk web, samba, dan FTP, serta cara mengaudit perubahan yang pernah dilakukan.

Menguasai workflow debugging denial SELinux: membaca deny log dengan ausearch, menerjemahkannya menjadi aturan policy dengan audit2allow, membuat dan menginstall modul policy lokal, plus best practice agar tidak terjebak generate policy secara buta.

Memahami lapisan identitas di SELinux: perbedaan user Linux dan SELinux user, pemetaan login dengan semanage login, konsep role untuk membatasi transisi domain administrator, serta mekanisme MLS dan MCS untuk klasifikasi data berjenjang dan isolasi antar workload.

Menerapkan SELinux untuk web server dan layanan aplikasi: konteks file yang benar untuk konten, log, dan script, boolean untuk koneksi jaringan dan database, labeling port dengan semanage port, serta pola multi-instance untuk MySQL dan PostgreSQL.
