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

Что такое chroot в Linux и как он работает?
Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Вы хотите запускать приложения или службы в изолированном пространстве в Linux? Или, может быть, вы хотите протестировать и отладить приложение, не мешая работе остальной системы? Если это так, вы захотите узнать о chroot, мощном механизме, встроенном в Linux, который позволяет вам создавать отдельную среду в вашей системе.





СДЕЛАТЬ ВИДЕО ДНЯ ПРОКРУТИТЕ, ЧТОБЫ ПРОДОЛЖИТЬ СОДЕРЖАНИЕ

Давайте подробно рассмотрим chroot, узнаем о его преимуществах, примерах использования, о том, как настроить его в системе Linux и, если необходимо, как его избежать.





Что такое chroot в Linux?

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

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





как составить контрольный список в Excel

Если вы знакомы с Докер и как он работает , вы можете думать о chroot как о его сильно урезанной версии. chroot работает, изменяя корневой каталог программы, ограничивая доступ и видимость и, таким образом, обеспечивая дополнительный уровень изоляции и безопасности.

По сути, вы создаете отдельный каталог, копируете все зависимости программы в новый каталог, а затем запускаете команду chroot. Это позволяет программе работать правильно, не имея доступа к базовой файловой системе.



chroot для программы — отличный способ проверить ее надежность в безопасном месте без изменения реальных системных файлов. Кроме того, вы также можете снизить риск безопасности, вызванный скомпрометированным пакетом, поскольку в chroot-окружении скомпрометированный пакет не сможет получить доступ и изменить конфиденциальные системные файлы.

Программа сможет получать доступ и просматривать только файлы, импортированные в каталог chroot, также известный как «тюрьма chroot». Это предотвращает вмешательство программы и ее подпроцессов в базовую систему.





Что такое chroot Jail?

Тюрьма chroot — это изолированная среда, в которой находятся и выполняются программы chroot. Термин chroot-тюрьма происходит от концепции, согласно которой процесс и его подпроцессы внутри chroot-среды не имеют доступа или видимости к базовой файловой системе и находятся в пределах chroot-окружения с заранее определенными ресурсами.

Теперь, когда концепция chroot вам ясна, давайте приступим к практике и узнаем, как создать chroot-тюрьму и порождать в ней процессы.





Как создать chroot-тюрьму и запускать в ней программы

  chroot каталог и создание bash-1

Тюрьма chroot — это, по сути, каталог, содержащий все необходимые ресурсы, файлы, двоичные файлы и другие зависимости, которые необходимы программе для правильной работы.

Однако, в отличие от обычной среды Linux, среда chroot-тюрьмы сильно ограничена, и программа не может получить доступ к внешним или дополнительным файлам и системным ресурсам.

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

Вот шаги для создания chroot-тюрьмы и запуска оболочки Bash:

  1. Чтобы программа работала успешно, вам необходимо скопировать все ее зависимости в каталог chroot. Найдем бинарный файл, в данном случае Bash, и расположение всех его зависимостей с помощью команд which и ldd:
     which bash 
    ldd /usr/bin/bash
    .
  2. Теперь, когда вы знаете расположение двоичного файла и его зависимостей, скопируйте их в каталог, который вы хотите превратить в chroot-тюрьму. С помощью команды mkdir создайте необходимые каталоги и с помощью команда ср , скопируйте все файлы в соответствующие каталоги:
     mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* /lib64/ && cp /bin/bash /bin/
  3. Наконец, когда программа и ее зависимости скопированы, вы можете запустить команду chroot с повышенными привилегиями, используя префикс sudo, чтобы создать среду chroot в выбранном каталоге. По умолчанию он порождает оболочку Bash. Вот команда для ввода:
     sudo chroot directory_name

Это все шаги по созданию chroot-тюрьмы и запуску программы внутри нее.

Как вырваться из тюрьмы chroot

Хотя chroot-тюрьмы хороши для тестирования нестабильного программного обеспечения, они также полезны при работе с SSH-соединениями, поскольку chroot-подключение подключенных пользователей является одним из многих способы защиты вашего SSH-сервера .

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

Тем не менее, существует довольно много способов выбраться из неправильно сконфигурированной тюрьмы chroot, некоторые из них требуют навыков программирования на C, а другие можно автоматизировать с помощью инструментов. Вот несколько простых способов выхода из chroot:

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

Обратите внимание, что для выполнения побега из chroot любым из этих методов вам потребуются повышенные привилегии в системе. Узнайте больше об этих методологиях побега, перейдя на GitHub-репозиторий chw00t , инструмент автоматизации выхода из chroot.

Теперь вы знаете все о chroot в Linux

Теперь, когда вы знаете, что такое chroot, как он работает и как его реализовать, вы сможете без особых усилий помещать приложения в песочницу из терминала. Имейте в виду, что, как вы знаете, есть несколько способов выйти из chroot-окружения.

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

Лучше всего придерживаться специализированных решений для песочницы, таких как программное обеспечение для контейнеризации или виртуальные машины. Оба они сосредоточены на песочнице и безопасности, поэтому, если в городе не будет нового нулевого дня, вам не нужно беспокоиться о безопасности и целостности вашей системы.

Если вы не уверены, что выбрать между программным обеспечением для контейнеризации и виртуализации, попробуйте оба и убедитесь сами, какой из них лучше.