Qjail

Материал из BSD Howto
Версия от 10:34, 13 апреля 2025; Igor (обсуждение | вклад) (Новая страница: «== Установка sysutils/qjail == Qjail - инструмент управления изолированными клетками (jail) в ОС FreeBSD. Утилита qjail используется для быстрого развертывания клеток jail, а так-же использует метод jail(8) для определения клеток и управления их запуском/остановкой. Qjail — это...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Установка sysutils/qjail

Qjail - инструмент управления изолированными клетками (jail) в ОС FreeBSD.

Утилита qjail используется для быстрого развертывания клеток jail, а так-же использует метод jail(8) для определения клеток и управления их запуском/остановкой.

Qjail — это оболочка для базовой системы jail chroot, предназначенная для улучшения безопасности и производительности, а так-же для улучшения удобств пользователя, связанных с развертыванием клеток.

Qjail исключает из /etc/rc.conf все настройки jail. Qjail не требует знаний об использовании команды jail.

Qjail автоматически создаёт среду клеток из файлов основной ОС.

Qjail использует «nullfs» для системных двоичных файлов только для чтения, разделяя одну их копию со всеми клетками.

Qjail назначает IP-адрес с именем сетевого устройства, поэтому псевдонимы автоматически создаются при запуске клеток и автоматически удаляются при их остановке.

Qjail упрощает развертывание клеток до уровня новичка. У Qjail есть полностью документированная страница руководства, написанная максимально просто для понимания.

Подробная информация на сайте http://qjail.sourceforge.net/

Создание отдельной файловой системы для клеток:

# zfs create zroot/usr/jails

Установка из пакета Qjail (предварительная установка менеджера пакетов PKG не требуется, дополнительная информация о котором в статье PKG):

# pkg install qjail
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        qjail: 5.5_1

Number of packages to be installed: 1

78 KiB to be downloaded.

Proceed with this action? [y/N]: y
[1/1] Fetching qjail-5.5_1.pkg: 100%   78 KiB  79.7kB/s    00:01
Checking integrity... done (0 conflicting)
[1/1] Installing qjail-5.5_1...
[1/1] Extracting qjail-5.5_1: 100%
=====
Message from qjail-5.5_1:

--
Use the qjail utility to deploy small or large numbers of jails quickly.

First issue "rehash" command to enable the qjail command (if using csh).
Then issue
"man qjail-intro" To read the qjail introduction.
"man qjail"       For qjail usage details.
"man qjail-drive-traffic For example of driving public traffic to jails.
"man qjail-vnet-howto"   For example of creating vnet jails.
"man qjail-ipv6-testing" For example of testing jails with ipv6 addresses.

Менеджер пакетов предложит установить пакет Qjail. Примерный вывод выполнения команды после согласия на установку представлен выше:

Проверка установки Qjail:

# pkg version -v | grep qjail
qjail-5.5_1                        =   up-to-date with remote

В выводе выполнения команды дана информация о коротком имени пакета "qjail" и его номере текущей установленной версии "5.5_1". А символ "=" сообщает, что установлена актуальная версия пакета.

Установка базы Qjail (будет скачан и распакован файл base.txz, который соответствует текущей версии FreeBSD):

# qjail install
resolving server address: ftp.freebsd.org:80
requesting http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/14.2-RELEASE/base.txz
remote size / mtime: 205880752 / 1732884605
base.txz                                               196 MB 4189 kBps    48s

The RELEASE distribution files are populating template.
Estimated less than 1 minute for this to complete.

sharedfs is being populated.
Estimated less than 1 minute for this to complete.

Successfully installed qjail system.

Примерный вывод выполнения команды представлен выше:

Включение автозапуска Qjail в /etc/rc.conf:

# sysrc qjail_enable="YES"
qjail_enable:  -> YES

Запуск Qjail:

# qjail start

Операции с клетками

Создание отдельной файловой системы для клетки c именем "test" в ZFS:

# zfs create zroot/usr/jails/test

Cоздание клетки c именем "test" и IPv4-адресом "192.168.0.101":

# qjail create -4 192.168.0.101 test

Запуск клетки c именем "test":

# qjail start test

Проверка работы клеток:

# jls
  JID  IP Address      Hostname                      Path
    1  192.168.0.101   test                          /usr/jails/test

Другой способ проверки работы клеток:

# qjail list

STATUS JID  NIC    IP              Jailname
------ ---- ------ --------------- --------------------------------------------
DR     1    re0    192.168.0.101   test

Вход в консоль клетки c именем "test":

# qjail console test

Остановка клетки c именем "test":

# qjail stop test

Удаление клетки c именем "test":

# qjail delete test

Остановка клетки c именем "test":

# qjail stop test

Удаление клетки c именем "test":

# qjail delete test

Ещё немного полезных команд

Обновление окружения клеток (удаление старого окружения клеток и копирование из обновлённой основной ОС):

# qjail stop
# qjail update -b
# qjail start

Обновление дерева портов внутри клеток (удаление содержимого дерева портов внутри клеток и копирование из /usr/ports основной ОС):

# qjail update -P
Copy host's /usr/src routine entered

Removing existing /usr/ports directory from sharedfs.
Estimated less then 1 minute for this to complete.
Sun Mar 30 10:22:57 MSK 2025
Sun Mar 30 10:23:32 MSK 2025

Copying host /usr/ports to sharedfs /usr/ports.
Estimated less then 1 minute for this to complete.
Sun Mar 30 10:23:32 MSK 2025
Sun Mar 30 10:25:09 MSK 2025

Successfully updated your existing qjail system.

Обновление дерева исходных текстов ОС FreeBSD внутри клеток (удаление содержимого исходных текстов ОС внутри клеток и копирование из /usr/src основной ОС):

# qjail update -S
Copy host's /usr/src routine entered

Removing existing /usr/src directory from sharedfs.
Estimated less then 1 minute for this to complete.
Sun Mar 30 16:17:19 MSK 2025
Sun Mar 30 16:17:19 MSK 2025

Copying host /usr/src to sharedfs /usr/src.
Estimated less then 1 minute for this to complete.
Sun Mar 30 16:17:19 MSK 2025
Sun Mar 30 16:18:18 MSK 2025

Successfully updated your existing qjail system.