Ce este chroot-ul în Linux și cum funcționează?

Ce este chroot-ul în Linux și cum funcționează?
Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Căutați să rulați aplicații sau servicii într-un spațiu izolat pe Linux? Sau poate doriți să testați și să depanați o aplicație fără ca aceasta să interfereze cu restul sistemului dvs.? Dacă da, veți dori să aflați despre chroot, un mecanism puternic încorporat în Linux care vă permite să creați un mediu separat în cadrul sistemului dvs.





REALIZAREA VIDEOCLIPULUI ZILEI Derulați PENTRU A CONTINUA CU CONȚINUT

Să explorăm chroot-ul în detaliu, să aflăm despre beneficiile sale, cazurile de utilizare, cum să îl configurați pe un sistem Linux și, dacă este necesar, cum să scăpăm de el.





Ce este chroot în Linux?

  demonstrarea comenzii chroot

chroot sau change-root este, fără îndoială, una dintre cele mai ușoare și vechi forme de software de containerizare care permit unui utilizator să sandbox în siguranță aplicațiile și serviciile. Sandboxing, în termeni de calcul, este procesul de izolare a unui program într-un spațiu restrâns cu resurse predefinite.





Dacă ești familiarizat cu Docker și cum funcționează , te poți gândi la chroot ca la o versiune foarte redusă a acestuia. chroot funcționează prin schimbarea directorului rădăcină al unui program, restricționând accesul și vizibilitatea, oferind astfel un strat suplimentar de izolare și securitate.

În esență, creați un director separat, copiați toate dependențele programului în noul director și apoi executați comanda chroot. Acest lucru permite programului să funcționeze corect, fără a avea acces la sistemul de fișiere de bază.



Chrootarea unui program este o modalitate excelentă de a-i testa fiabilitatea într-un spațiu sigur, fără a modifica fișierele sistemului actual. Mai mult, puteți reduce și riscul de securitate cauzat de un pachet compromis, deoarece într-un mediu chrootat, pachetul compromis nu va putea accesa și modifica fișierele sensibile de sistem.

Programul va putea doar să acceseze și să vizualizeze fișierele importate în directorul chrootat, altfel cunoscut sub numele de „chroot jail”. Acest lucru împiedică programul și subprocesele sale să interfereze cu sistemul de bază.





Ce este o închisoare chroot?

O închisoare chroot este un mediu izolat în care se află și sunt executate programele chroot. Termenul chroot jail este derivat din conceptul că procesul și subprocesele sale din mediul chroot nu au acces sau vizibilitate la sistemul de fișiere de bază și sunt prinse în limitele chroot-ului cu resurse predeterminate.

Acum că conceptul de chroot este clar pentru tine, haideți să ne punem în practică și să învățăm cum puteți crea o închisoare chroot și să generați procese în ea.





Cum să creați o închisoare chroot și să executați programe în el

  Chrootarea unui director și generarea bash-1

O închisoare chroot este în esență un director care conține toate resursele, fișierele, binarele și alte dependențe necesare unui program pentru a funcționa corect.

Cu toate acestea, spre deosebire de un mediu Linux obișnuit, mediul închisorii chroot este foarte restricționat și programul nu poate accesa fișiere externe sau suplimentare și resurse de sistem.

De exemplu, pentru a rula shell-ul Bash într-o închisoare chroot, ar trebui să copiați binarul Bash și toate dependențele acestuia în directorul chroot.

Iată pașii pentru a crea o închisoare chroot și pentru a genera un shell Bash:

  1. Pentru ca un program să ruleze cu succes, trebuie să copiați toate dependențele sale în directorul chrootat. Să găsim binarul, în acest caz, Bash, și locația tuturor dependențelor sale folosind comenzile which și ldd:
     which bash 
    ldd /usr/bin/bash
  2. Acum că știți locațiile binarului și dependențele sale, copiați-le în directorul pe care doriți să-l transformați într-o închisoare chroot. Folosind comanda mkdir creați directoarele necesare și folosind comanda cp , copiați toate fișierele în directoarele corespunzătoare:
     mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
  3. În cele din urmă, cu programul și dependențele sale copiate, puteți rula comanda chroot cu privilegii ridicate folosind prefixul sudo pentru a genera mediul chroot în directorul ales. În mod implicit, va genera un shell Bash. Iată comanda pentru a introduce:
     sudo chroot directory_name

Aceștia sunt toți pașii pentru a genera o închisoare chroot și a rula un program în interiorul acesteia.

Cum să ieși dintr-o închisoare chroot

În timp ce închisorile chroot sunt bune pentru testarea software-ului instabil, ele sunt utile și atunci când se gestionează conexiuni SSH, deoarece folosirea chrootării utilizatorilor conectați este una dintre multele modalități de a vă securiza serverul SSH .

Pe de altă parte, dacă sunteți un tester de penetrare și v-ați conectat la serverul SSH al țintei dvs., găsirea că este un mediu chrootat poate fi frustrant și vă simțiți ca o fundătură.

Cu toate acestea, există destul de multe modalități de a scăpa dintr-o închisoare chroot greșit configurată, unele necesitând abilități de programare C, în timp ce altele pot fi automatizate cu instrumente. Câteva moduri ușoare de evadare a chroot sunt:

  • Apeluri chroot imbricate
  • Apeluri chroot imbricate cu descriptor de fișier salvat
  • Metoda Mount root
  • evadarea procfs
  • ptrace evadare

Rețineți că pentru a efectua evadarea chroot folosind oricare dintre aceste metode, va trebui să aveți privilegii crescute în sistem. Aflați mai multe despre aceste metodologii de evadare accesând Depozitul GitHub al chw00t , un instrument de automatizare a evadarii chroot.

cum să evidențiați în Adobe Reader

Acum știți totul despre chroot în Linux

Acum că știți ce este chroot-ul, cum funcționează și cum să îl implementați, ar trebui să puteți să sandbox aplicațiile fără efort de pe terminal. Rețineți că, după cum știți, există mai multe moduri de a ieși dintr-un mediu chrootat.

Acest lucru arată că chroot nu a fost în niciun fel conceput pentru a fi implementat ca o caracteristică de securitate. Prin urmare, ar trebui să utilizați chroot cu multă prudență, deoarece o configurație necorespunzătoare poate ajunge înapoi și poate compromite siguranța sistemului dumneavoastră.

Cel mai bine este să rămâneți la soluții de sandboxing dedicate, cum ar fi software-ul de containerizare sau mașinile virtuale. Ambele sunt centrate pe sandbox și securitate, așa că dacă nu există o nouă zi zero în oraș, nu ar trebui să vă faceți griji cu privire la securitatea și integritatea sistemului dvs.

Dacă nu sunteți sigur ce să alegeți între software-ul de containerizare și virtualizare, ar trebui să le încercați pe ambele și să vedeți singur care dintre ele este mai bun.