Belajar SELinux - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar SELinux - Pre-Requisites Skill & Setup Environment

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.

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

Pendahuluan

Selamat datang di series Belajar SELinux! Series ini akan membawa kalian memahami SELinux (Security-Enhanced Linux) — Linux Security Module yang menyediakan Mandatory Access Control (MAC) berbasis Type Enforcement — dari nol hingga level siap produksi. Total ada 23 episode yang akan menuntun kalian mulai dari memahami denial pertama hingga mengelola policy production yang aman, teraudit, dan siap dipakai di dunia nyata.

Sebelum mengetik getenforce pertama atau membaca log AVC yang berisi denial, ada beberapa skill dasar dan tools yang wajib kalian miliki terlebih dahulu. Mengapa prasyarat ini begitu penting? SELinux bukan fitur yang berdiri sendiri — ia berjalan di atas fondasi Linux yang sudah kalian kenal: permission file, systemd, package manager, dan CLI. Bayangkan ingin menjadi pilot pesawat tapi belum paham cara membaca instrumen kokpit — sehebat apapun pesawatnya, tetap sulit untuk lepas landas.

Episode 0 ini akan menjadi peta jalan: memastikan skill kalian sudah cukup, menyiapkan environment lab yang aman dengan distro yang SELinux-nya aktif, menginstall tools userspace, lalu memverifikasi bahwa sistem kalian siap. Setelah episode ini selesai, kalian sudah benar-benar siap melangkah ke episode 1 yang membahas sejarah dan latar belakang mengapa SELinux ada.

Skill Dasar yang Wajib Dimiliki

Kita mulai dari skill. Tanpa skill ini, tools secanggih apapun tidak akan berguna.

CLI Linux & Shell (bash/zsh)

Kalian akan menghabiskan hampir seluruh waktu series ini di terminal. SELinux dikelola lewat perintah-perintah CLI seperti semanage, sesearch, restorecon, dan audit2allow — tanpa kenyamanan dengan baris perintah, semua tools itu hanya akan terasa seperti mantra ajaib tanpa makna. Pastikan kalian sudah nyaman dengan:

  1. Navigasi dan operasi filels, cd, cat, grep, less, tail, dan find.
  2. Shell scripting dasar — variabel, loop, dan pipeline | untuk merangkai perintah kecil menjadi satu pekerjaan kompleks.
  3. Membaca output perintah — karena hampir semua tools SELinux mencetak hasil ke terminal, dan dari sanalah kalian akan mendiagnosis masalah.

Tidak perlu menjadi script master. Cukup sampai level "saya bisa menulis perintah, melihat output, dan membaca error tanpa panik". Selebihnya akan terbentuk dengan sendirinya sepanjang series ini.

Manajemen Service dengan systemctl

SELinux tidak bekerja sendirian — ia sangat bergantung pada layanan di bawahnya, dan hampir semua layanan itu dikelola oleh systemd. Kalian akan sering berinteraksi dengan service seperti auditd, sshd, dan httpd di episode-episode berikutnya. Kuasai empat operasi dasar berikut:

PerintahFungsi
systemctl status <service>Melihat status, PID, dan log terbaru sebuah service
systemctl start <service>Menjalankan service
systemctl enable --now <service>Menjadikan service aktif dan berjalan otomatis saat boot
systemctl restart <service>Me-restart service setelah konfigurasi diubah

Satu hal yang perlu kalian catat sejak sekarang: di dunia SELinux, setiap proses service berjalan dalam sebuah domain — istilah yang akan sangat sering kalian temui mulai episode 2. systemd dan SELinux adalah dua dunia yang saling beririsan, jadi pahami keduanya.

Permission File: chmod, chown, umask

Ini adalah fondasi paling penting. Sebelum memahami MAC (Mandatory Access Control) milik SELinux, kalian harus paham dulu DAC (Discretionary Access Control) bawaan Linux — permission rwx untuk user, group, dan other yang selama ini kalian pakai dengan chmod dan chown. Ingat satu prinsip: SELinux bekerja di atas DAC, bukan menggantikannya. Sebuah akses harus lolos dua gerbang berlapis: DAC dulu, baru MAC.

Permission DAC dasar
chmod 750 /srv/www
chown arman:devops /srv/www
umask 022

chmod 750 berarti pemilik boleh penuh, group boleh baca dan eksekusi, dan lainnya tanpa akses. umask 022 memastikan file baru tidak terbuka lebar secara tidak sengaja. Jika konsep ini masih terasa asing, sempatkan membaca ulang materi permission Linux sebelum lanjut — karena di episode 1 nanti kita akan membahas mengapa DAC saja tidak cukup untuk sistem yang benar-benar aman.

Package Manager & Proses: dnf

Series ini fokus pada ekosistem Red Hat, jadi dnf adalah teman harian kalian. Kalian akan menginstall tools userspace SELinux, mengupdate policy package, dan kadang menginstall package policy tambahan untuk aplikasi tertentu. Selain itu, pahami cara melihat proses dengan ps aux dan mematikan proses dengan kill — karena label konteks SELinux melekat pada proses, bukan pada perintah.

PerintahFungsi
sudo dnf install <package>Menginstall package beserta dependensinya
sudo dnf updateMemperbarui seluruh package sistem
ps auxMelihat seluruh proses yang berjalan
kill <pid>Menghentikan proses berdasarkan PID

Setup Environment Lab SELinux

Setelah skill dasar siap, sekarang saatnya menyiapkan environment tempat kalian akan berlatih. Keputusan ini penting karena menentukan seberapa representatif pengalaman belajar kalian terhadap kondisi production.

Pilihan Distro dengan SELinux Aktif

