Managing SELinux Security
Tags: ramadhanbersamaredhat
Published: 2024-04-02 02:12:58

Mengelola Keamanan SELinux

Bagaimana SELinux Melindungi Sumber Daya

SELinux adalah fitur keamanan penting dari Linux. Akses ke file dan sumber daya lainnya dikontrol pada tingkat yang sangat detail. Proses hanya diizinkan mengakses sumber daya yang ditentukan oleh kebijakan mereka, atau pengaturan boolean SELinux.

Izin file mengontrol pengguna atau grup pengguna mana yang dapat mengakses file spesifik tertentu. Namun, pengguna yang diberi akses baca atau tulis ke file tertentu dapat menggunakan file tersebut dengan cara yang mereka pilih, bahkan jika penggunaan tersebut tidak sesuai dengan cara file seharusnya digunakan.

Contohnya, dengan akses tulis ke file, apakah file data terstruktur yang dirancang untuk ditulis hanya menggunakan program tertentu, boleh dibuka dan dimodifikasi oleh editor lain yang dapat mengakibatkan kerusakan?

Izin file tidak dapat menghentikan akses yang tidak diinginkan seperti itu. Mereka tidak pernah dirancang untuk mengontrol bagaimana suatu file digunakan, tetapi hanya siapa yang diizinkan untuk membaca, menulis, atau menjalankan file.

SELinux terdiri dari set kebijakan, yang ditentukan oleh pengembang aplikasi, yang menyatakan dengan tepat tindakan dan akses apa yang tepat dan diizinkan untuk setiap eksekutor biner, file konfigurasi, dan file data yang digunakan oleh suatu aplikasi. Ini dikenal sebagai kebijakan tertarget karena satu kebijakan ditulis untuk menutupi aktivitas dari satu aplikasi. Kebijakan menyatakan label yang telah ditentukan sebelumnya yang ditempatkan pada program individu, file, dan port jaringan.

Mengapa Menggunakan Security Enhanced Linux?
Tidak semua masalah keamanan dapat diprediksi sebelumnya. SELinux menegakkan seperangkat aturan akses yang mencegah kelemahan dalam satu aplikasi memengaruhi aplikasi lain atau sistem yang mendasarinya. SELinux memberikan lapisan keamanan tambahan; itu juga menambahkan lapisan kompleksitas yang dapat membuat orang yang baru mengenal subsistem ini terasa enggan. Belajar untuk bekerja dengan SELinux mungkin memerlukan waktu tetapi kebijakan penegakan berarti bahwa kelemahan dalam satu bagian sistem tidak menyebar ke bagian lain. Jika SELinux bekerja buruk dengan subsistem tertentu, Anda dapat mematikan penegakan untuk layanan tertentu tersebut sampai Anda menemukan solusi untuk masalah yang mendasarinya.

SELinux memiliki tiga mode:

Penegakan: SELinux menegakkan aturan kontrol akses. Komputer umumnya berjalan dalam mode ini.

Penerimaan: SELinux aktif tetapi bukan menegakkan aturan kontrol akses, tetapi mencatat peringatan tentang aturan yang dilanggar. Mode ini digunakan terutama untuk pengujian dan pemecahan masalah.

Nonaktif: SELinux dimatikan sepenuhnya: tidak ada pelanggaran SELinux yang ditolak, bahkan tidak dicatat. Dilarang!

Konsep Keamanan SELinux Dasar
Security Enhanced Linux (SELinux) adalah lapisan keamanan sistem tambahan. Tujuan utama dari SELinux adalah melindungi data pengguna dari layanan sistem yang telah terpengaruh. Sebagian besar administrator Linux mengenal model keamanan izin pengguna/grup/lainnya standar. Ini adalah model berbasis pengguna dan grup yang dikenal sebagai kontrol akses diskresioner. SELinux menyediakan lapisan keamanan tambahan yang berbasis objek dan dikontrol oleh aturan yang lebih canggih, yang dikenal sebagai kontrol akses wajib.

Untuk mengizinkan akses anonim jarak jauh ke server web, port firewall harus dibuka. Namun, ini memberikan peluang bagi orang jahat untuk mengompromi sistem melalui kerentanan. Jika mereka berhasil mengompromi proses server web, mereka mendapatkan izin tersebut. Secara khusus, izin pengguna apache dan grup apache. Pengguna dan grup itu memiliki akses baca ke root dokumen, /var/www/html. Itu juga memiliki akses ke /tmp, dan /var/tmp, dan file dan direktori lain yang dapat ditulis dunia.

SELinux adalah seperangkat aturan keamanan yang menentukan proses mana yang dapat mengakses file, direktori, dan port mana. Setiap file, proses, direktori, dan port memiliki label keamanan khusus yang disebut konteks SELinux. Konteks adalah nama yang digunakan oleh kebijakan SELinux untuk menentukan apakah proses dapat mengakses file, direktori, atau port. Secara default, kebijakan tidak mengizinkan interaksi apa pun kecuali aturan eksplisit memberikan akses. Jika tidak ada aturan izin, tidak ada akses yang diizinkan.

Label SELinux memiliki beberapa konteks: pengguna, peran, tipe, dan sensitivitas. Kebijakan bertarget, yang merupakan kebijakan default yang diaktifkan dalam Red Hat Enterprise Linux, didasarkan pada konteks ketiga: konteks tipe. Nama konteks tipe biasanya diakhiri dengan _t.

Konteks tipe untuk server web adalah httpd_t. Konteks tipe untuk file dan direktori biasanya ditemukan di /var/www/html adalah httpd_sys_content_t. Konteks untuk file dan direktori biasanya ditemukan di /tmp dan /var/tmp adalah tmp_t. Konteks tipe untuk port server web adalah http_port_t.

Apache memiliki konteks tipe httpd_t. Ada aturan kebijakan yang mengizinkan akses Apache ke file dan direktori dengan konteks tipe httpd_sys_content_t. Secara default, file yang ditemukan di /var/www/html dan direktori lain server web memiliki konteks tipe httpd_sys_content_t. Tidak ada aturan izin dalam kebijakan untuk file biasanya ditemukan di /tmp dan /var/tmp, sehingga akses tidak diizinkan. Dengan SELinux diaktifkan, pengguna jahat yang telah mengompromi proses server web tidak dapat mengakses direktori /tmp. Server MariaDB memiliki konteks tipe mysqld_t. Secara default, file yang ditemukan di /data/mysql memiliki konteks tipe mysqld_db_t. Konteks tipe ini mengizinkan akses MariaDB ke file tersebut tetapi menonaktifkan akses oleh layanan lain, seperti layanan web Apache.