FreeBSD тюрьма

редактировать

Механизм jail - это реализация виртуализации FreeBSD на уровне ОС, которая позволяет системным администраторам разбивать компьютерную систему, производную FreeBSD, на несколько независимых мини-систем, называемых jail, все они используют одно и то же ядро, с очень небольшими накладными расходами. Это реализуется с помощью системного вызова jail (2), а также служебной программы пользовательского уровня jail (8), а также, в зависимости от системы, ряда других утилит. Функциональность была передана во FreeBSD в 1999 году Полом-Хеннингом Кампом после некоторого периода производственного использования хостинг-провайдером и впервые была выпущена с FreeBSD 4.0, таким образом, поддерживаясь в ряде потомков FreeBSD, включая DragonFly BSD по сей день.

Потребность в тюрьмах FreeBSD возникла из-за желания небольшого хостинг-провайдера совместно используемой среды (владелец Ramp;D Associates, Inc., Деррик Т. Вулворт) установить четкое и четкое разделение между своими собственными сервисами и сервисами своих клиентов. в основном для безопасности и простоты администрирования ( jail (8) ). Вместо добавления нового уровня детализированных параметров конфигурации решение, принятое Полом-Хеннингом Кампом, заключалось в разделении системы - как ее файлов, так и ее ресурсов - таким образом, чтобы только нужным людям был предоставлен доступ к нужным отсекам..

СОДЕРЖАНИЕ

  • 1 История
  • 2 гола
    • 2.1 Виртуализация
    • 2.2 Безопасность
  • 3 См. Также
  • 4 ссылки
  • 5 Внешние ссылки

История

Тюрьмы были впервые представлены в FreeBSD версии 4.0, выпущенной 14 марта 2000 года. DragonFly поддерживает большую часть исходной функциональности, а также перенесено несколько новых функций.  ( 2000-03-14 )

Цели

Тюрьмы FreeBSD в основном преследуют три цели:

  1. Виртуализация: каждая тюрьма представляет собой виртуальную среду, работающую на хост-машине со своими собственными файлами, процессами, учетными записями пользователей и суперпользователей. Изнутри заключенного в тюрьму процесса окружающая среда почти неотличима от реальной системы.
  2. Безопасность: каждая тюрьма изолирована от других, что обеспечивает дополнительный уровень безопасности.
  3. Легкость делегирования: ограниченные возможности тюрьмы позволяют системным администраторам делегировать несколько задач, требующих доступа суперпользователя, без передачи полного контроля над системой.

В отличие от chroot jail, который ограничивает процессы определенным представлением файловой системы, механизм тюрьмы FreeBSD ограничивает действия процесса в тюрьме по отношению к остальной части системы. Фактически, заключенные в тюрьму процессы изолированы. Они привязаны к определенным IP-адресам, и заключенный в тюрьму процесс не может получить доступ к сокетам перенаправления или маршрутизации. Необработанные сокеты также отключены по умолчанию, но их можно включить, установив параметр security.jail.allow_raw_sockets sysctl. Кроме того, ограничивается взаимодействие между процессами, которые не выполняются в одной тюрьме.

Тюремное (8) полезность и тюремное заключение (2) системный вызов впервые появился в FreeBSD 4.0. Во FreeBSD 5.1 были добавлены новые утилиты (например, jls (8) для вывода списка тюрем) и системные вызовы (например, jail_attach (2) для присоединения нового процесса к тюрьме), которые значительно упрощают управление тюрьмами. Подсистема jail получила дальнейшие значительные обновления с FreeBSD 7.2, включая поддержку нескольких адресов IPv4 и IPv6 для каждой клетки и поддержку привязки jail к определенным процессорам.

Виртуализация

