Apakah SELinux membuat Redhat lebih aman?

10

Apakah SELinux membuat Redhat lebih aman?

Saya tidak dapat mengingat berapa kali saya telah menonaktifkan SELinux karena itu membuat saya frustasi karena menjalankan sesuatu. Banyak kali ke sana tidak ada alasan yang jelas mengapa hal-hal tidak berfungsi dan saya harus ke Google untuk menemukan alasannya.

Mengingat bahwa sebagian besar pengguna biasa akan menonaktifkan atau melemahkan keamanan ketika tampaknya menghalangi, dengan mengecualikan pengguna Redhat yang serius dan tegas, apakah SELinux benar-benar berguna?

PS. Apakah ada alat yang membantu Anda mencatat, melacak, dan mengelola masalah SELinux di semua aplikasi?

vfclists
sumber

Jawaban:

9

Ya, Selinux membuat sistem lebih aman. Tetapi Anda harus memahami konsepnya dan memiliki setidaknya pengetahuan dasar tentang selinux dan alat audit.

Selinux sedang masuk ke /var/log/audit/audit.log (tapi pastikan auditd berjalan), dan ada sejumlah alat untuk menyelesaikan masalah selinux. Mungkin cara paling sederhana adalah menggunakan audit2allow

rvs
sumber
17

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/shadowMisalnya, 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?

Michael Hampton
sumber
3

Saya pikir SELinux hanya memperluas sistem perizinan tradisional dengan memperkenalkan pengaturan yang diperpanjang atas izin. Apakah itu membuat sistem Anda lebih aman? Saya pikir itu tergantung pada bagaimana Anda menggunakan SELinux dalam aplikasi Anda. Saya juga tidak pandai SELinux, tetapi mengonfigurasinya perlu lebih banyak pengetahuan tentang keterbatasan yang dapat Anda berikan. Tetapi itu juga memperkenalkan banyak masalah yang perlu Anda selidiki secara manual untuk mengatasinya

Troydm
sumber
1
SELinux melakukan lebih dari sekedar memperpanjang izin POSIX tradisional. SELinux dapat membatasi akses ke port jaringan tertentu, misalnya.
wzzrd
3

Ada paket yang membantu pengguna menemukan masalah yang disebabkan oleh SELinux bernama setroubleshoot. Instal, atur agar dijalankan pada awal. Kemudian ketika Anda mendapatkan penolakan SELinux, itu akan dicatat dalam /var/log/messages. Jika Anda masuk ke GUI juga, Anda akan mendapat notifikasi.

Kevin M.
sumber