Ada banyak contoh ketika Anda mungkin ingin mengisolasi aplikasi, pengguna, atau lingkungan tertentu dalam sistem Linux. Sistem operasi yang berbeda memiliki metode yang berbeda untuk mencapai isolasi, dan di Linux, cara klasik adalah melalui chroot
lingkungan.
Dalam panduan ini, kami akan menunjukkan kepada Anda langkah bijak tentang cara mengatur lingkungan yang terisolasi menggunakan chroot untuk menciptakan penghalang antara sistem operasi reguler Anda dan lingkungan yang ada. Ini terutama berguna untuk tujuan pengujian. Kami akan mengajari Anda langkah-langkah pada instance VPS Ubuntu 14.04.
Sebagian besar administrator sistem akan mendapat manfaat dari mengetahui cara menyelesaikan lingkungan chroot yang cepat dan mudah dan ini adalah keterampilan yang berharga untuk dimiliki.
Lingkungan chroot
Lingkungan chroot adalah panggilan sistem operasi yang akan mengubah lokasi root sementara ke folder baru. Biasanya, konsep sistem operasi dari direktori root adalah root sebenarnya yang terletak di "/
". Namun, dengan chroot
, Anda dapat menentukan direktori lain untuk dijadikan direktori tingkat atas selama chroot.
Aplikasi apa pun yang dijalankan dari dalam chroot
pada prinsipnya tidak akan dapat melihat sistem operasi lainnya.
Keuntungan Lingkungan Chroot
- Test applications without the risk of compromising the entire host system.
- From the security point of view, whatever happens in the chroot environment won't affect the host system (not even under root user).
- A different operating system running in the same hardware.
Misalnya, ini memungkinkan Anda untuk membangun, menginstal, dan menguji perangkat lunak di lingkungan yang terpisah dari sistem operasi normal Anda. Ini juga dapat digunakan sebagai metode menjalankan aplikasi 32-bit dalam lingkungan 64-bit t.
Tetapi sementara lingkungan chroot pasti akan membuat pekerjaan tambahan untuk pengguna yang tidak memiliki hak istimewa, mereka harus dianggap sebagai fitur pengerasan alih-alih fitur keamanan, yang berarti bahwa mereka berusaha mengurangi jumlah vektor serangan alih-alih membuat solusi lengkap. Jika Anda memerlukan isolasi penuh, pertimbangkan solusi yang lebih lengkap, seperti container Linux, Docker, vservers, dll.
Debootstrap dan Schroot
Paket yang diperlukan untuk menyiapkan lingkungan chroot adalah debootstrap dan schroot , yang tersedia di repositori ubuntu. Perintah schroot digunakan untuk mengatur lingkungan chroot.
Debootstrap memungkinkan Anda menginstal salinan baru dari sistem Debian (atau berbasis debian) apa pun dari repositori di direktori dengan semua perintah dasar dan binari yang diperlukan untuk menjalankan instance dasar sistem operasi.
schroot memungkinkan akses ke chroot untuk pengguna normal menggunakan mekanisme yang sama, tetapi dengan pemeriksaan izin dan mengizinkan pengaturan otomatis tambahan dari lingkungan chroot, seperti memasang sistem file tambahan dan tugas konfigurasi lainnya.
Ini adalah langkah-langkah untuk mengimplementasikan fungsi ini di Ubuntu 14.04 LTS:
1. Menginstal Paket
Pertama, kita akan menginstal debootstrap dan schroot di host kita Ubuntu 14.04 LTS.
$ sudo apt-get install debootstrap
$ sudo apt-get install schroot
2. Konfigurasi Schroot
Sekarang kita memiliki alat yang sesuai, kita hanya perlu menentukan direktori yang ingin kita gunakan sebagai lingkungan chroot kita. Kami akan membuat direktori bernama linoxide di direktori root kami untuk mengatur chroot di sana:
sudo mkdir /linoxide
Kita harus mengkonfigurasi schroot agar sesuai dengan kebutuhan kita di file konfigurasi. Kita akan memodifikasi schroot
file konfigurasi dengan informasi yang kami perlukan untuk dikonfigurasi.
sudo nano /etc/schroot/schroot.conf
Kami menggunakan sistem Ubuntu 14.04 LTS (Trusty Tahr) saat ini, tetapi katakanlah kami ingin menguji beberapa paket yang tersedia di Ubuntu 13.10, kode bernama "Saucy Salamander". Kita dapat melakukannya dengan membuat entri yang terlihat seperti ini:
[saucy]
description=Ubuntu Saucy
location=/linoxide
priority=3
users=arun
root-groups=root
Ubah nilai parameter konfigurasi dalam contoh di atas agar sesuai dengan sistem Anda:
3. Menginstal Ubuntu 32 bit dengan debootstrap
Debootstrap mengunduh dan memasang sistem operasi minimal di dalam lingkungan chroot your Anda . Anda dapat menginstal distro berbasis debian apa pun pilihan Anda, selama Anda memiliki repositori yang tersedia.
Di atas, kami menempatkan lingkungan chroot di bawah direktori /linoxide dan ini adalah direktori root dari lingkungan chroot. Jadi kita perlu menjalankan debootstrap di dalam direktori yang telah kita buat:
cd /linoxide
sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/ sudo chroot /linoxide /debootstrap/debootstrap --second-stage
Anda dapat mengganti amd64 di --arch sebagai i386 atau OS bit lain yang ingin Anda siapkan tersedia di repositori. Anda dapat mengganti mirror http://archive.ubuntu.com/ubuntu/ di atas sebagai yang terdekat, Anda bisa mendapatkan yang terdekat dari Halaman Mirror resmi Ubuntu.
Catatan: Anda perlu menambahkan --foreign di atas perintah baris ke-3 jika Anda memilih untuk mengatur choot OS i386 bit di Ubuntu Host 64 bit Anda sebagai:
sudo debootstrap --variant=buildd --foreign --arch i386 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/
Dibutuhkan beberapa waktu (tergantung pada bandwidth Anda) untuk mengunduh, menginstal, dan mengonfigurasi sistem yang lengkap. Dibutuhkan sekitar 500 MB untuk instalasi minimal.
4. Menyelesaikan lingkungan chroot
Setelah sistem terinstal, kita perlu melakukan beberapa konfigurasi akhir untuk memastikan sistem berfungsi dengan benar. Pertama, kami ingin memastikan host kami fstab
menyadari beberapa sistem semu di tamu kami.
sudo nano /etc/fstab
Tambahkan baris di bawah ini seperti ini ke bagian bawah fstab Anda:
proc /linoxide/proc proc defaults 0 0
sysfs /linoxide/sys sysfs defaults 0 0
Simpan dan tutup file.
Sekarang, kita perlu memasang sistem file ini di dalam tamu kita:
$ sudo mount proc /linoxide/proc -t proc
$ sudo mount sysfs /linoxide/sys -t sysfs
Kami juga ingin menyalin /etc/hosts
kami file sehingga kami akan memiliki akses ke informasi jaringan yang benar:
$ sudo cp /etc/hosts /linoxide/etc/hosts
Terakhir, Anda dapat membuat daftar lingkungan chroot yang tersedia menggunakan perintah schroot.
$ schroot -l
Kita bisa masuk ke lingkungan chroot melalui perintah seperti ini:
$ sudo chroot /linoxide/ /bin/bash
You can test the chroot environment by checking the version of distributions installed.
# lsb_release -a
# uname -a
Untuk menyelesaikan tutorial ini, untuk menjalankan aplikasi grafis dari chroot, Anda harus mengekspor variabel lingkungan DISPLAY.
$ DISPLAY=:0.0 ./apps
Di sini, kami telah berhasil menginstal Chrooted Ubuntu 13.10 (Saucy Salamander) di host Anda Ubuntu 14.04 LTS (Trusty Tahr).
Anda dapat berhasil keluar dari lingkungan chroot dengan menjalankan perintah di bawah ini:
# exit
Setelah itu, kita perlu meng-unmount sistem file proc dan sys kita:
$ sudo umount /test/proc
$ sudo umount /test/sys