С помощью jail можно создавать различные виртуальные машины, на каждой из которых установлен свой набор утилит и своя конфигурация. Это делает его безопасным способом опробовать программное обеспечение. Например, можно запускать разные версии или пробовать разные конфигурации пакета веб-сервера в разных тюрьмах. А поскольку тюрьма ограничена узкими рамками, последствия неправильной конфигурации или ошибки (даже если они были сделаны суперпользователем в тюрьме) не ставят под угрозу целостность остальной системы. Поскольку на самом деле ничего не было изменено за пределами тюрьмы, "изменения" можно отменить, удалив копию дерева каталогов для тюрьмы.

Виртуализация ценна для поставщиков услуг, желающих предложить своим пользователям возможность настраивать конфигурацию и в то же время упростить обслуживание всей системы. Например, двум разным клиентам могут потребоваться разные версии одного и того же программного обеспечения. Без тюрем настроить несколько версий программного обеспечения в разных каталогах и гарантировать, что они не посягают друг на друга, не всегда возможно или легко поддерживать (например, XFree86, как известно, сложно перемещать). С другой стороны, тюрьмы позволяют программным пакетам эгоистично рассматривать систему, как если бы каждый пакет имел свою машину. У тюрьмы также могут быть свои собственные, независимые, заключенные в тюрьму суперпользователи.

Однако тюрьма FreeBSD не обеспечивает истинной виртуализации; он не позволяет виртуальным машинам запускать версии ядра, отличные от версии базовой системы. Все виртуальные серверы используют одно и то же ядро ​​и, следовательно, обнаруживают одни и те же ошибки и потенциальные дыры в безопасности. Нет поддержки кластеризации или миграции процессов, поэтому ядро ​​хоста и хост-компьютер по-прежнему являются единой точкой отказа для всех виртуальных серверов. Можно использовать тюрьмы для безопасного тестирования нового программного обеспечения, но не новых ядер.

Безопасность

Тюрьмы FreeBSD - это эффективный способ повысить безопасность сервера из-за разделения между заключенной средой и остальной системой (другими тюрьмами и базовой системой).

Например, в не в тюрьме системы, веб - сервер работает как пользователь WWW, который вводит PHP - включают в себя уязвимость может поставить под угрозу всю систему: злоумышленник будет иметь права пользователя WWW, которые обычно могут изменять файлы на веб - сервере, бродить по дереву каталогов и собирать информацию, такую ​​как полный список пользователей, оболочку и домашний каталог, из / etc / passwd.

Но если веб-сервер заключен в тюрьму, область действия пользователя www ограничивается тюрьмой, которая, в свою очередь, может быть достаточно минималистичной, чтобы не выдавать очень много. Даже если злоумышленник получит доступ к учетной записи суперпользователя тюрьмы, он сможет изменить только эту тюрьму, а не всю систему.

Во FreeBSD есть следующие ограничения:

  • Заключенные в тюрьму процессы не могут взаимодействовать с процессами в другой тюрьме или на главном хосте. Например, команда ps покажет только процессы, запущенные в тюрьме.
  • Модификация работающего ядра путем прямого доступа и загрузки модулей запрещена. Изменение большинства параметров ядра и уровень защиты запрещаются.
  • Изменение конфигурации сети, включая интерфейсы, интерфейс или IP-адреса, а также таблицу маршрутизации, запрещено. Доступ к сокетам переадресации и маршрутизации также запрещен. Кроме того, по умолчанию необработанные сокеты отключены. Тюрьма привязана только к определенным IP-адресам, и правила брандмауэра не могут быть изменены. С введением VNET (виртуального сетевого стека) тюрьмы могут свободно изменять свою сетевую конфигурацию (включая интерфейсы, IP-адреса и т. Д.), При условии, что vnet включен для тюрьмы.
  • Монтирование и размонтирование файловых систем запрещено. Тюрьмы не могут получить доступ к файлам, находящимся выше их корневого каталога (т.е. тюрьма chroot'ed).
  • Заключенные в тюрьму процессы не могут создавать узлы устройств.

Смотрите также

Рекомендации

Внешние ссылки

Последняя правка сделана 2023-03-19 12:06:01
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте