Интернет магазин китайских планшетных компьютеров



Компьютеры - FreeBSD Jail

07 мая 2011


Оглавление:
1. FreeBSD Jail
2. Использование
3. Недостатки реализации Jail



FreeBSD Jail — механизм виртуализации в системе FreeBSD, позволяющий создавать внутри одной операционной системы FreeBSD несколько независимо работающих FreeBSD на том же ядре операционной системы, но совершенно независимо настраиваемых с независимым набором установленных приложений.

В основу FreeBSD Jail вошёл системный вызов chroot, при котором для текущего процесса и всех его потомков, корневой каталог переносится в определённое место на файловой системе. При этом это место для процесса становится корневым каталогом. Таким образом, изолированный процесс может иметь доступ только к низлежащему дереву каталогов.

Однако FreeBSD Jail также имеет поддержку на уровне ядра, что позволяет ограничивать доступ к сети, общей памяти, переменным ядра sysctl и ограничивать видимость процессов вне jail.

Процесс, заключённый в Jail может иметь доступ только к определённому IP-адресу операционной системы и использовать определённый hostname. Такой процесс называется «изолированный процесс» или «Jailed-процесс».

Таким образом, создаётся безопасная «клетка», внутри которой можно исполнять даже потенциально опасное программное обеспечение, которое не сможет никак повредить основной системе или другим таким же «клеткам». Впрочем, кое как всё-таки можно изнутри «клетки» повлиять на процессы вне её — FreeBSD Jail не контролирует использование ресурсов. Существуют патчи для версии 8.0-CURRENT, которые позволяют ограничивать ресурсы ЦП, ОП, число процессов и число файловых дескрипторов. и коммерческая разработка VDSManager, развивающая технологию Jails - более жесткое разграничение программ, запускаемых внутри jails по доступу к ресурсам и предоставляющая средства управления на базе web-интерфейса.

На уровне sysctl системы настраиваются привилегии Jailed-процессов:

Идентификатор sysctl Контролируемая функциональность
security.jail.chflags_allowed Возможность менять системные флаги файлов
security.jail.allow_raw_sockets Возможность создавать низкоуровневые сокеты
security.jail.sysvipc_allowed Возможность использовать System V IPC
security.jail.set_hostname_allowed Возможность задавать собственные hostname внутри Jailed-процессов
security.jail.enforce_statfs Возможность видеть все монтированные файловые системы внутри Jailed-процессов
security.jail.socket_unixiproute_only Ограничение по возможности создания UNIX/IPv4/route сокетов
security.jail.enforce_statfs Возможность видеть JAIL'у все подмонтирование устройства
security.jail.list Список запущеных JAIL'ов


Просмотров: 2641


<<< Byte Code Engineering Library