Juni 22, 2026
ChatGPT Image 22 Jun 2026, 08.20.23
Pelajari perbedaan SELinux vs AppArmor untuk membatasi dampak serangan siber melalui Mandatory Access Control (MAC) dan meningkatkan keamanan server Linux.

Mengapa Firewall Saja Tidak Cukup?

Banyak administrator server merasa aman setelah memasang firewall, melakukan hardening sistem, dan memperbarui paket secara rutin. Namun kenyataannya, tidak ada sistem yang benar-benar kebal dari celah keamanan.

Bayangkan sebuah server web menggunakan Nginx berhasil diretas karena kerentanan aplikasi web. Penyerang mendapatkan shell pada server dan kini memiliki akses untuk menjalankan perintah.

Pertanyaan pentingnya adalah:

Seberapa besar kerusakan yang bisa dilakukan penyerang setelah berhasil masuk?

Di sinilah konsep Mandatory Access Control (MAC) menjadi sangat penting.

MAC dirancang untuk membatasi ruang gerak aplikasi maupun pengguna sehingga ketika terjadi kompromi, dampak kerusakan dapat diminimalkan. Pendekatan ini dikenal sebagai membatasi blast radius atau area dampak serangan.

Dua implementasi MAC paling populer di Linux adalah:

  • SELinux
  • AppArmor

Keduanya memiliki tujuan yang sama tetapi pendekatan yang berbeda.


Apa Itu Mandatory Access Control (MAC)?

Mandatory Access Control (MAC) adalah mekanisme keamanan yang menentukan apa yang boleh dan tidak boleh dilakukan oleh sebuah proses, terlepas dari hak akses Linux tradisional.

Secara sederhana:

Tanpa MAC

Jika Nginx diretas dan berhasil mendapatkan akses user www-data:

  • Membaca file sensitif
  • Mengakses direktori tertentu
  • Menjalankan program lain
  • Melakukan pivot ke layanan lain

Semuanya mungkin terjadi apabila izin sistem memungkinkan.

Dengan MAC

Meskipun attacker berhasil memperoleh shell dari Nginx:

  • Hanya dapat mengakses file yang diizinkan profil
  • Tidak dapat membaca file sensitif lain
  • Tidak dapat menjalankan proses tertentu
  • Tidak dapat bergerak bebas ke area sistem lain

Akibatnya kerusakan menjadi jauh lebih kecil.


Analogi Sederhana: Satpam di Dalam Gedung

Bayangkan sebuah gedung perkantoran besar.

Permission Linux Tradisional

Ibarat kartu akses utama.

Jika seseorang memiliki kartu tersebut, ia bisa masuk ke banyak ruangan.

Mandatory Access Control

Ibarat satpam yang berdiri di setiap ruangan.

Walaupun seseorang memiliki kartu akses dan berhasil masuk gedung, satpam tetap membatasi area mana yang boleh dimasuki.

Inilah konsep utama MAC.


Mengenal AppArmor

AppArmor adalah sistem Mandatory Access Control yang menjadi standar pada distribusi Linux berbasis Ubuntu.

Beberapa distribusi yang menggunakan AppArmor:

  • Ubuntu Server
  • Ubuntu Desktop
  • Debian (opsional)
  • openSUSE

Keunggulan utama AppArmor adalah kemudahan konfigurasi.

AppArmor menggunakan pendekatan:

Path-Based Security

Artinya aturan dibuat berdasarkan lokasi file atau direktori.

Contoh:

/usr/sbin/nginx

Atau:

/var/www/html/**

Cara Memeriksa Status AppArmor

Jalankan perintah berikut:

aa-status

Contoh output:

apparmor module is loaded.
100 profiles are loaded.
90 profiles are in enforce mode.
10 profiles are in complain mode.

Informasi ini menunjukkan profil mana yang aktif dan bagaimana statusnya.


Melihat Profil Nginx

Untuk melihat aturan AppArmor yang digunakan Nginx:

cat /etc/apparmor.d/usr.sbin.nginx

Di dalamnya terdapat aturan mengenai:

  • Direktori yang boleh diakses
  • File yang boleh dibaca
  • File yang boleh ditulis
  • Program yang boleh dijalankan

Mode AppArmor

Enforce Mode

Mode produksi.

Pada mode ini:

  • Akses tidak sah diblokir
  • Aktivitas dicatat ke log
  • Perlindungan berjalan penuh

Contoh:

Jika Nginx mencoba membaca:

/etc/shadow

Maka AppArmor langsung menolak akses.


Complain Mode

Mode pembelajaran.

Pada mode ini:

  • Akses tidak diblokir
  • Semua aktivitas dicatat ke log
  • Cocok untuk pengembangan profil

Administrator dapat menganalisis aktivitas aplikasi terlebih dahulu sebelum mengaktifkan mode enforce.

Mengubah profil menjadi complain mode:

sudo aa-complain /usr/sbin/nginx

Mengembalikan ke enforce mode:

sudo aa-enforce /usr/sbin/nginx

Membuat Profil Baru Secara Otomatis

Salah satu fitur terbaik AppArmor adalah kemampuan menghasilkan profil otomatis.

Misalnya terdapat aplikasi:

/usr/local/bin/myapp

Buat profil menggunakan:

sudo aa-genprof /usr/local/bin/myapp

Kemudian:

  1. Jalankan aplikasi seperti biasa
  2. Gunakan seluruh fitur aplikasi
  3. AppArmor merekam aktivitas
  4. Sistem membuat profil berdasarkan akses yang digunakan

Metode ini mempercepat implementasi keamanan.


Mengenal SELinux

SELinux atau Security Enhanced Linux awalnya dikembangkan oleh NSA dan kini menjadi standar pada banyak distribusi Enterprise Linux.

Distribusi yang menggunakan SELinux:

  • RHEL
  • Rocky Linux
  • AlmaLinux
  • CentOS Stream
  • Fedora

Berbeda dengan AppArmor, SELinux menggunakan pendekatan:

Label-Based Security

Setiap file, proses, dan resource memiliki label keamanan.

Contoh label:

system_u:object_r:httpd_sys_content_t:s0

Label inilah yang menentukan hubungan akses antar objek sistem.


Mengapa SELinux Dianggap Lebih Kuat?

SELinux tidak bergantung pada lokasi file.

Misalnya sebuah file dipindahkan:

/var/www/html/index.php

ke

/home/user/index.php

Label keamanan tetap melekat.

Karena itu kontrol akses menjadi lebih konsisten dan granular.


Mengecek Status SELinux

Gunakan:

sestatus

Contoh output:

SELinux status: enabled
Current mode: enforcing

Mode SELinux

Enforcing

Kebijakan diterapkan penuh.

Permissive

Pelanggaran dicatat tetapi tidak diblokir.

Disabled

SELinux dimatikan.

Mengubah sementara ke permissive:

setenforce 0

Mengaktifkan kembali:

setenforce 1

Perbandingan SELinux vs AppArmor

AspekAppArmorSELinux
MetodePath-BasedLabel-Based
KompleksitasRendahTinggi
Kemudahan BelajarSangat MudahLebih Sulit
GranularitasBaikSangat Detail
Distribusi UmumUbuntuRHEL/Rocky
Cocok untuk PemulaYaTidak
Enterprise ScaleBaikSangat Baik

Studi Kasus: Nginx Berhasil Diretas

Misalnya attacker berhasil mendapatkan shell:

www-data@server

Tanpa MAC:

  • Membaca file konfigurasi
  • Mengakses credential database
  • Melakukan privilege escalation
  • Menjelajahi seluruh sistem

Dengan AppArmor atau SELinux:

  • Hanya mengakses area yang diizinkan
  • Tidak dapat membaca file sensitif
  • Tidak dapat menjalankan proses tertentu
  • Sulit melakukan lateral movement

Inilah alasan mengapa MAC dianggap sebagai lapisan keamanan yang sangat penting.


Implementasi AppArmor di Ubuntu

Langkah 1: Pastikan AppArmor Aktif

sudo systemctl status apparmor

Langkah 2: Lihat Profil Aktif

aa-status

Langkah 3: Identifikasi Aplikasi Penting

Prioritaskan:

  • Nginx
  • Apache
  • MariaDB
  • PostgreSQL
  • Docker
  • Aplikasi internal

Langkah 4: Audit Log

journalctl -xe | grep apparmor

Atau:

dmesg | grep DENIED

Langkah 5: Buat Profil Kustom

sudo aa-genprof /usr/local/bin/myapp

Langkah 6: Uji dengan Complain Mode

sudo aa-complain /usr/local/bin/myapp

Langkah 7: Aktifkan Enforce Mode

sudo aa-enforce /usr/local/bin/myapp

Tips Praktis Menggunakan MAC

Jangan Langsung Mengaktifkan Enforce

Gunakan complain/permissive terlebih dahulu.

Audit Log Secara Berkala

Periksa aktivitas yang diblokir untuk menghindari false positive.

Terapkan pada Service Publik

Prioritaskan:

  • Web Server
  • Database
  • Reverse Proxy
  • Container Runtime

Dokumentasikan Profil

Simpan seluruh profil dalam Git Repository agar mudah dikelola.

Integrasikan dengan Hardening Lain

Gabungkan dengan:

  • Firewall
  • Fail2Ban
  • IDS/IPS
  • Auditd
  • Patch Management

Kesimpulan

Firewall dan patch keamanan memang penting, tetapi keduanya tidak cukup untuk menghentikan dampak ketika sebuah layanan berhasil diretas.

Mandatory Access Control melalui AppArmor maupun SELinux memberikan lapisan perlindungan tambahan dengan membatasi apa yang dapat dilakukan sebuah proses setelah berhasil dikompromikan.

Jika Anda menggunakan Ubuntu, AppArmor adalah pilihan yang mudah dipelajari dan cepat diterapkan.

Jika Anda menggunakan Rocky Linux, AlmaLinux, atau RHEL, SELinux menawarkan kontrol yang lebih granular dan cocok untuk lingkungan enterprise.

Prinsip terpentingnya adalah:

Asumsikan suatu saat akan terjadi breach, lalu batasi dampaknya semaksimal mungkin.

Dengan pendekatan tersebut, serangan yang berhasil menembus aplikasi tidak otomatis berubah menjadi kompromi penuh terhadap seluruh server.


FAQ

1. Apa perbedaan utama SELinux dan AppArmor?

AppArmor menggunakan pendekatan berbasis path file, sedangkan SELinux menggunakan label keamanan yang lebih granular.

2. Mana yang lebih mudah dipelajari?

AppArmor umumnya lebih mudah dipahami dan dikonfigurasi dibandingkan SELinux.

3. Apakah Ubuntu menggunakan SELinux?

Secara default Ubuntu menggunakan AppArmor.

4. Kapan sebaiknya menggunakan SELinux?

SELinux cocok untuk lingkungan enterprise yang membutuhkan kontrol keamanan sangat detail.

5. Apakah AppArmor dapat mencegah serangan?

Tidak sepenuhnya. AppArmor lebih fokus membatasi dampak kerusakan ketika serangan berhasil terjadi.

6. Apa fungsi mode complain pada AppArmor?

Mode complain hanya mencatat pelanggaran tanpa memblokir akses sehingga cocok untuk pembuatan profil baru.


Apakah Anda sudah menggunakan AppArmor atau SELinux di server Linux Anda?

Bagikan pengalaman Anda di kolom komentar. Jika artikel ini bermanfaat, jangan lupa bagikan kepada rekan administrator server, mahasiswa, maupun praktisi IT lainnya.

Untuk mendapatkan tutorial Linux, Server, Cloud Computing, Cyber Security, dan Networking terbaru, subscribe channel YouTube, ikuti Instagram, serta baca artikel-artikel terbaru lainnya di website ini.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Protected By
Shield Security