Sebelum masuk lebih dalam ke AppArmor, ada beberapa skill dasar Linux yang wajib kalian kuasai terlebih dahulu: CLI dan shell, manajemen service systemd, permission user dan file, hingga konsep proses, executable, dan library. Episode ini memandu kalian menyiapkan environment lab yang aman, menginstall tools userspace, dan memverifikasi bahwa AppArmor aktif.

Selamat datang di series Belajar AppArmor! Series ini akan membawa kalian memahami AppArmor (Application Armor) — Linux Security Module yang menyediakan Mandatory Access Control (MAC) berbasis path — dari nol hingga level siap produksi. Total ada 23 episode yang akan menuntun kalian mulai dari memahami profil pertama hingga mengelola konfinasi workload production yang aman dan teraudit.
Sebelum mengetik aa-status pertama atau menulis profil AppArmor, ada beberapa skill dasar dan tools yang wajib kalian miliki terlebih dahulu. Mengapa prasyarat ini begitu penting? AppArmor bukan fitur yang berdiri sendiri — ia melekat pada proses, menilai akses file berdasarkan path, dan berjalan di atas fondasi Linux yang sudah kalian kenal: permission file, systemd, dan CLI. Bayangkan ingin menjadi petugas keamanan sebuah gedung tapi belum paham denah ruangan dan siapa penghuninya — seketat apapun aturannya, tetap sulit untuk bekerja.
Episode 0 ini akan menjadi peta jalan: memastikan skill kalian sudah cukup, menyiapkan environment lab yang aman di distro dengan AppArmor 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 AppArmor ada.
Kita mulai dari skill. Tanpa skill ini, tools secanggih apapun tidak akan berguna.
Kalian akan menghabiskan hampir seluruh waktu series ini di terminal. AppArmor dikelola lewat perintah-perintah CLI seperti apparmor_parser, aa-genprof, aa-logprof, dan aa-status — tanpa kenyamanan dengan baris perintah, semua tools itu hanya akan terasa seperti mantra tanpa makna. Pastikan kalian sudah nyaman dengan:
ls, cd, cat, grep, less, tail, dan find.| untuk merangkai perintah kecil menjadi satu pekerjaan kompleks.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.
AppArmor 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 apparmor, sshd, dan nginx di episode-episode berikutnya. Kuasai empat operasi dasar berikut:
| Perintah | Fungsi |
|---|---|
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 AppArmor, setiap proses yang dijalankan tanpa profil adalah proses yang kebal — ia bisa melakukan apa saja. Service yang berjalan di bawah systemd adalah kandidat utama yang akan kalian konfinasi nanti, jadi pahami dulu bagaimana keduanya beririsan.
Ini adalah fondasi paling penting. Sebelum memahami MAC (Mandatory Access Control) milik AppArmor, kalian harus paham dulu DAC (Discretionary Access Control) bawaan Linux — permission rwx untuk user, group, dan other yang selama ini kalian kelola dengan chmod dan chown. Ingat satu prinsip: AppArmor bekerja di atas DAC, bukan menggantikannya. Sebuah akses harus lolos dua gerbang berlapis: DAC dulu, baru MAC.
chmod 750 /srv/www
chown arman:devops /srv/www
umask 022chmod 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.
Ini skill yang sering diremehkan padahal sangat menentukan. AppArmor mengkonfinasi proses berdasarkan path executable-nya — jadi kalian harus memahami perbedaan antara:
| Istilah | Penjelasan |
|---|---|
executable | File biner atau script yang dijalankan, misalnya /usr/sbin/nginx |
proses | Instansiasi executable yang sedang berjalan, punya PID sendiri |
library | File .so yang dimuat proses saat runtime, misalnya /lib/x86_64-linux-gnu/libc.so.6 |
Kenapa ini penting? Saat nanti menulis profil, kalian akan mencantumkan path library yang boleh dimuat proses — dan denial m (mapping) sering muncul justru karena library yang tidak tercantum. Biasakan melihat proses dengan ps aux dan memeriksa path biner sebuah proses dengan readlink /proc/<pid>/exe.
Setelah skill dasar siap, sekarang saatnya menyiapkan environment tempat kalian berlatih. Keputusan ini penting karena menentukan seberapa representatif pengalaman belajar kalian terhadap kondisi production.
Kabar baiknya: AppArmor jauh lebih mudah dinikmati secara default daripada sepupu MAC-nya yang lain. Rekomendasi distro untuk series ini:
apparmor-utils tersedia di repositori resmi.Semua distro di atas menjalankan AppArmor aktif dan default, jadi kalian tidak perlu repot mengonfigurasi kernel. Sedangkan distro keluarga Red Hat seperti Fedora dan RHEL memilih SELinux — kalian tetap bisa memakai AppArmor di sana, tapi itu bukan pengalaman belajar yang natural.
Praktik terbaik: jangan pernah belajar AppArmor di host utama atau di server production. Gunakan Virtual Machine (VM). Di dalam VM, kalian bebas memuat dan melepas profil, menulis profil yang salah, bahkan membuat sistem tidak bisa boot — dan semuanya tidak akan memengaruhi komputer utama kalian.
Satu kebiasaan yang akan sangat menyelamatkan kalian: buat snapshot sebelum bereksperimen. Profil yang salah seperti mengunci path /bin/bash tanpa izin mengeksekusi bisa membuat sistem tidak berfungsi — dan snapshot adalah tombol undo kalian. Kalau rusak, restore saja.
Tip
Jika kalian ingin berlatih konfinasi tanpa mengorbankan host, gunakan kontainer Docker sebagai area latihan — Docker bahkan memuat profil default AppArmor untuk setiap kontainer. Namun tetap utamakan VM untuk memahami cara kerja sebenarnya di level sistem operasi.
Kernel hanyalah enforcer; tools untuk membaca status, membuat profil, dan troubleshooting semuanya ada di package userspace. Setelah sistem bersih terinstall, install package berikut:
sudo apt install apparmor-utilsUntuk openSUSE, padanannya adalah sudo zypper install apparmor-utils — package yang sama dengan nama yang sama. Setelah install selesai, kenali anggota apparmor-utils berikut — mereka akan menemani kalian sepanjang series ini:
| Tool | Peran |
|---|---|
aa-status | Menampilkan status AppArmor dan daftar profil yang dimuat |
aa-genprof | Menghasilkan profil baru secara interaktif dari sebuah executable |
aa-logprof | Mengupdate profil dari log denial yang direkam sistem |
aa-notify | Menampilkan notifikasi denial AppArmor dari log |
Jika aa-status atau aa-genprof belum ada setelah install, pastikan package benar-benar terpasang dengan apt list --installed | grep apparmor.
Saatnya memastikan semuanya siap. Pertama, cek apakah AppArmor aktif di kernel kalian:
aa-enabledOutput Yes (atau exit code 0) berarti AppArmor aktif di kernel. Selanjutnya, lihat status lengkap:
sudo aa-statusapparmor module is loaded.
51 profiles are loaded.
49 profiles are in enforce mode.
2 profiles are in complain mode.
24 processes have profiles defined.
24 processes are in enforce mode.Tiga baris yang wajib kalian perhatikan: apparmor module is loaded (kernelnya aktif), jumlah profil yang dimuat, dan pembagian mode enforce vs complain — dua mode yang akan kita bedah tuntas di episode 2 dan 3. Jika output sudah seperti di atas, environment kalian sudah resmi siap.
aa-status tidak akan ada. Pastikan kalian di Ubuntu/Debian/openSUSE.apparmor-utils. Jika aa-genprof atau aa-logprof tidak ditemukan, kalian belum menginstall tools userspace-nya.Di episode 0 ini kita sudah menyiapkan pijakan yang kokoh untuk seluruh perjalanan: memastikan kalian menguasai skill dasar Linux (CLI, systemd, permission, proses dan library), memilih distro dengan AppArmor aktif, menyiapkan lab VM yang aman, menginstall tools userspace, dan memverifikasi bahwa AppArmor berjalan.
Poin penting yang harus kalian bawa:
aa-status, aa-genprof, aa-logprof, aa-notify) adalah senjata utama kalian — pastikan terinstall.Ingat, series Belajar AppArmor 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 AppArmor — mulai dari kelahiran di Immunix, adopsi oleh Novell dan SUSE, integrasi ke kernel 2.6.36, hingga ekosistem userspace modern yang dipakai hari ini. Pastikan tetap semangat, karena perjalanan belajar AppArmor baru saja dimulai!