Panduan lengkap untuk membuat chroot jail di Linux: langkah-langkah, penggunaan, dan tips

Pembaharuan Terakhir: 26/05/2025
penulis: Isaac
  • Teknik chroot memungkinkan Anda mengisolasi proses atau pengguna dalam lingkungan yang aman di dalam Linux.
  • Menyiapkan penjara yang fungsional memerlukan persiapan biner, pustaka, dan struktur direktori yang diperlukan.
  • chroot berguna untuk membatasi layanan dan memulihkan sistem atau menguji perangkat lunak dengan aman.

chroot

Pernahkah Anda bertanya-tanya bagaimana cara benar-benar mengisolasi suatu proses atau layanan pada sistem Linux Anda? Jawaban yang paling tradisional dan serbaguna adalah dengan membuat chroot cage , sebuah teknik yang ampuh namun sering diremehkan, yang merupakan kunci untuk melindungi sistem Anda dan bereksperimen tanpa takut akan bencana. Dalam artikel ini, Anda akan menemukan panduan mendalam tentang apa itu chroot cage, untuk apa digunakan, dan yang terpenting, bagaimana cara membuatnya sendiri di Linux, baik Anda mencari lingkungan pengujian yang aman, perlu membatasi pengguna, atau memulihkan sistem. Dan semuanya dijelaskan dalam bahasa yang sederhana dengan contoh-contoh praktis sehingga Anda dapat mulai menerapkannya segera.

Jika Anda sudah cukup lama berkecimpung dengan Linux, Anda mungkin pernah mendengar tentang chroot jail tetapi belum pernah menggunakannya karena tampaknya itu hanya untuk administrator tingkat lanjut. Namun, membuat chroot jail lebih sederhana dari yang terlihat dan, terlebih lagi, sangat berguna dalam situasi dunia nyata: mulai dari melindungi sistem dari menjalankan perangkat lunak yang mencurigakan, hingga mengisolasi layanan jaringan seperti SSH atau FTP, atau bahkan menyelamatkan sistem yang rusak ketika semuanya tampak hilang. Siapkan keyboard Anda, karena setelah membaca panduan ini Anda tidak hanya akan tahu cara kerja chroot, tetapi juga cara memaksimalkannya.

Apa itu kandang chroot dan kapan Anda harus menggunakannya?

Chroot cage (singkatan dari "change root") adalah lingkungan terisolasi di dalam sistem di mana direktori root ( / ) untuk sementara didefinisikan ulang untuk suatu proses atau pengguna. Dalam praktiknya, ini membatasi akses proses atau pengguna hanya ke file dan direktori di dalam cage tersebut , mencegah mereka melihat atau memodifikasi apa pun di luarnya. Semua yang terjadi di dalam cage tersebut terenkapsulasi dan tidak dapat memengaruhi bagian sistem lainnya.

Dan untuk apa ini? Aplikasinya sangat bervariasi. Misalnya:

  • Jalankan program yang mencurigakan atau tidak dapat diandalkan tanpa dapat merusak keseluruhan sistem.
  • Batasi pengguna, terutama dalam layanan jaringan, mencegah mereka mengakses informasi sensitif pada sistem utama, seperti halnya dengan FTP atau SSH.
  • Memberikan akses terbatas ke perangkat tertentu, hanya mengizinkan fungsi tertentu.
  • Memulihkan sistem yang rusak boot dari LiveCD dan melakukan jailbreak pada sistem untuk melakukan perbaikan dengan aman.
  • Uji konfigurasi atau instalasi yang rumit tanpa mempertaruhkan stabilitas sistem utama.
  Cari tahu cara Membuka dan Menggunakan Senter di iPhone

Metode ini merupakan alat yang efektif untuk keamanan dan administrasi tingkat lanjut di Linux . Hambatan utama biasanya adalah kurangnya pengetahuan tentang cara mengatur jail dengan benar dan menyalin semua komponen yang diperlukan, tetapi Anda akan melihat bahwa dengan mengikuti beberapa langkah spesifik, hal itu sangat mungkin dilakukan.

