Клетки FreeBSD

Один из самых старых механизмов защиты UNIX построен на идее измененного корневого каталога (changed root), или chroot, согласно которой пользователь или программа ограничивается подразделом файловой системы, что защищает других пользователей и остальную часть файловой системы, chroot подходит для таких служб, как named(8), но ограничивает работу сложных программных комплексов, которым необходим доступ ко всей системе. Использование механизма chroot для организации веб-сервера или почтовой службы потребует приложить немалые усилия, направленные на добавление большого числа программ в chroot-окружение. Если вы работаете в компании, предоставляющей услуги веб-хостинга, вашим клиентам точно не понравится оказаться в chroot!

Клиенты, которые понимают мощь UNIX, нередко предъявляют запросы, усложняющие жизнь администратора. Например, хотят установить то или иное программное обеспечение или переконфигурировать веб-сервер, чтобы включить последний крутой модуль Apache. В двух словах, они хотят получить доступ с правами root, а в большинстве систем UNIX нельзя раздавать доступ root клиентам на сервере с множеством пользователей.

Нельзя, если у вас не FreeBSD. Администраторы FreeBSD столкнулись с этой проблемой довольно давно и решили ее, значительно улучшив механизм chroot. По сути, они решили ее так хорошо, что в системе

FreeBSD можно создавать на диске целые виртуальные машины и изолировать их от остальной части системы. Такая виртуальная машина называется клеткой (jail).

Клетку можно представить как среду клиент-сервер. Основной сервер – это хост, а каждая система-клетка – это клиент. Изменения, проводимые в хосте, можно отразить на всех системах, но изменения в клетке не затронут основную систему (если только не позволить клетке заполнить весь диск или что-либо подобное).

С точки зрения пользователя клетка очень похожа на полноценную систему FreeBSD, в которой отсутствует всего несколько устройств. Находясь в клетке, клиенты могут иметь доступ root и даже устанавливать любые программы по своему желанию. Это не окажет влияния на основную систему. Все процессы, запускаемые в клетке, ограничены ее средой. Ядро не предоставляет им доступ к информации, лежащей за пределами клетки. Поскольку программы и процессы в клетке ничего не знают о «внешнем мире» и не могут читать или получить к чему-либо доступ за его пределами, пользователь заблокирован. Мало того, что клиент не может вырваться из клетки, – если в клетку проник злоумышленник, дальше нее он не пройдет. Такой механизм позволяет обезопасить систему и удовлетворить потребности клиентов.

На современном оборудовании, с недорогими (но не дешевыми!) дисками и избытком памяти, система FreeBSD может обслуживать десятки клеток с веб-серверами. С точки зрения продвижения машина-клетка представляет собой хороший промежуточный вариант между виртуальным доменом на общем сервере и собственным локальным сервером.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий