Какво е chroot в Linux и как работи?

Какво е chroot в Linux и как работи?
Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Искате ли да стартирате приложения или услуги в изолирано пространство на Linux? Или може би искате да тествате и отстранявате грешки в приложение, без то да пречи на останалата част от вашата система? Ако е така, ще искате да научите за chroot, мощен механизъм, вграден в Linux, който ви позволява да създадете отделна среда във вашата система.





MAKEUSEOF ВИДЕО НА ДЕНЯ ПРЕВЪРТЕТЕ, ЗА ДА ПРОДЪЛЖИТЕ СЪС СЪДЪРЖАНИЕТО

Нека разгледаме подробно chroot, да научим за неговите предимства, случаи на употреба, как да го настроим на Linux система и, ако е необходимо, как да го избегнем.





Какво е chroot в Linux?

  демонстрация на команда chroot

chroot или change-root е може би една от най-лесните и древни форми на контейнеризиращ софтуер, който позволява на потребителя безопасно да поставя в пясъчник приложения и услуги. Sandboxing, в компютърна гледна точка, е процес на изолиране на програма в ограничено пространство с предварително дефинирани ресурси.





Ако сте запознати с Docker и как работи , можете да мислите за chroot като за негова силно съкратена версия. chroot работи, като променя главната директория на програма, ограничава достъпа и видимостта и по този начин осигурява допълнителен слой на изолация и сигурност.

По същество създавате отделна директория, копирате всички зависимости на програмата в новата директория и след това изпълнявате командата chroot. Това позволява на програмата да функционира правилно, докато няма достъп до основната файлова система.



chroot-ването на програма е чудесен начин за тестване на нейната надеждност в безопасно пространство, без да се променят действителните системни файлове. Освен това можете също така да намалите риска за сигурността, причинен от компрометиран пакет, тъй като в chroot среда компрометираният пакет няма да може да осъществява достъп и да променя чувствителни системни файлове.

Програмата ще може да осъществява достъп и да преглежда само файлове, импортирани в chroot директорията, известна още като 'chroot jail'. Това предпазва програмата и нейните подпроцеси от намеса в основната система.





Какво е chroot затвор?

Chroot затворът е изолирана среда, в която се намират и изпълняват chroot програми. Терминът chroot jail произлиза от концепцията, че процесът и неговите подпроцеси в chroot средата нямат достъп или видимост до основната файлова система и са хванати в границите на chroot с предварително определени ресурси.

Сега, след като концепцията за chroot ви е ясна, нека се захванем практически и да научим как можете да създадете chroot затвор и да създадете процеси в него.





Как да създадете chroot Jail и да изпълнявате програми в него

  chroot директория и хвърляне на bash-1

Chroot jail е по същество директория, която съдържа всички необходими ресурси, файлове, бинарни файлове и други зависимости, които една програма ще трябва да функционира правилно.

Въпреки това, за разлика от обикновената Linux среда, средата на chroot jail е силно ограничена и програмата няма достъп до външни или допълнителни файлове и системни ресурси.

Например, за да стартирате обвивката на Bash в chroot затвор, ще трябва да копирате двоичния файл на Bash и всички негови зависимости в директорията на chroot.

Ето стъпките за създаване на chroot затвор и създаване на Bash shell:

  1. За да работи една програма успешно, трябва да копирате всички нейни зависимости в chrooted директорията. Нека намерим двоичния файл, в този случай Bash, и местоположението на всички негови зависимости, като използваме командите which и ldd:
     which bash 
    ldd /usr/bin/bash
  2. Сега, след като знаете местоположенията на двоичния файл и неговите зависимости, копирайте ги в директорията, която искате да превърнете в chroot jail. С помощта на командата mkdir създайте необходимите директории и използвайте командата cp , копирайте всички файлове в съответните директории:
     mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
  3. И накрая, с програмата и нейните зависимости копирани, можете да изпълните командата chroot с повишени привилегии, като използвате префикса sudo, за да създадете chroot среда в избраната директория. По подразбиране ще създаде Bash shell. Ето командата, която трябва да въведете:
     sudo chroot directory_name

Това са всички стъпки за създаване на chroot затвор и стартиране на програма в него.

възпроизвеждане на музика от телефон до кола

Как да се измъкнем от chroot затвор

Докато chroot затворите са добри за тестване на нестабилен софтуер, те също са полезни при работа с SSH връзки, тъй като chroot свързаните потребители е един от многото начини за защита на вашия SSH сървър .

От друга страна, ако сте тестер за проникване и сте влезли в SSH сървъра на вашата цел, установяването, че това е chroot среда може да бъде разочароващо и да се почувствате като задънена улица.

Има обаче доста начини да избягате от неправилно конфигуриран chroot затвор, като някои изискват умения за програмиране на C, докато други могат да бъдат автоматизирани с инструменти. Няколко лесни начина за бягство от chroot са:

  • Вложени chroot извиквания
  • Вложени chroot извиквания със запазен файлов дескриптор
  • Метод на монтиране на root
  • procfs бягство
  • ptrace бягство

Обърнете внимание, че за да извършите chroot escape с някой от тези методи, ще трябва да имате ескалирани привилегии в системата. Научете повече за тези методологии за бягство, като преминете към GitHub хранилище на chw00t , инструмент за автоматизиране на chroot escape.

Сега знаете всичко за chroot в Linux

Сега, след като знаете какво е chroot, как работи и как да го внедрите, трябва да можете да създавате приложения без усилие в пясъчник от терминала. Имайте предвид, че както знаете, има много начини да излезете от chroot среда.

Това показва, че chroot по никакъв начин не е проектиран да бъде внедрен като защитна функция. Така че трябва да използвате chroot с много внимание, тъй като неправилната конфигурация може да доведе до обратен ефект и да компрометира безопасността на вашата система.

Най-добре е да се придържате към специални решения за пясъчник, като софтуер за контейнеризиране или виртуални машини. И двете са съсредоточени около пясъчника и сигурността, така че освен ако няма нов нулев ден в града, няма да е нужно да се тревожите за сигурността и целостта на вашата система.

Ако не сте сигурни кой да изберете между контейнеризация и софтуер за виртуализация, трябва да изпробвате и двата и да видите сами кой е по-добър.