Pengoperasian umum dan batasan chroot

chroot

Perintah `chroot` disertakan dalam sebagian besar distribusi Linux dan mengubah direktori root ( `/` ) untuk proses yang berjalan di dalam lingkungan chroot, mengisolasinya dari sistem asli. Setelah berada di dalam, perintah atau program apa pun hanya akan melihat file di lingkungan terisolasi tersebut dan tidak akan memiliki akses ke apa pun di luar chroot.

Tidak semuanya sempurna, dan tidak setiap program akan berfungsi di dalam lingkungan chroot . Beberapa layanan yang kompleks atau yang mengharapkan jalur absolut, seperti sendmail pada versi tertentu, mungkin tidak berfungsi dengan benar. Sangat penting untuk merencanakan aplikasi mana yang akan Anda gunakan dan memverifikasi dependensinya sebelum menerapkannya di lingkungan chroot.

Selain itu, tidak seperti solusi virtualisasi penuh, chroot tidak menawarkan isolasi sumber daya tingkat kernel . Lingkungan chroot terisolasi pada tingkat sistem file, tetapi berbagi kernel dan sumber daya sistem host. Oleh karena itu, ini adalah alternatif ringan yang berguna ketika Anda hanya perlu memisahkan ruang file dan akses, tanpa memerlukan lingkungan yang sepenuhnya independen.

Menyiapkan chroot jail langkah demi langkah: struktur dan dependensi

Untuk membuat jail yang berfungsi, sangat penting untuk menyiapkan struktur direktori dan menyalin semua biner dan pustaka yang diperlukan . Membuat folder kosong saja tidak cukup: semua yang perlu dijalankan di dalamnya, seperti /bin/bash , /bin/ls , dan dependensinya, harus ada, dengan tetap memperhatikan struktur sistem aslinya.

Langkah-langkah dasarnya adalah:

  1. Buat direktori penjara, misalnya di /opt/chroot_dir atau /usr/src/jaula.
  2. Salin biner penting (seperti menampar y ls) di tempatnya masing-masing di dalam kandang.
  3. Gunakan perintah ldd pada biner untuk mengidentifikasi pustaka yang diperlukan (contoh: ldd /bin/bash y ldd /bin/ls).
  4. Salin perpustakaan tersebut dalam struktur kandang, mempertahankan organisasi yang sama seperti dalam sistem asli, di / lib y /lib64.
  5. Termasuk file konfigurasi dasar seperti /etc/passwd dan /etc/group jika Anda ingin mengelola pengguna di jail.
  6. Jika Anda menginginkan sesi interaktif, tambahkan juru bahasa. perintah dan menyesuaikan file seperti /etc/bash.bashrc untuk mengonfigurasi lingkungan.
  Cara menampilkan semua aplikasi dan alur kerja di Mac Anda

Setelah struktur disiapkan dan file disalin, Anda dapat menggunakan perintah chroot untuk mengakses dan bekerja di lingkungan yang terisolasi.

Contoh klasik: membuat chroot jail untuk menjalankan bash dan ls

Misalnya, Anda menginginkan sebuah lingkungan sederhana tempat Anda dapat menjalankan bash dan ls . Langkah-langkahnya adalah:

  1. Buat folder kandang:
    sudo mkdir /opt/chroot_dir
  2. Salin biner yang diperlukan:
    sudo cp /bin/bash /opt/chroot_dir/bin/ sudo cp /bin/ls /opt/chroot_dir/bin/
  3. Gunakan ldd untuk mengidentifikasi dan menyalin pustaka:
    ldd /bin/bash /bin/ls

    Temukan pustaka yang terdaftar dan pisahkan ke dalam struktur chroot di /opt/chroot_dir/lib/ dan /opt/chroot_dir/lib64/.

Jika Anda ingin mempermudah pengalaman tersebut, Anda dapat mengedit perintah berikut:

gema "PS1='CAGE $ '" | sudo tee /opt/chroot_dir/etc/bash.bashrc

Untuk mengakses, jalankan:

sudo chroot /opt/chroot_dir /bin/bash

