A chroot parancs izolált környezetet hoz létre Linuxon az összes futó folyamat gyökérkönyvtárának megváltoztatásával.
Elszigetelt helyen szeretne alkalmazásokat vagy szolgáltatásokat futtatni Linuxon? Vagy esetleg szeretne tesztelni és hibakeresni egy alkalmazást anélkül, hogy az zavarná a rendszer többi részét? Ha igen, akkor érdemes megismerkednie a chroot-tal, a Linuxba beépített hatékony mechanizmussal, amely lehetővé teszi egy külön környezet létrehozását a rendszeren belül.
Fedezze fel részletesen a chrootot, ismerje meg előnyeit, használati eseteit, hogyan állítsa be Linux rendszeren, és ha szükséges, hogyan kerülje el.
Mi a chroot a Linuxban?
A chroot vagy change-root vitathatatlanul az egyik legegyszerűbb és legősibb konténeres szoftverforma, amely lehetővé teszi a felhasználó számára, hogy biztonságosan sandbox alkalmazásokat és szolgáltatásokat helyezzen el. A sandboxing számítástechnikai értelemben egy program elkülönítésének folyamata egy szűk térben, előre meghatározott erőforrásokkal.
Ha ismeri Docker és hogyan működik, a chroot egy erősen lecsupaszított változataként képzelheti el. A chroot úgy működik, hogy megváltoztatja a programok gyökérkönyvtárát, korlátozza a hozzáférést és a láthatóságot, és így további elszigetelési és biztonsági réteget biztosít.
Lényegében hozzon létre egy külön könyvtárat, másolja át a program összes függőségét az új könyvtárba, majd futtassa a chroot parancsot. Ez lehetővé teszi a program megfelelő működését, miközben nem fér hozzá az alap fájlrendszerhez.
egy program chrootolása nagyszerű módja annak, hogy biztonságos helyen tesztelje a megbízhatóságát anélkül, hogy megváltoztatná a rendszer fájljait. Ezenkívül csökkentheti a feltört csomag által okozott biztonsági kockázatot is, mivel chrootolt környezetben a feltört csomag nem tud hozzáférni és módosítani az érzékeny rendszerfájlokat.
A program csak a chrootolt könyvtárba, más néven "chroot börtönbe" importált fájlokat tudja majd elérni és megtekinteni. Ez megakadályozza, hogy a program és részfolyamatai zavarják az alaprendszert.
Mi az a chroot börtön?
A chroot börtön egy elszigetelt környezet, ahol a chroot programok találhatók és futnak. A chroot börtön kifejezés abból a koncepcióból származik, hogy a folyamat és részfolyamatai a chrootolt környezetben nincs hozzáférésük vagy láthatóságuk az alap fájlrendszerhez, és a chroot határain belül vannak előre meghatározott erőforrások.
Most, hogy a chroot fogalma világos számodra, kezdjük el a gyakorlatot, és tanuljuk meg, hogyan hozhatsz létre chroot börtönt, és hogyan indíthatsz el benne folyamatokat.
Hogyan hozzunk létre egy chroot börtönt és hajtsunk végre programokat benne
A chroot jail lényegében egy olyan könyvtár, amely tartalmazza az összes szükséges erőforrást, fájlt, bináris fájlt és egyéb függőséget, amelyre a program megfelelő működéséhez szüksége van.
A normál Linux környezettől eltérően azonban a chroot jail környezete erősen korlátozott, és a program nem fér hozzá külső vagy további fájlokhoz és rendszererőforrásokhoz.
Például a Bash shell chroot jailben való futtatásához át kell másolnia a Bash bináris fájlt és annak összes függőségét a chroot könyvtárba.
Íme a lépések a chroot börtön létrehozásához és a Bash shell létrehozásához:
- Egy program sikeres futtatásához át kell másolnia az összes függőségét a chrootolt könyvtárba. Keressük meg a binárist, ebben az esetben a Bash-t, és minden függőségének helyét a which és az ldd parancsok segítségével:
amely bash
ldd /usr/bin/bash - Most, hogy ismeri a bináris fájl helyét és függőségeit, másolja át őket abba a könyvtárba, amelyet chroot börtönré kíván alakítani. Az mkdir paranccsal hozza létre a szükséges könyvtárakat és használja a cp parancsot, másolja az összes fájlt a megfelelő könyvtárakba:
mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
- Végül a program és függőségei átmásolásával futtathatja a chroot parancsot emelt szintű jogosultságokkal a sudo előtag használatával a chroot környezet létrehozásához a kiválasztott könyvtárban. Alapértelmezés szerint egy Bash shellt fog létrehozni. Itt van a beírandó parancs:
sudo chroot könyvtárnév
Ez az összes lépés a chroot börtön létrehozásához és egy program futtatásához.
Hogyan lehet kitörni a chroot börtönből
Noha a chroot jail-ek alkalmasak instabil szoftverek tesztelésére, az SSH-kapcsolatok kezelésénél is hasznosak, mivel a csatlakoztatott felhasználók chrootolása a sok közül. az SSH-kiszolgáló biztonságának módjait.
A másik oldalon, ha Ön egy penetrációtesztelő, és bejelentkezett a célpont SSH-kiszolgálójára, frusztráló lehet, ha azt találja, hogy ez egy chrootolt környezet, és zsákutcának érezheti magát.
A rosszul konfigurált chroot börtönből azonban nagyon sok módszer létezik, amelyek közül néhány C programozási készségeket igényel, míg mások szerszámokkal automatizálhatók. A chroot menekülés néhány egyszerű módja:
- Beágyazott chroot hívások
- Beágyazott chroot hívások mentett fájlleíróval
- Mount root módszer
- procf megszökik
- ptrace menekülés
Ne feledje, hogy a chroot escape végrehajtásához ezen módszerek bármelyikével megnövelt jogosultságokkal kell rendelkeznie a rendszerben. Ha többet szeretne megtudni ezekről a menekülési módszerekről, látogasson el ide chw00t GitHub tárháza, egy chroot escape automatizálási eszköz.
Most már mindent tud a chrootról Linux alatt
Most, hogy tudja, mi az a chroot, hogyan működik, és hogyan kell megvalósítani, könnyedén sandboxba helyezheti az alkalmazásokat a terminálról. Ne feledje, hogy amint azt Ön is tudja, többféleképpen is ki lehet törni egy chrootolt környezetből.
Ez azt mutatja, hogy a chrootot semmiképpen sem úgy tervezték, hogy biztonsági funkcióként alkalmazzák. Ezért nagyon körültekintően kell használnia a chrootot, mivel a nem megfelelő konfiguráció visszafelé sülhet el, és veszélyeztetheti a rendszer biztonságát.
A legjobb, ha ragaszkodunk az olyan dedikált sandbox-megoldásokhoz, mint a konténerező szoftverek vagy a virtuális gépek. Mindkettő középpontjában a sandbox és a biztonság áll, így hacsak nincs új nulladik nap a városban, nem kell aggódnia a rendszer biztonsága és integritása miatt.
Ha nem biztos abban, hogy melyiket válassza a konténerező és a virtualizációs szoftverek közül, próbálja ki mindkettőt, és nézze meg, melyik a jobb.