Тюрьма FreeBSD
Механизм тюрьмы — это реализация , FreeBSD виртуализации на уровне ОС которая позволяет системным администраторам разделить компьютерную систему, основанную на FreeBSD, на несколько независимых мини-систем, называемых тюрьмами , все из которых используют одно и то же ядро с очень небольшими накладными расходами. [1] . Это реализуется через системный вызов Jail(2), [2] а также пользовательскую утилиту Jail(8), [3] плюс, в зависимости от системы, ряд других утилит. Эта функциональность была включена во FreeBSD в 1999 году Полом-Хеннингом Кампом после некоторого периода производственного использования хостинг-провайдером и впервые была выпущена во FreeBSD 4.0, таким образом, по сей день поддерживается в ряде потомков FreeBSD, включая DragonFly BSD .
История [ править ]
Потребность в тюрьмах FreeBSD возникла из-за желания небольшого провайдера хостинга с общей средой (владелец R&D Associates, Inc. Деррик Т. Вулворт) установить четкое и четкое разделение между своими собственными услугами и услугами своих клиентов. в основном из-за безопасности и простоты администрирования ( jail(8) ). Вместо добавления нового уровня параметров детальной конфигурации решение, принятое Полом-Хеннингом Кампом, заключалось в том, чтобы разделить систему – как ее файлы, так и ее ресурсы – таким образом, чтобы только нужные люди имели доступ к нужным отсекам. . [4]
Джейлы впервые были представлены во FreeBSD версии 4.0, выпущенной 14 марта 2000 года [5] Большая часть исходных функций поддерживается в DragonFly, а также были портированы некоторые новые функции.
.Цели [ править ]
Этот раздел нуждается в дополнительных цитатах для проверки . ( январь 2011 г. ) |
Тюрьмы FreeBSD в основном преследуют три цели:
- Виртуализация: каждая тюрьма представляет собой виртуальную среду, работающую на хост-компьютере, со своими собственными файлами, процессами, учетными записями пользователей и суперпользователей . Изнутри заключенного процесса среда практически неотличима от реальной системы.
- Безопасность: каждая тюрьма изолирована от других, что обеспечивает дополнительный уровень безопасности.
- Простота делегирования: ограниченный объем тюрьмы позволяет системным администраторам делегировать несколько задач, требующих доступа суперпользователя, не передавая при этом полный контроль над системой.
В отличие от тюрьмы chroot , которая ограничивает процессы только определенным представлением файловой системы , механизм тюрьмы FreeBSD ограничивает активность процесса в тюрьме по отношению к остальной части системы. По сути, заблокированные процессы помещаются в песочницу . Они привязаны к определенным IP-адресам , и заблокированный процесс не может получить доступ к сокетам переадресации или маршрутизации . Raw-сокеты также отключены по умолчанию, но их можно включить, установив параметр security.jail.allow_raw_sockets
sysctl опция . Кроме того, ограничено взаимодействие между процессами, которые не работают в одной тюрьме.
The утилита Jail(8) и Jail(2) Системный вызов впервые появился во FreeBSD 4.0 . Новые утилиты (например jls(8) для вывода списка тюрем) и системные вызовы (например Jail_attach(2) для присоединения нового процесса к тюрьме), которые значительно упрощают управление тюрьмой, были добавлены во FreeBSD 5.1. В FreeBSD 7.2 подсистема тюрьмы получила дальнейшие существенные обновления, включая поддержку нескольких адресов IPv4 и IPv6 для каждой тюрьмы, а также поддержку привязки тюрем к конкретным процессорам.
Виртуализация [ править ]
С Jail можно создавать среды, каждая из которых имеет собственный набор установленных утилит и собственную конфигурацию. Тюрьмы на пакетах программного обеспечения позволяют просматривать систему эгоистично, как если бы каждый пакет имел машину только для себя. В тюрьмах также могут быть свои собственные, независимые, заключенные в тюрьму суперпользователи. [6]
Однако тюрьма FreeBSD не обеспечивает настоящей виртуализации; он не позволяет виртуальным машинам запускать версии ядра, отличные от версии базовой системы. Все тюрьмы используют одно и то же ядро. Нет поддержки кластеризации или миграции процессов .
Безопасность [ править ]
Джейлы FreeBSD — это эффективный способ повысить безопасность сервера благодаря разделению изолированной среды и остальной части системы (других тюрем и базовой системы).
Джейлы FreeBSD ограничены следующими способами: [6]
- Заключенные процессы не могут взаимодействовать с процессами в другой тюрьме или на основном хосте. Например, Команда ps покажет только процессы, запущенные в тюрьме.
- Модификация работающего ядра путем прямого доступа и загрузка модулей запрещена. Изменение большинства sysctls и уровня безопасности запрещено.
- Изменение конфигурации сети, включая интерфейсы, интерфейсы или IP-адреса, а также таблицу маршрутизации , запрещено. Доступ к сокетам переадресации и маршрутизации также запрещен. Кроме того, по умолчанию необработанные сокеты отключены. Джейл привязан только к определенным IP-адресам, и правила брандмауэра нельзя изменить. С появлением VNET (стека виртуальной сети) тюрьмы могут свободно изменять конфигурацию своей сети (включая интерфейсы, IP-адреса и т. д.), при условии, что виртуальная сеть включена для тюрьмы.
- Монтирование и размонтирование файловых систем запрещено. Джейлы не могут получить доступ к файлам, расположенным выше их корневого каталога (т. е. тюрьма имеет chroot).
- Заключенные процессы не могут создавать узлы устройств.
См. также [ править ]
Ссылки [ править ]
- ^ Дэвид Чисналл (15 июня 2007 г.). «DragonFly BSD: UNIX для кластеров?» . ИнформИТ . Прентис Холл Профессионал . Проверено 6 марта 2019 г.
- ^ "jail(2) — создавать и управлять системными тюрьмами" . FreeBSD , DragonFly BSD .
- «jail, Jail_get, Jail_set, Jail_remove, Jail_attach — создавать и управлять системными тюрьмами». Страницы руководства FreeBSD .
- «тюрьма — заключить в тюрьму текущий процесс и будущих потомков». Страницы онлайн-руководства DragonFly .
- ^ "jail(8) — управление тюрьмами системы" . FreeBSD , DragonFly BSD .
- «jail — управлять тюрьмами системы». Страницы руководства FreeBSD .
- «тюрьма-тюремный процесс и его потомки». Страницы онлайн-руководства DragonFly .
- ^ Камп, Пол-Хеннинг; Н. М. Уотсон, Роберт (2000). «Тюрьмы: ограничение всемогущего корня» (PDF) . PHKs Bikeshed . Проверено 15 июня 2016 г.
- ^ «Анонс FreeBSD 4.0» . Проект FreeBSD. 14 марта 2000 года . Проверено 3 октября 2019 г.
- ↑ Перейти обратно: Перейти обратно: а б «Глава 16. Тюрьмы» . Портал документации FreeBSD . Проверено 13 декабря 2022 г.
Дальнейшее чтение [ править ]
- Лукас, Майкл В. (2019). Мастерство FreeBSD: тюрьмы . Наклонный пресс ветряной мельницы. ISBN 978-1-64235-023-4 .