Jika anda seorang peminat Linux, anda mungkin sering perlu memasang atau menyahpasang pelbagai aplikasi atau perkhidmatan pada sistem anda. Tetapi, adakah anda tahu bahawa setiap aplikasi atau perkhidmatan bergantung pada beberapa fail objek kongsi yang disediakan oleh pakej perisian lain? Jika fail objek ini hilang atau rosak, aplikasi atau perkhidmatan anda mungkin tidak berfungsi dengan betul atau pun bermula. Oleh itu, mengetahui cara menjalankan dan menguji aplikasi atau perkhidmatan dalam ruang terpencil adalah kemahiran yang sangat berguna yang boleh membantu anda mengekalkan dan mengoptimumkan sistem Linux anda. Artikel ini akan memperkenalkan alat baris arahan berkuasa yang dipanggil chroot, yang membolehkan anda mencipta persekitaran bebas pada Linux dan menjalankan serta menguji aplikasi atau perkhidmatan di dalamnya.
Mari kita terokai chroot secara terperinci, fahami faedahnya, senario penggunaan, cara menyediakannya pada sistem Linux dan cara keluar dari (chroot) persekitaran jika perlu.
chroot ialah change-root, boleh dikatakan salah satu perisian kontena termudah dan tertua, yang membolehkan pengguna mengasingkan aplikasi dan perkhidmatan dengan selamat. Dalam istilah pengkomputeran, pengasingan ialah kurungan program ke dalam ruang terhad, dengan sumber yang telah ditetapkan.
Jika anda biasa dengan Docker dan cara ia berfungsi, anda boleh menganggap chroot sebagai versi yang sangat dipermudahkan. chroot menyediakan lapisan pengasingan dan keselamatan tambahan dengan menukar direktori akar program, mengehadkan akses dan keterlihatan.
Pada asasnya, anda mencipta direktori berasingan, menyalin semua kebergantungan program anda ke dalam direktori baharu, dan kemudian jalankan arahan chroot. Ini membolehkan program berjalan seperti biasa semasa kehilangan akses kepada sistem fail asas.
Menyediakan program sebagai persekitaran chroot ialah cara terbaik untuk menguji kebolehpercayaannya dalam ruang yang selamat tanpa mengubah fail sistem sebenar. Selain itu, dalam persekitaran chroot, anda boleh mengurangkan risiko keselamatan yang disebabkan oleh pakej perisian yang terjejas, kerana dalam persekitaran chroot, pakej perisian yang terjejas tidak akan dapat mengakses dan mengubah suai fail sistem yang sensitif.
Program ini hanya boleh mengakses dan melihat fail yang diimport ke dalam direktori chroot, juga dikenali sebagai "penjara chroot". Ini menghalang program dan proses anaknya daripada mengganggu operasi sistem asas.
Penjara chroot ialah persekitaran terpencil di mana program chroot dijalankan dan dilaksanakan. Istilah penjara chroot berasal daripada konsep bahawa proses dan anak mereka memproses dalam persekitaran chroot tidak dapat mengakses atau melihat sistem fail asas dan terhad kepada sumber yang dikhaskan untuk chroot.
Sekarang anda mempunyai pemahaman yang jelas tentang konsep chroot, mari kita mula belajar dan belajar cara mencipta penjara chroot dan melaksanakan program di dalamnya.
Penjara chroot pada asasnya ialah direktori yang mengandungi semua sumber, fail, binari dan kebergantungan lain yang diperlukan oleh program untuk dijalankan dengan betul.
Walau bagaimanapun, tidak seperti persekitaran Linux biasa, persekitaran penjara chroot dihadkan dengan ketat dan program tidak boleh mengakses fail luaran atau tambahan dan sumber sistem.
Sebagai contoh, untuk menjalankan shell Bash dalam penjara chroot, anda perlu menyalin binari Bash dan semua kebergantungannya ke dalam direktori chroot.
Berikut ialah langkah-langkah untuk mencipta penjara chroot dan menjana cangkerang Bash:
1. Untuk berjaya menjalankan program, anda perlu menyalin semua kebergantungannya ke direktori penjara chroot. Mari gunakan perintah which dan ldd untuk mencari lokasi binari (Bash dalam kes ini) dan semua kebergantungannya:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ which bash /usr/bin/bash ┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ ldd /usr/bin/bash
2 Sekarang setelah anda mengetahui lokasi binari dan kebergantungannya, salinnya ke direktori yang ingin anda tukar kepada penjara chroot. Gunakan arahan mkdir untuk mencipta direktori yang diperlukan dan arahan cp untuk menyalin semua fail ke dalam direktori yang sepadan:
mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* ./lib64/ && cp /bin/bash /bin/
3、最后,当程序和它的依赖项复制完成后,你可以使用 sudo 前缀以提升的权限运行 chroot 命令,在所选择的目录中生成 chroot 环境。默认情况下,它将生成一个Bash shell。下面是要输入的命令:
linuxmi@linuxmi:~$ sudo chroot www.linuxmi.com
这就是生成chroot监狱并在其中运行程序的所有步骤。
虽然 chroot 监狱对于测试不稳定的软件很有用,但在处理 SSH 连接时也很有用,因为将连接的用户设置为 chroot 环境是保护 SSH 服务器的众多方法之一。
另一方面,如果你是一名渗透测试人员,并且已登录到目标的 SSH 服务器,发现它是一个 chroot 环境,可能会感到沮丧,感觉走投无路。
然而,有很多方法可以逃离错误配置的 chroot 狱,有些方法需要 C 编程技巧,而其他方法可以使用工具自动化。一些简单的 chroot 逃逸方法包括:
请注意,要使用这些方法之一进行 chroot 逃逸,你需要在系统中具有升级的特权。通过访问 chw00t 的 GitHub 存储库,你可以了解更多关于这些逃逸方法的信息,那是一个 chroot 逃逸自动化工具。
通过本文的介绍,我们了解了chroot是什么、它是如何工作的以及如何实现它,我们还学习了如何创建chroot监狱并在其中执行应用程序或服务,以及如何逃离chroot监狱。chroot是一个简单而强大的工具,可以让你在安全和隔离的空间中运行和测试应用程序或服务。请记住,chroot并不是一个完美的安全解决方案,它有一些局限性和缺陷,因此你应该谨慎地使用它,并结合其他的沙盒或虚拟化技术来提高你的系统的安全性和稳定性。
Atas ialah kandungan terperinci arahan chroot pada Linux: Cara menjalankan dan menguji aplikasi dalam ruang terpencil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!