воскресенье, 28 ноября 2010 г.

Зоны Solaris III: Устройства и безопасность

Зоны Solaris имеют ряд ограничений, как связанных с реализацией, так и с безопасностью.

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

Кроме того, вы не можете управлять физическими устройствами внутри зоны, так же, как и использовать службу volfs (VOLD), сервис которой в неглобальных зонах отключен по умолчанию. Иначе говоря, в неглобальной зоне вы не можете монтировать или размонтировать съемные устройства, подключенные к серверу.

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

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

Отдельно хочу подчеркнуть особенности использования IPFilter. Сервис IPF внутри неглобальных зон существует, однако запустить его нельзя, вне зависимости от наличия или отсутствия конфигурационного файла. Сервис переходит в состояние maintenance сразу после старта. Недостаточно прав.

Дело вот в чем. IPF в Солярис выполняется как модуль режима ядра. И, помимо доступа к логическиму устройству /dev/ip необходима еще целая серия прав на связанные ресурсы ядра глобальной зоны, чего в неглобальной зоне нет и быть не может.

Соответственно, IPFilter в неглобальной зоне использовать не получится, необходимо конфигурировать его в глобальной зоне и открывать порты для доступа в неглобальную зону.

Строго говоря, это хорошо и правильно. Администратор глобальной зоны обеспечивает покровительство и защиту файрволом неглобальных зон. :)

Замечание. В случае развертывания большого количества зон для обеспечения эффективной работы IPFilter можно воспользоваться функциональностью ippool, как показано в этой статье.

Что касается файловых прав, то, как было показано в предыдущей статье, зоны по определению имеют доступ к системным файлам и компонентам read only, что снижает возможность по установке руткитов до некоторого минимума (во всяком случае, если говорить о подмене системных бинарников). Так что, в случае компрометации неглобальной зоны, доступ к ней можно немедленно прекратить (либо заблокировав доступ при помощи IPF или просто выполнив немедленную остановку неглобальной зоны командой zoneadm halt) и разбираться с остановленной зоной вручную через файловый доступ к датасету.

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