Dengan cara ini, Anda akan berada di dalam sangkar, sepenuhnya terisolasi . Ingatlah bahwa jika Anda membutuhkan lebih banyak alat di dalam, Anda harus menyalinnya beserta dependensinya.

Memasang sistem penting: /proc, /dev dan /sys

Agar lingkungan chroot benar-benar bermanfaat, terutama untuk tugas pemulihan atau menjalankan program yang memerlukan akses perangkat, perlu untuk memasang /proc, /dev, dan /sys di dalam lingkungan chroot . Hal ini dicapai dengan menggunakan bind mount.

  1. Buat struktur dan pasang partisi:
    sudo mkdir /media/kandang sudo pasang /dev/sda1 /media/kandang
  2. Pasang sistem virtual:
    sudo pasang --bind /proc /media/jaula/proc sudo pasang --bind /dev /media/jaula/dev sudo pasang --bind /sys /media/jaula/sys

Dengan pemasangan ini, program dalam chroot akan dapat mengakses sumber daya yang diperlukan untuk berfungsi dengan baik. Untuk memasuki kandang:

sudo chroot /media/kandang

Sejak saat itu, perintah yang Anda jalankan hanya akan memengaruhi sistem yang terpasang, ideal untuk tugas pemulihan atau modifikasi tanpa memengaruhi sistem utama.

Membatasi pengguna melalui chroot: OpenSSH dan opsi ChrootDirectory

Salah satu kegunaan umum chroot jail adalah untuk membatasi akses pengguna SSH ke direktori tertentu menggunakan opsi ChrootDirectory di OpenSSH. Pada versi terbaru, ini dapat dikonfigurasi tanpa utilitas eksternal.

Proses umum terdiri dari:

  1. Siapkan struktur kandang, termasuk alat dan pustaka yang diperlukan.
  2. Salin biner dan dependensi, seperti menampar.
  3. Konfigurasikan file pengguna (/ etc / passwd, / etc / group), sesuaikan cangkang jika perlu.
  4. Ubah filenya / etc / ssh / sshd_config untuk menyertakan arahan seperti:
Cocokkan Pengguna jaileduser ChrootDirectory /path/to/the/jail

Saat memulai ulang SSH, pengguna akan secara otomatis dibatasi pada direktori tersebut, tanpa akses ke luar direktori tersebut. Sangat penting untuk memverifikasi biner dan pustaka mana yang tersedia di penjara untuk sesi yang berfungsi dan aman.

Tips lanjutan: menyesuaikan kandang dengan setiap kasus dan otomatisasi

Setelah Anda menguasai dasar-dasarnya, Anda dapat menyesuaikan dan mengoptimalkan kandang Anda:

  • Sertakan hanya perintah yang diperlukan untuk setiap pengguna, memperkuat keamanan.
  • Gunakan alat seperti bootstrap di Debian untuk membuat lingkungan yang lengkap dan fungsional dengan cepat.
  • Sesuaikan skrip startup, prompt, dan pengaturan dasar untuk meningkatkan pengalaman pengguna.
  • Dalam distribusi seperti Gentoo, menggunakan systemd-nspawn untuk mengelola chroot secara lebih efisien.

Hal yang perlu dipertimbangkan: keterbatasan chroot dan isolasi nyata

Penting untuk diingat bahwa chroot tidak menyediakan isolasi kernel yang lengkap . Proses dengan hak istimewa dapat lolos jika terdapat kerentanan atau kemampuan khusus. Untuk keamanan yang lebih baik, pertimbangkan untuk menggunakan kontainer seperti Docker atau solusi virtualisasi penuh.

Untuk perangkat lunak yang memerlukan antarmuka grafis atau akses audio/video, Anda perlu berbagi soket dan izin yang sesuai, menggunakan bind mount dan menyinkronkan ID pengguna. Perencanaan sumber daya dan ketergantungan yang cermat akan menjadi kunci bagi lingkungan yang stabil dan aman.

pem
Artikel terkait:
Pulsa Elektromagnetik (EMP): Apa Itu, Dampaknya, dan Cara Melindungi Diri Anda