SELinux adalah sebuah modul keamanan pada Linux yang menyediakan sebuah mekanisme untuk membantu membuat kebijakan-kebijakan (policies) keamanan untuk kontrol akses pada sebuah komputer.

Pada sebuah server yang ingin digunakan sebagai web server, dengan menggunakan akun root, maka dapat digunakan langkah-langkah berikut:

  1. Ubah SELinux policy agar database dan file-file dapat diakses oleh web server, maka digunakan perintah-perintah:
    setsebool -P httpd_can_network_connect_db on
    setsebool -P httpd_read_user_content on
    setsebool -P httpd_builtin_scripting on
  2. Dengan asumsi direktori web bertempat di /var/www/web (direktori publik) dan /var/web_system (direktori sistem aplikasi web), ketikkan perintah di bawah untuk membuat konteks httpd_sys_content_t ke direktori tersebut:
    semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
  3. Buat sebuah policy untuk direktori logging:
    semanage fcontext -a -t httpd_log_t "/var/web_system/logs(/.*)?"
  4. Buat sebuah policy untuk direktori cache (bila diperlukan):
    semanage fcontext -a -t httpd_cache_t "/var/web_system/cache(/.*)?"
  5. Buat sebuah policy agar direktori-direktori untuk mengunggah file:
    semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/web/uploads(/.*)?"

Untuk menyelesaikan pembuatan policies di atas gunakan perintah:

restorecon -Rv /var/web_system
restorecon -Rv /var/www/web

Mengakses Policies

Bila kita ingin melihat policies apa saja yang berlaku di filesystem server dapat dilihat dengan perintah:

semanage fcontext -l

Bila ingin melihat policies yang berlaku pada sebuah direktori:

ls -lZ /var/web_system

Demikian perkenalan mengenai SELinux, semoga bermanfaat.