Ya, SELinux membuat Red Hat (dan distribusi Linux lainnya yang benar-benar menggunakannya) lebih aman, dengan asumsi itu benar-benar digunakan.
SELinux mengimplementasikan kontrol akses wajib . Izin Unix Normal, ACL, dll., Menerapkan kontrol akses diskresioner . Keduanya saling melengkapi.
Agar berfungsi, SELinux membutuhkan kebijakan, menentukan tindakan apa yang mungkin diizinkan pada sistem. Meskipun dimungkinkan untuk membuat kebijakan keseluruhan sistem dari awal, sebagian besar distribusi Linux mengirimkan kebijakan berdasarkan apa yang disebut kebijakan referensi . Ini berarti, antara lain, bahwa mengkonfigurasi SELinux di seluruh distribusi akan sangat mirip. (Sebagian besar distribusi Linux membuat kebijakan referensi SELinux tersedia dalam repositori paket mereka, meskipun mungkin tidak diinstal secara default.)
SELinux bekerja dengan membatasi pengguna dan proses untuk melakukan hanya tindakan yang diizinkan bagi mereka dalam kebijakan. Secara default, kebijakannya adalah menolak, jadi jika kebijakan itu tidak secara eksplisit mengizinkan tindakan, maka itu tidak terjadi. Inilah sebabnya mengapa Anda sering mengalami masalah dengan SELinux yang melarang sesuatu yang Anda coba lakukan.
Sisi baiknya, ini juga mencegah eksploitasi, bahkan eksploitasi 0 hari, tidak terkendali. Misalnya, jika server web Anda (Apache) dieksploitasi, kerusakan hanya terbatas pada hal-hal yang dapat diakses oleh Apache. /etc/shadow
Misalnya, itu tidak akan dapat membaca file Anda , bahkan dengan eksploit root jarak jauh. Sementara izin Unix (DAC) mengizinkan root untuk membaca file, SELinux (MAC) tidak mengizinkan proses yang dikompromikan untuk keluar dari batas.
Gotcha besar adalah bahwa harus ada modul kebijakan SELinux yang dimuat untuk layanan. Jika Anda memasang layanan pada kotak Anda yang tidak termasuk modul kebijakan SELinux, maka itu akan berjalan tanpa batas dan dapat melakukan apa pun yang diinginkan. SELinux tidak akan berlaku untuk itu.
Hal lain yang harus Anda ketahui adalah semua tentang boolean . Parameter yang dapat diatur ini disediakan oleh kebijakan SELinux untuk menyesuaikannya untuk instalasi tertentu, dan mengizinkan atau menolak akses berdasarkan kebutuhan konfigurasi lokal. Misalnya, Anda dapat memberikan akses Apache ke share Samba, mengaktifkan Samba untuk membagikan direktori home user, dan banyak hal lain yang berpotensi berguna yang diperlukan untuk beberapa pengaturan tetapi tidak yang lain.
Panduan terbaik untuk SELinux yang saya lihat saat ini adalah Panduan Pengguna Linux Red -Enhanced Security . Ini akan membantu Anda bangun dan berlari dengan cepat serta mengisi detail latar belakang tentang apa yang terjadi. Ini juga termasuk panduan pemecahan masalah yang komprehensif yang membantu Anda menjalankan proses Anda di bawah SELinux.
Apakah itu berguna?
SELinux melindungi terhadap proses (dan pengguna, jika Anda membatasi pengguna Anda) melakukan hal-hal yang tidak terduga. Ini sangat membatasi kerusakan yang bisa dilakukan oleh eksploitasi jarak jauh. Jika Anda tidak pernah mengalami kompromi jarak jauh, Anda (1) beruntung, dan (2) mungkin baru. Jika Anda telah bekerja dengan kompromi jarak jauh, Anda tentu tidak ingin hal itu terjadi lagi.
Ini tidak berguna dalam pengaturan rumah , kecuali jika Anda menjalankan layanan yang menghadap Internet di rumah (dan sebagian orang melakukannya). Dalam hal itu, semua yang dikatakan di atas berlaku.
SELinux mungkin merupakan hal terakhir yang berada di antara data Anda dan penyerang dengan exploit 0 hari yang benar-benar menginginkannya. Jika Anda bisa menggunakannya, mengapa tidak?