Posted in Komputer/IT

Konfigurasi SELinux Untuk Aplikasi Web


Ketika kita men-deploy aplikasi web ke server yang dilengkapi dengan fitur SELinux (contohnya RedHat/CentOS), kita harus melakukan konfigurasi agar project yang kita deploy bisa diakses/digunakan user (disamping konfigurasi dasar seperti chown dan chmod). 

Untuk keterangan lebih lanjut mengenai SELinux, bisa membaca dari website RedHat/CentOS.

Pada artikel ini akan dijelaskan beberapa poin penting yang bisa dilakukan agar project kita tidak diblok oleh SELinux dengan tidak mematikan/disable SELinux-nya (karena apabila SELinux di-disable membuat server lebih rentan terhadap serangan hacker/cracker).

Diasumsikan folder root untuk aplikasi yang dideploy adalah folder /var/www/html/myweb/ menggunakan service httpd dan user yang melakukan konfigurasi adalah root.

Untuk melihat tipe context SELinux dari folder project kita:

ls -aZ /var/www/html/myweb

Untuk mengubah tipe context folder project kita menjadi httpd_sys_content_t secara recursive:

chcon -Rv --type=httpd_sys_content_t /var/www/html/myweb

Konfigurasi di atas tidak permanen, apabila server reboot akan berubah ke default. Untuk membuat permanen:

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

Untuk menggunakan semanage, package yang harus di-install:

policycoreutils-python-utils atau policycoreutils-python

Untuk membuat httpd bisa menulis ke folder tertentu (mirip dengan chmod +w), contoh ke folder uploads:

chcon -Rv --type=httpd_sys_rw_content_t /var/html/myweb/uploads

Untuk membuat konfigurasi di atas menjadi permanen:

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/myweb/uploads(/.*)?"

Jangan lupa untuk chmod +w juga.

Agar aplikasi web bisa membuat koneksi ke database:

setsebool -P httpd_can_network_connect_db 1

Untuk membuka port misalnya 81 (disamping menggunakan firewall):

semanage port -a -t http_port_t -p tcp 81

Jangan lupa untuk membuka port dari firewall juga

Untuk melihat log SELinux ada di lokasi:

 /var/log/audit/audit.log

Demikian konfigurasi dasar SELinux untuk deployment aplikasi web yang menggunakan service httpd.

Mudah-mudahan bermanfaat.

Wassalam.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s