SELinux adalah fitur yang paling matang di ekosistem Red Hat. Rekomendasi distro untuk series ini, urut dari yang paling disarankan:

  • RHEL 9 atau 10 — pilihan paling enterprise, persis seperti yang dipakai di data center.
  • Rocky Linux / AlmaLinux — turunan RHEL yang gratis dan binary-compatible; paling seimbang untuk belajar.
  • Fedora — versi terbaru dan paling cepat evolusinya; cocok jika kalian ingin merasakan fitur terkini.

Penting untuk dipahami: distro di luar keluarga Red Hat seperti Ubuntu dan Debian secara default menggunakan AppArmor, bukan SELinux. Mengaktifkan SELinux di sana membutuhkan langkah konfigurasi tambahan dan tidak disarankan untuk belajar — fokuslah pada satu ekosistem agar konsisten.

Lab yang Aman: VM & Snapshot

Praktik terbaik: jangan pernah belajar SELinux di host utama atau di server production. Gunakan Virtual Machine (VM). Di dalam VM, kalian bebas mengubah mode enforcing ke permissive, mengganti label konteks file sesuka hati, bahkan mematikan sistem sampai tidak bisa boot — dan semuanya tidak akan memengaruhi komputer utama kalian.

Satu kebiasaan yang akan sangat menyelamatkan kalian: buat snapshot sebelum bereksperimen. Label yang salah dengan chcon atau relabeling penuh dengan fixfiles bisa membuat sistem tidak berfungsi — dan snapshot adalah tombol undo kalian. Kalau rusak, restore saja.

Install Tools Userspace

Kernel hanyalah enforcer; tools untuk membaca policy, mengubah konteks, dan troubleshooting semuanya ada di package userspace. Setelah sistem bersih terinstall, install package berikut:

Install tools userspace SELinux
sudo dnf install -y selinux-policy-targeted policycoreutils-python-utils setools-console audit

Berikut peran masing-masing package — kenali mereka karena akan menemani kalian sepanjang series ini:

PackagePeran
selinux-policy-targetedPolicy default (targeted) yang memuat aturan perlindungan
policycoreutils-python-utilsTools utama: semanage, audit2allow, restorecon
setools-consoleTools analisis policy: sesearch, seinfo
auditSistem audit: auditd dan ausearch, sumber log AVC

Setelah install selesai, pastikan service auditd berjalan karena log denial SELinux ditulis lewat dia:

Aktifkan auditd
sudo systemctl enable --now auditd

Verifikasi Instalasi

Saatnya memastikan semuanya siap. Pertama, cek mode SELinux yang sedang berjalan:

Cek mode SELinux
getenforce

Output Enforcing berarti SELinux aktif dan memblokir akses yang tidak diizinkan policy. Selanjutnya, lihat status lengkap:

Cek status lengkap
sestatus
Contoh output sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Memory protection checking:     actual (secure)
Max kernel policy version:      34

Tiga baris yang wajib kalian perhatikan: SELinux status: enabled (kernelnya aktif), Loaded policy name: targeted (policy yang dimuat), dan Current mode: enforcing (mode yang sedang berjalan). Jika ketiganya sesuai seperti di atas, environment kalian sudah resmi siap.

Kesalahan Umum (Common Pitfalls)

  1. Belajar di distro yang SELinux-nya tidak aktif. Ubuntu/Debian default ke AppArmor; di sana getenforce bahkan tidak akan ada. Pastikan kalian di keluarga RHEL/Fedora.
  2. Menonaktifkan SELinux karena denial. Ini langkah yang paling sering diambil pemula — dan paling salah. Denial adalah informasi, bukan musuh. Mulai episode 3 kalian akan belajar membaca dan menyelesaikannya dengan benar.
  3. Lupa membuat snapshot. Bereksperimen dengan label dan policy tanpa snapshot itu seperti terjun payung tanpa cadangan. Selalu snapshot dulu.
  4. Mengandalkan GUI. SELinux dikelola lewat CLI. Semakin cepat kalian nyaman dengan terminal, semakin cepat kalian menguasai series ini.
  5. Melewatkan install tools userspace. Jika semanage atau sesearch tidak ditemukan, kalian belum menginstall policycoreutils-python-utils dan setools-console.

Penutup

Di episode 0 ini kita sudah menyiapkan pijakan yang kokoh untuk seluruh perjalanan: memastikan kalian menguasai skill dasar Linux (CLI, systemd, permission, dnf), memilih distro keluarga Red Hat dengan SELinux aktif, menyiapkan lab VM yang aman, menginstall tools userspace, dan memverifikasi bahwa SELinux berjalan dalam mode enforcing.

Poin penting yang harus kalian bawa:

  • SELinux adalah MAC yang bekerja di atas DAC — keduanya berlapis, tidak saling menggantikan.
  • Gunakan distro keluarga Red Hat (RHEL, Rocky, AlmaLinux, Fedora) agar SELinux aktif sejak awal.
  • Selalu belajar di VM dengan snapshot agar bebas bereksperimen.
  • Tools userspace (semanage, sesearch, audit2allow, ausearch) adalah senjata utama kalian — pastikan terinstall.
  • Verifikasi kesiapan dengan getenforce dan sestatus.

Ingat, series Belajar SELinux terdiri dari 23 episode yang saling membangun. Pastikan environment kalian sudah siap, karena di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa dunia butuh SELinux — mulai dari keterbatasan DAC, bagaimana NSA bersama Red Hat melahirkan proyek ini di awal 2000-an, hingga integrasinya ke kernel Linux 2.6 pada 2003. Pastikan tetap semangat, karena perjalanan belajar SELinux baru saja dimulai!