GNU/Linux >> Belajar Linux >  >> Linux

Peran apa yang dimainkan DAC (izin file), ACL dan MAC (SELinux) dalam keamanan file Linux?

Ketika suatu proses melakukan operasi ke file, kernel Linux melakukan pemeriksaan dengan urutan sebagai berikut:

  1. Discretionary Access Control (DAC) atau kontrol akses yang ditentukan pengguna. Ini termasuk pemeriksaan izin gaya UNIX klasik dan Daftar Kontrol Akses POSIX (ACL). Pemeriksaan UNIX klasik membandingkan UID dan GID proses saat ini versus UID dan GID dari file yang sedang diakses sehubungan dengan mode mana yang telah ditetapkan (Baca/Tulis/eXecute). Daftar Kontrol Akses memperluas pemeriksaan UNIX klasik untuk memungkinkan lebih banyak opsi terkait kontrol izin.

  2. Mandatory Access Control (MAC) atau kontrol akses berbasis kebijakan. Ini diimplementasikan menggunakan Linux Security Modules (LSM) yang bukan modul nyata lagi (dulu tapi sudah dijatuhkan). Mereka mengaktifkan pemeriksaan tambahan berdasarkan model lain selain pemeriksaan keamanan gaya UNIX klasik. Semua model tersebut didasarkan pada kebijakan yang menjelaskan jenis operasi apa yang diizinkan untuk proses mana dalam konteks apa.

Berikut adalah contoh untuk akses inode (yang mencakup akses file) untuk mendukung jawaban saya dengan tautan ke Referensi Silang Linux online. Kode "function_name (filename:line)" yang diberikan adalah untuk kernel Linux versi 3.14.

Fungsi inode_permission (fs/namei.c:449) pertama-tama memeriksa izin baca pada sistem file itu sendiri (sb_permission di fs/namei.c:425), lalu panggil __inode_permission (fs/namei.c:394) untuk memeriksa izin baca/tulis/eksekusi dan POSIX ACL pada inode di do_inode_permission (fs/namei.c:368) (DAC) dan kemudian izin terkait LSM (MAC) di security_inode_permission (keamanan/keamanan.c:550).

Hanya ada satu pengecualian untuk pesanan ini (DAC lalu MAC):itu untuk pemeriksaan mmap. Namun hal ini telah diperbaiki pada kernel Linux versi 3.15 (commit yang relevan).


DAC ==Discretionary Access Control , http://en.wikipedia.org/wiki/Discretionary_access_control
MAC ==Mandatory Access Control , http://en.wikipedia.org/wiki/Mandatory_access_control
ACL ==Access Control List , http://en.wikipedia.org/wiki/Access_control_list

ACL menentukan kontrol yang akan diterapkan oleh metode kontrol, DAC atau MAC . MAC eksplisit, dikontrol secara terpusat, dan tidak mengizinkan pengguna untuk memberikan otoritas kepada suatu objek kecuali mereka memiliki izin eksplisit untuk melakukannya, sedangkan DAC memungkinkan pengguna untuk memberikan pengguna lain akses ke objek yang dapat mereka akses.

MAC ACL s akan selalu diterapkan ke permintaan terlebih dahulu, dan jika akses ditolak, pemrosesan berhenti. Jika akses diizinkan maka DAC ACL s diterapkan, dan sekali lagi jika akses ditolak, pemrosesan berhenti. Hanya jika akses diberikan oleh MAC keduanya dan DAC ACL s dapatkah pengguna mengakses objek yang mereka minta.

SELinux adalah MAC implementasi untuk Linux (ada yang lain), sedangkan rwx tradisional izin file, digabungkan dengan pengguna dan grup pemilik membentuk DAC lengkap ACL . SELinux 'kebijakan' pada dasarnya adalah MAC ACL .


Maaf berdalih, tapi saya pikir beberapa jawaban di sini mungkin salah. Langsung dari http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html Fedora:

Aturan kebijakan SELinux diperiksa setelah aturan DAC. Aturan kebijakan SELinuxtidak digunakan jika aturan DAC menolak akses terlebih dahulu.


Linux
  1. Daftar kontrol akses dan drive eksternal di Linux:Apa yang perlu Anda ketahui

  2. Apa itu Sticky Bit, SUID dan SGID di Linux

  3. Linux – Memahami Izin Unix Dan Jenis File?

  1. Cara Menyalin Izin dan Kepemilikan File ke File Lain di Linux

  2. Pertanyaan Wawancara Linux – Izin File dan Direktori Dasar

  3. Apa perintah untuk menyalin, membaca, dan menghapus file di linux

  1. Apa itu Umask di Linux?

  2. Apa itu NFS dan bagaimana cara menginstalnya di Linux

  3. Linux – Apa Cara Berbeda Untuk Mengatur Izin File Dll Di Gnu/linux?