GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Mengelola Kemampuan File Linux

Secara tradisional, proses Linux memiliki hak istimewa (berjalan sebagai root) atau tidak memiliki hak istimewa. Proses yang diistimewakan tidak tunduk pada pemeriksaan izin kernel, dan dengan demikian memiliki kekuasaan penuh atas suatu sistem. Kemampuan adalah hak istimewa yang berbeda dan independen yang dapat digunakan oleh suatu proses untuk melewati pemeriksaan izin tertentu. Kemampuan pertama kali diperkenalkan di Linux 2.2, dan beberapa lagi ditambahkan di versi yang lebih baru. Mereka biasanya diatur pada file yang dapat dieksekusi dan secara otomatis diberikan ke proses ketika file dengan kemampuan dieksekusi. Kemampuan pada dasarnya membagi kekuatan pengguna root menjadi hak istimewa yang terpisah, yang meningkatkan keamanan dengan membatasi akses yang akan diperoleh penyerang dengan mengeksploitasi atau menyalahgunakan layanan.

Panduan ini akan memperkenalkan beberapa kapabilitas yang umum digunakan dan mendemonstrasikan bagaimana kapabilitas tersebut dapat dilihat dan dimodifikasi.

Kemampuan Umum

Kernel Linux mengimplementasikan banyak kemampuan. Beberapa di antaranya adalah:

  • CAP_SYS_ADMIN:Memungkinkan berbagai operasi. Kemampuan ini harus dihindari demi kemampuan yang lebih spesifik.
  • CAP_CHOWN:Ubah User ID dan Group ID file 
  • CAP_DAC_READ_SEARCH:Abaikan pembacaan file, dan pemeriksaan direktori baca/eksekusi. Program dengan kemampuan ini dapat digunakan untuk membaca file apa pun di sistem.
  • CAP_DAC_OVERRIDE:Mengganti DAC (Discretionary Access Control) yaitu melewati pemeriksaan izin baca/tulis/eksekusi. Kemampuan ini memberikan kemampuan yang dapat dieksekusi untuk mengakses dan memodifikasi file apa pun di sistem file.
  • CAP_NET_BIND_SERVICE:Memungkinkan pengikatan ke nomor port yang lebih rendah dari 1024.
  • CAP_KILL:Abaikan pemeriksaan izin untuk mengirim sinyal ke proses seperti SIGHUP dan SIGKILL.
  • CAP_SYS_NICE:Memodifikasi nilai kebaikan dan prioritas penjadwalan proses antara lain.
  • CAP_SYS_RESOURCE:Memungkinkan mengesampingkan berbagai batasan pada sumber daya sistem, seperti kuota disk, batas waktu CPU, dll.

Daftar lengkapnya tersedia di halaman manual kemampuan(7).

File dapat diberikan kemampuan dalam 3 set berbeda:diizinkan, dapat diwariskan, dan efektif. Utas memiliki 2 set tambahan:ambient dan bounding. Setiap set dapat berisi nol atau lebih kemampuan, dengan pengecualian set efektif untuk file, yang sebenarnya adalah satu bit. Kumpulan ini menentukan perilaku kernel kompleks yang berada di luar cakupan panduan ini. Saat menetapkan kemampuan ke file, kami akan menggunakan set yang diizinkan dan efektif dalam banyak kasus.

CATATAN:SELinux dapat mengganggu kemampuan. Pada sistem dengan SELinux dalam mode penegakan, ini dapat mencegah proses mengambil keuntungan dari kemampuannya.

Alat yang Diperlukan

Ada dua paket berbeda untuk manajemen kapabilitas:libcap dan libcap-ng. Yang terakhir dirancang agar lebih mudah daripada yang pertama. Keduanya tercakup dalam panduan ini.

libcap menyediakan getcap dan setcap untuk melihat dan mengatur kemampuan file, sementara libcap-ng menggabungkan kedua fungsi dalam satu alat, filecap.

