Käsk chroot loob Linuxis isoleeritud keskkonna, muutes kõigi töötavate protsesside juurkataloogi.

Kas soovite käitada rakendusi või teenuseid Linuxis eraldatud ruumis? Või äkki soovite testida ja siluda rakendust ilma, et see segaks teie ülejäänud süsteemi? Kui jah, siis soovite õppida tundma chrooti, ​​võimsat Linuxi sisseehitatud mehhanismi, mis võimaldab teil luua süsteemis eraldi keskkonna.

Uurime chrooti üksikasjalikult, tutvume selle eeliste, kasutusjuhtudega, kuidas seda Linuxi süsteemis seadistada ja kui vaja, kuidas sellest põgeneda.

Mis on chroot Linuxis?

chroot või change-root on vaieldamatult üks lihtsamaid ja iidsemaid konteineritarkvara vorme, mis võimaldavad kasutajal turvaliselt liivakastirakendusi ja -teenuseid kasutada. Liivakast on arvutite mõistes protsess, mille käigus eraldatakse programm eelnevalt määratletud ressurssidega piiratud ruumis.

Kui olete tuttav Docker ja kuidas see töötab, võite mõelda chrootile kui selle tugevalt mahavõetud versioonile. chroot töötab, muutes programmi juurkataloogi, piirates juurdepääsu ja nähtavust ning pakkudes seega täiendavat isolatsiooni- ja turvakihti.

Põhimõtteliselt loote eraldi kataloogi, kopeerite kõik programmi sõltuvused uude kataloogi ja käivitate seejärel käsu chroot. See võimaldab programmil korralikult töötada, ilma et tal oleks juurdepääsu põhifailisüsteemile.

programmi chrootimine on suurepärane viis selle töökindluse testimiseks turvalises ruumis ilma tegelikke süsteemifaile muutmata. Lisaks saate vähendada ka rikutud paketi põhjustatud turvariski, kuna chrootitud keskkonnas ei pääse rikutud pakett tundlikele süsteemifailidele juurde ega neid muuta.

Programm saab juurde pääseda ja vaadata ainult chrootitud kataloogi imporditud faile, mida nimetatakse ka "chroot vanglaks". See hoiab programmi ja selle alamprotsesse põhisüsteemi segamast.

Mis on chrooti vangla?

Chroot-vangla on isoleeritud keskkond, kus asuvad ja käivitatakse chroot-programmid. Mõiste chroot vangla tuleneb kontseptsioonist, et protsess ja selle alamprotsessid chrootitud keskkonnas neil puudub juurdepääs või nähtavus põhifailisüsteemile ning nad on chrooti piirides kinni eelnevalt määratud ressursse.

Nüüd, kui chrooti mõiste on teile selge, tutvume sellega, kuidas saate luua chrooti vanglat ja selles protsesse luua.

Kuidas luua chroot-vanglat ja käivitada selles programme

Chroot vangla on sisuliselt kataloog, mis sisaldab kõiki vajalikke ressursse, faile, binaarfaile ja muid sõltuvusi, mida programm vajab korrektseks toimimiseks.

Kuid erinevalt tavalisest Linuxi keskkonnast on chroot vangla keskkond väga piiratud ja programm ei pääse juurde välistele ega täiendavatele failidele ja süsteemiressurssidele.

Näiteks Bashi kesta käitamiseks chroot-vanglas peate kopeerima Bashi binaarfaili ja kõik selle sõltuvused chroot-kataloogi.

Siin on juhised chrooti vangla loomiseks ja Bashi kesta loomiseks:

  1. Programmi edukaks käitamiseks peate kõik selle sõltuvused kopeerima krootitud kataloogi. Leiame kahendkoodi, antud juhul Bashi, ja kõigi selle sõltuvuste asukoha, kasutades käske what ja ldd:
    mis bash
    ldd /usr/bin/bash
  2. Nüüd, kui teate kahendfaili asukohti ja selle sõltuvusi, kopeerige need kataloogi, mille soovite muuta chroot-vanglaks. Looge käsuga mkdir vajalikud kataloogid ja kasutades cp käsk, kopeerige kõik failid vastavatesse kataloogidesse:
    mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
  3. Lõpuks, kui programm ja selle sõltuvused on üle kopeeritud, saate käivitada chroot-käsu kõrgendatud õigustega, kasutades sudo prefiksit, et luua chroot-keskkond valitud kataloogis. Vaikimisi loob see Bashi kesta. Siin on käsk sisestamiseks:
    sudo chroot kataloogi_nimi

See on kõik sammud chrooti vangla loomiseks ja selles programmi käivitamiseks.

Kuidas chrooti vanglast välja murda

Kuigi chroot-vangid sobivad hästi ebastabiilse tarkvara testimiseks, on need kasulikud ka SSH-ühenduste haldamisel, kuna ühendatud kasutajate krootimine on üks paljudest viise oma SSH-serveri kaitsmiseks.

Teisest küljest, kui olete läbitungimise testija ja olete oma sihtmärgi SSH-serverisse sisse loginud, võib selle leidmine, et see keskkond on juurdunud, olla masendav ja tunduda ummiktee.

Valesti konfigureeritud chrooti vanglast välja pääsemiseks on aga üsna palju võimalusi, millest mõned nõuavad C-taseme programmeerimisoskusi, samas kui teisi saab tööriistade abil automatiseerida. Mõned lihtsad viisid chrootist põgenemiseks on järgmised:

  • Pesastatud chroot-kõned
  • Pesastatud chroot-kutsed salvestatud failideskriptoriga
  • Mount root meetod
  • procfs põgeneb
  • ptrace põgeneda

Pidage meeles, et chroot põgenemise sooritamiseks mis tahes nendest meetoditest peavad teil olema süsteemis eskaleeritud õigused. Lisateavet nende põgenemismeetodite kohta leiate aadressilt chw00t GitHubi hoidlachroot põgenemise automatiseerimistööriist.

Nüüd teate kõike chrooti kohta Linuxis

Nüüd, kui teate, mis on chroot, kuidas see töötab ja kuidas seda rakendada, peaksite saama terminalist hõlpsasti liivakastirakendusi. Pidage meeles, et nagu teate, on juurdunud keskkonnast väljamurdmiseks mitu võimalust.

See näitab, et chroot ei olnud mingil juhul mõeldud turvafunktsioonina rakendamiseks. Seega peaksite chrooti kasutama väga ettevaatlikult, kuna vale konfiguratsioon võib lõppeda tagasilöögiga ja ohustada teie süsteemi ohutust.

Parim on jääda spetsiaalsete liivakastilahenduste juurde, nagu konteineritarkvara või virtuaalmasinad. Mõlemad on keskendunud liivakastile ja turvalisusele, nii et kui linnas pole uut nullpäeva, ei pea te oma süsteemi turvalisuse ja terviklikkuse pärast muretsema.

Kui te pole kindel, kumba konteineriseerimis- ja virtualiseerimistarkvara vahel valida, peaksite proovima mõlemat ja uurima ise, milline neist on parem.