Keamanan

Cara Mengatur Penjara Chroot Linux

Cara Mengatur Penjara Chroot Linux
Terutama yang didedikasikan untuk layanan kritis, sistem Linux memerlukan pengetahuan tingkat ahli untuk bekerja dengan dan langkah-langkah keamanan inti.

Sayangnya, bahkan setelah mengambil langkah-langkah keamanan penting, kerentanan keamanan masih menemukan jalan mereka ke sistem yang aman. Salah satu cara untuk mengelola dan melindungi sistem Anda adalah dengan membatasi kemungkinan kerusakan setelah serangan terjadi.

Dalam tutorial ini, kita akan membahas proses penggunaan chroot jail untuk mengelola kerusakan sistem jika terjadi serangan. Kita akan melihat bagaimana mengisolasi proses dan subproses ke lingkungan tertentu dengan hak akses root palsu. Melakukan ini akan membatasi proses ke direktori tertentu dan menolak akses ke area sistem lain other.

Pengantar Singkat Untuk chroot jail

Penjara chroot adalah metode untuk mengisolasi proses dan subprosesnya dari sistem utama menggunakan hak akses root palsu.

Seperti disebutkan, mengisolasi proses tertentu menggunakan hak akses root palsu membatasi kerusakan jika terjadi serangan jahat malicious. Layanan chroot terbatas pada direktori dan file di dalam direktorinya dan tidak persisten saat layanan dimulai ulang.

Mengapa menggunakan penjara chroot

Tujuan utama dari chroot jail adalah sebagai tindakan keamanan. Chroot juga berguna saat memulihkan kata sandi yang hilang dengan memasang perangkat dari media langsung.

Ada berbagai keuntungan dan kerugian dari pengaturan chroot jail. Ini termasuk:

Keuntungan

Kekurangan

Cara Membuat Penjara Chroot Dasar

Dalam proses ini, kami akan membuat jail chroot dasar dengan 3 perintah terbatas pada folder itu. Ini akan membantu mengilustrasikan cara membuat penjara dan menetapkan berbagai perintah.

Mulailah dengan membuat folder utama. Anda dapat menganggap folder ini sebagai folder / di sistem utama. Nama foldernya bisa apa saja. Dalam kasus kami, kami menyebutnya /chrootjail

sudo mkdir /chrootjail

Kami akan menggunakan direktori ini sebagai root palsu yang berisi perintah yang akan kami berikan padanya. Dengan perintah yang akan kita gunakan, kita akan memerlukan direktori bin (berisi perintah yang dapat dieksekusi) dan, dll., direktori (berisi file konfigurasi untuk perintah).

Di dalam folder /chrootjail, buat dua folder ini:

sudo mkdir /chrootjail/etc,bin

Langkah selanjutnya adalah membuat direktori untuk perpustakaan yang terhubung secara dinamis untuk perintah yang ingin kita sertakan di penjara. Untuk contoh ini, kita akan menggunakan perintah bash, ls, dan grep.

Gunakan perintah ldd untuk membuat daftar dependensi dari perintah-perintah ini, seperti yang ditunjukkan di bawah ini:

sudo ldd /bin/bash /bin/ls /bin/grep

Jika Anda tidak berada di dalam folder bin, Anda harus melewati path lengkap untuk perintah yang ingin Anda gunakan. Misalnya, ldd /bin/bash atau ldd /bin/grep

Dari output ldd di atas, kita membutuhkan direktori lib64 dan /lib/x86_64-linux-gnu. Di dalam direktori jail, buat folder-folder ini.

sudo mkdir -p /chrootjaillib/x86_64-linux-gnu, lib64

Setelah direktori perpustakaan dinamis dibuat, kita dapat membuat daftarnya menggunakan pohon, seperti yang ditunjukkan di bawah ini:

Seiring kemajuan kami, Anda akan mulai mendapatkan gambaran yang jelas tentang arti chroot jail.

Kami menciptakan lingkungan yang mirip dengan direktori root normal sistem Linux. Perbedaannya adalah, di dalam lingkungan ini, hanya perintah tertentu yang diizinkan, dan aksesnya terbatas.

Sekarang kita telah membuat bin. dll., lib, dan lib64, kita dapat menambahkan file yang diperlukan di dalam direktori masing-masing.

Mari kita mulai dengan binari.

sudo cp /bin/bash /chrootjail/bin && sudo cp /bin/ls /chrootjail/bin && sudo cp /bin/grep /chrootjail/bin

Setelah menyalin binari untuk perintah yang kita butuhkan, kita memerlukan perpustakaan untuk setiap perintah. Anda dapat menggunakan perintah ldd untuk melihat file yang akan disalin.

Mari kita mulai dengan bash. Untuk bash, kami memerlukan perpustakaan berikut:

/lib/x86_64-linux-gnu/libtinfo.begitu.6
/lib/x86_64-linux-gnu/libdl.begitu.2
/lib/x86_64-linux-gnu/libc.begitu.6
/lib64/ld-linux-x86-64.begitu.2

Alih-alih menyalin semua file ini satu per satu, kita dapat menggunakan loop sederhana untuk menyalin setiap perpustakaan di semua perpustakaan ke /chrootjail/lib/x86_64-linux-gnu

Mari kita ulangi proses ini untuk perintah ls dan grep:

Untuk perintah ls:

Untuk perintah grep:

Selanjutnya, di dalam direktori lib64, kami memiliki satu perpustakaan bersama di semua binari. Kita cukup menyalinnya menggunakan perintah cp sederhana:

Selanjutnya, mari kita edit file login bash utama (terletak di /etc/bash.bashrc di Debian) sehingga kita dapat mengubah bash prompt sesuai dengan keinginan kita. Menggunakan perintah echo dan tee sederhana seperti yang ditunjukkan:

sudo echo 'PS1="CHROOTJAIL #"' | sudo tee /chrootjail/etc/bash.bashrc

Setelah kita menyelesaikan semua langkah di atas, kita dapat masuk ke lingkungan jail menggunakan perintah chroot seperti yang ditunjukkan.

sudo chroot /chrootjail /bin/bash

Anda akan mendapatkan hak akses root dengan prompt yang mirip dengan yang dibuat dalam perintah echo dan tee di atas.

Setelah Anda masuk, Anda akan melihat bahwa Anda hanya memiliki akses ke perintah yang Anda sertakan saat membuat jail. Jika Anda memerlukan lebih banyak perintah, Anda harus menambahkannya secara manual.

CATATAN: Karena Anda telah menyertakan bash shell, Anda akan memiliki akses ke semua perintah bawaan bash. Itu memungkinkan Anda untuk keluar dari penjara menggunakan perintah keluar.

Kesimpulan

Tutorial ini membahas apa itu chroot jail dan bagaimana kita dapat menggunakannya untuk membuat lingkungan yang terisolasi dari sistem utama. Anda dapat menggunakan teknik yang dibahas dalam panduan ini untuk menciptakan lingkungan terisolasi untuk layanan kritis.

Untuk mempraktikkan apa yang telah Anda pelajari, coba buat penjara Apache2 apa.

PETUNJUK: Mulailah dengan membuat direktori root, tambahkan file konfigurasi (etc/apache2), tambahkan root dokumen (/var/www/html), tambahkan biner (/usr/sbin/apache2) dan terakhir tambahkan perpustakaan yang diperlukan (ldd / usr/sbin/apache2)

Cara Mengubah Pengaturan Mouse dan Touchpad Menggunakan Xinput di Linux
Sebagian besar distribusi Linux dikirimkan dengan pustaka "libinput" secara default untuk menangani kejadian input pada sistem. Ini dapat memproses ke...
Petakan ulang tombol mouse Anda secara berbeda untuk perangkat lunak yang berbeda dengan Kontrol Tombol X-Mouse
Mungkin Anda membutuhkan alat yang dapat membuat kontrol mouse Anda berubah dengan setiap aplikasi yang Anda gunakan. Jika demikian, Anda dapat mencob...
Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...