libcap

Instalasi

Pada Debian, Ubuntu dan distribusi berbasis Debian lainnya, utilitas libcap dapat diinstal dengan:

apt update
apt install libcap2-bin

Untuk menginstal di CentOS, gunakan perintah berikut:

yum install libcap

Untuk menginstal di Fedora, gunakan perintah berikut:

dnf install libcap

Untuk menginstal di Arch, gunakan perintah berikut:

pacman -Sy libcap

Penggunaan

getcap hanya menampilkan kemampuan yang diberikan ke file, jika ada. Gunakan sintaks berikut:

getcap /path/to/binary

Misalnya:

Getcap juga dapat mencari secara rekursif dengan flag -r. Misalnya:

CATATAN:2>/dev/null digunakan untuk menghindari kekacauan keluaran dengan kesalahan "Operasi tidak didukung", yang terjadi ketika getcap mencoba untuk mendapatkan kemampuan file di /sys, /proc, dll. Sistem file virtual khusus ini tidak mendukung kemampuan.

Untuk mengatur kemampuan file dengan setcap, gunakan sintaks berikut:

setcap CAP+set filename

Misalnya, untuk menambahkan CAP_CHOWN dan CAP_DAC_OVERRIDE ke set yang diizinkan dan efektif, gunakan:

setcap CAP_CHOWN,CAP_DAC_OVERRIDE+ep file1

Untuk menghapus kemampuan dari file, gunakan tanda -r:

setcap -r filename

Berikut adalah beberapa contoh tambahan:

libcap-ng

Instalasi

Untuk menginstal di Debian, Ubuntu dan distribusi berbasis Debian lainnya:

apt update
apt install libcap-ng-utils

Untuk menginstal di CentOS:

yum install libcap-ng-utils

Untuk menginstal di Fedora:

dnf install libcap-ng-utils

Untuk menginstal di Arch:

pacman -Sy libcap-ng

Penggunaan

  • Program filecap mengacu pada kemampuan tanpa awalan "CAP_" (misalnya, NET_ADMIN, bukan CAP_NET_ADMIN).
  • filecap tidak berfungsi dengan jalur relatif, ia mengharapkan jalur lengkap saat meneruskan file atau direktori sebagai argumen.
  • filecap tidak mengizinkan Anda untuk menentukan set kemampuan, ia selalu menggunakan yang diizinkan dan efektif saat menyetel kemampuan.

Untuk melihat kemampuan yang ditetapkan ke file:

filecap /full/path/to/file

Untuk mencari direktori secara rekursif, gunakan:

filecap /full/path/to/dir

Untuk mencari seluruh sistem file dengan filecap, gunakan salah satu perintah berikut:

filecap /
filecap -a

Berikut adalah beberapa contoh penggunaan filecap untuk memeriksa file dan direktori:

Untuk menyetel kemampuan pada file, gunakan sintaks:

filecap /full/path/to/file cap_name

Misalnya:

filecap /usr/bin/tac dac_override

Untuk menghapus kapabilitas, gunakan sintaks ini:

filecap /full/path/to/file none

Berikut adalah beberapa contoh pengaturan dan penghapusan kemampuan menggunakan filecap:

Kesimpulan

Kemampuan adalah fitur kernel yang kuat dengan aplikasi keamanan yang luas. Mereka harus diganti dengan hak istimewa penuh dan root SUID bila memungkinkan.


Linux
  1. Cara Membuat Swap di Linux

  2. Cara membuat file swap di Linux

  3. Cara Mengelola Partisi Swap di Linux

  1. Cara Mengelola Kata Sandi Akun di Linux

  2. Cara menemukan File di Linux

  3. Cara memasang file iso di Linux

  1. Cara memindahkan file di Linux

  2. Cara Mengosongkan File Log di Linux

  3. Bagaimana Mengganti Nama File di Linux?