Press ESC to close

Memahami SELinux Booleans dan Context di Rocky Linux

WhatsAppTelegramFacebookXThreadsCopy Link

Pernahkah Anda merasa frustrasi karena aplikasi di Rocky Linux berjalan dengan baik saat SELinux dinonaktifkan, tetapi tiba-tiba bermasalah begitu SELinux diaktifkan? πŸ˜…
Situasi ini sangat umum terjadi, terutama bagi pengguna baru yang belum memahami bagaimana SELinux (Security-Enhanced Linux) mengontrol izin akses sistem.

Banyak pengguna akhirnya memilih jalan pintas: menonaktifkan SELinux sepenuhnya. Padahal, SELinux dirancang untuk memberikan lapisan keamanan ekstra yang sangat penting bagi server Linux.
Masalahnya bukan pada SELinux itu sendiri, tetapi karena belum memahami dua komponen utamanya: Booleans dan Context.

Dalam artikel ini, Anda akan belajar:

  • Apa itu SELinux Booleans dan bagaimana cara mengubahnya.
  • Apa itu SELinux Context dan mengapa konteks file penting bagi keamanan.
  • Langkah demi langkah cara memeriksa, memodifikasi, dan mengelola keduanya dengan aman.
  • Tips praktis agar sistem tetap aman tanpa harus menonaktifkan SELinux.

1. Apa Itu SELinux Booleans?

SELinux Booleans adalah parameter konfigurasi yang bisa diubah dengan cepat untuk mengaktifkan atau menonaktifkan fitur keamanan tertentu tanpa perlu menulis kebijakan baru.
Dengan kata lain, Booleans adalah β€œsaklar” dalam SELinux.

Contoh sederhana:

  • Anda ingin Apache (httpd) bisa terhubung ke database MySQL.
    Maka aktifkan boolean berikut:
 sudo setsebool -P httpd_can_network_connect_db on

Keterangan:

  • -P = perubahan permanen (tetap berlaku setelah reboot).
  • on/off = nilai boolean yang ingin Anda ubah.

Melihat Semua Booleans Aktif

Untuk melihat seluruh daftar Booleans di sistem Anda:

getsebool -a

Menyaring Berdasarkan Layanan Tertentu

Misalnya Anda hanya ingin melihat boolean untuk Apache:

getsebool -a | grep httpd

Mengubah Nilai Boolean Sementara

Jika Anda ingin mencoba dulu tanpa menyimpan perubahan permanen:

sudo setsebool httpd_enable_homedirs on

Jika ternyata tidak cocok, reboot server atau ubah kembali ke off.


2. Apa Itu SELinux Context?

SELinux Context menentukan siapa yang bisa mengakses apa di sistem.
Setiap file, folder, dan proses di Linux memiliki label konteks keamanan yang terdiri dari empat bagian:

user:role:type:level

Contohnya:

system_u:object_r:httpd_sys_content_t:s0

Penjelasan singkat:

  • user β†’ siapa pemilik konteks (biasanya system_u).
  • role β†’ peran dalam sistem.
  • type β†’ tipe domain, paling penting karena menentukan akses.
  • level β†’ digunakan pada sistem dengan keamanan tingkat tinggi (jarang diubah).

Jika konteks file tidak sesuai, SELinux akan memblokir akses, meski izin file (chmod) sudah benar.


3. Mengecek Context File dan Direktori

Gunakan perintah berikut untuk melihat konteks:

ls -Z /var/www/html

Hasilnya akan menampilkan konteks di kolom terakhir, misalnya:

-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html

Jika file web Anda memiliki konteks berbeda, Apache mungkin tidak bisa membacanya.


4. Mengubah SELinux Context

Ada dua cara utama untuk memperbaiki atau mengubah konteks file:

A. Menggunakan chcon (Sementara)

Jika Anda ingin mengubah konteks file tanpa membuatnya permanen:

sudo chcon -t httpd_sys_content_t /var/www/html/index.html

Namun, konteks ini akan hilang setelah relabeling sistem (misalnya setelah restorecon -R /).

B. Menggunakan semanage fcontext (Permanen)

Jika Anda ingin menetapkan konteks secara permanen:

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -Rv /var/www/html

Penjelasan:

  • -a β†’ menambahkan aturan baru.
  • -t β†’ menentukan tipe konteks.
  • restorecon β†’ menerapkan perubahan ke file yang sesuai dengan aturan.

5. Memulihkan Context Default

Jika konteks suatu file sudah berantakan, Anda bisa memulihkannya ke kondisi awal dengan:

sudo restorecon -Rv /path/to/directory

Contoh:

sudo restorecon -Rv /var/www/html

Ini akan memeriksa dan memperbaiki semua konteks yang salah sesuai kebijakan bawaan SELinux.


6. Tips Praktis Mengelola SELinux Booleans dan Context

  • Selalu uji dulu di mode Permissive sebelum Enforcing, untuk memastikan tidak ada layanan yang terblokir.
  • Gunakan audit.log atau journalctl -t setroubleshoot untuk memantau error SELinux.
  • Hindari menonaktifkan SELinux secara total β€” cukup atur Booleans atau Context sesuai kebutuhan.
  • Dokumentasikan setiap perubahan konfigurasi yang Anda lakukan.

Dengan memahami Booleans dan Context, Anda sudah selangkah lebih maju dalam menguasai SELinux di Rocky Linux.
Sekarang Anda bisa mengizinkan layanan bekerja dengan aman tanpa harus menurunkan tingkat keamanan sistem.

Ingin melangkah lebih jauh?
Baca juga: [Mengkonfigurasi SELinux di Rocky Linux: Menerapkan Kebijakan Keamanan]

WhatsAppTelegramFacebookXThreadsCopy Link