GNU/Linux >> Belajar Linux >  >> Cent OS

Memahami Penjara chroot

Seperti namanya, operasi chroot mengubah direktori root yang terlihat untuk proses yang sedang berjalan dan anak-anaknya. Ini memungkinkan Anda untuk menjalankan program (proses) dengan direktori root selain /. Program tidak dapat melihat atau mengakses file di luar pohon direktori yang ditentukan.

Misalnya, Anda dapat menjalankan program dan menentukan direktori root-nya sebagai /home/user/jail. Dalam hal ini, direktori root program sebenarnya adalah /home/user/jail. Program tidak akan mengetahui, atau tidak dapat mengakses, file apa pun di atas direktori ini dalam hierarki.

Direktori root buatan ini disebut chroot jail . Tujuannya adalah untuk membatasi akses direktori penyerang potensial. Penjara chroot mengunci proses tertentu dan ID pengguna apa pun yang digunakannya sehingga pengguna hanya melihat direktori tempat proses tersebut berjalan. Untuk proses tersebut,
tampaknya sedang berjalan di direktori root.

Penjara chroot tidak dimaksudkan untuk:
– Mempertahankan dari gangguan yang disengaja oleh pengguna (root) yang memiliki hak istimewa.
– Digunakan untuk memblokir akses tingkat rendah ke perangkat sistem oleh pengguna yang memiliki hak istimewa. Pengguna root chroot masih dapat membuat node perangkat dan memasang sistem file di dalamnya.

Agar proses chroot berhasil dimulai, direktori chroot harus diisi dengan semua file program yang diperlukan, file konfigurasi, node perangkat, dan pustaka bersama di lokasi yang diharapkan.

Menggunakan utilitas chroot

1. Untuk menggunakan chroot jail, gunakan perintah berikut (new_root harus merupakan direktori yang sudah ada):

# chroot new_root [command]

2. Direktori new_root menjadi direktori root buatan. chroot berubah menjadi new_root dan menjalankan perintah opsional. Tanpa menentukan perintah sebagai argumen, chroot berubah menjadi new_root dan menjalankan nilai variabel lingkungan SHELL atau /bin/sh jika SHELL tidak disetel.

3. Misalnya, dengan asumsi SHELL disetel ke /bin/bash, dan direktori /home/user/jail ada, menjalankan perintah chroot menghasilkan sebagai berikut:

# chroot /home/user/jail
chroot: failed to run command ‘/bin/bash’: No such file or directory

4. Direktori /home/user/jail mengambil nama /. chroot tidak dapat menemukan /bin/bash di dalam jail chroot ini dan mengembalikan pesan kesalahan. Untuk menerapkan chroot jail, buat struktur direktori root baru dan salin semua file yang diperlukan ke direktori root baru ini sebelum menjalankan perintah chroot.

Mengonfigurasi Penjara chroot

1. Untuk mengimplementasikan chroot jail dan menjalankan /bin/bash, buat direktori bin di direktori root buatan (/home/Oracle/jail dalam contoh ini), dan salin /bin/bash ke direktori ini:

$ mkdir /home/oracle/jail/bin
$ cp /bin/bash /home/oracle/jail/bin

2. Perintah /bin/bash terhubung secara dinamis ke perpustakaan bersama. Pustaka ini juga harus disalin ke dalam chroot jail. Gunakan perintah ldd untuk menentukan perpustakaan mana yang diperlukan oleh perintah /bin/bash:

# ldd /bin/bash
	linux-vdso.so.1 =>  (0x00007fff11bff000)
	libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003728800000)
	libdl.so.2 => /lib64/libdl.so.2 (0x0000003d56400000)
	libc.so.6 => /lib64/libc.so.6 (0x0000003d56800000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003d56000000)

3. Salin masing-masing file ini ke direktori lib64 di direktori root buatan. Buat direktori lib64 dan salin pustaka bersama ke direktori ini:

$ mkdir /home/oracle/jail/lib64
$ cp /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/oracle/jail/lib64

4. Sekarang semua file yang diperlukan berada di lokasi yang diharapkan, menjalankan perintah chroot (sebagai root) akan menghasilkan sebagai berikut:

# chroot /home/oracle/jail

5. Perintah berhasil kali ini dan program /bin/bash dijalankan. Memasukkan pwd untuk mencetak direktori saat ini menampilkan /, meskipun direktori sebenarnya adalah /home/Oracle/jail:

# pwd
/

Perintah pwd berjalan karena merupakan perintah bawaan shell. Menjalankan perintah lain gagal karena bash tidak dapat menemukan perintah. Proses menganggapnya ada di direktori root dan tidak memiliki visibilitas atau pengetahuan tentang file apa pun di atas direktori ini dalam hierarki. Misalnya, menjalankan perintah ls gagal:

# ls
bash: ls: command not found

6. Gunakan perintah exit untuk keluar dari jail chroot.

# exit
exit
#
CentOS / RHEL :Cara mengatur chroot jail SFTP
CentOS / RHEL :Cara mengatur chroot jail untuk vsftp untuk semua pengguna
CentOS / RHEL :Cara mengatur chroot jail untuk vsftp hanya untuk pengguna tertentu
CentOS / RHEL :Cara Setting SFTP ke Chroot Jail hanya untuk Grup Tertentu


Cent OS
  1. Chroot “jail” – Apa Itu Dan Bagaimana Cara Menggunakannya?

  2. Memahami Penjara chroot

  3. Memahami direktori /etc/xinetd.d di Linux

  1. Memahami Reservasi SCSI Linux

  2. CentOS / RHEL :Cara mengatur chroot jail untuk vsftp hanya untuk pengguna tertentu

  3. CentOS / RHEL :Cara mengatur chroot jail untuk vsftp untuk semua pengguna

  1. Direktori Kerangka

  2. Bind mount pengguna SFTP setelah menggunakan chroot

  3. Buat penjara chroot