Qjail: различия между версиями
Igor (обсуждение | вклад) |
Igor (обсуждение | вклад) |
||
| Строка 161: | Строка 161: | ||
Jail successfully started test | Jail successfully started test | ||
Обновление дерева портов внутри клеток | == Обновление дерева портов внутри клеток == | ||
Удаление содержимого дерева портов внутри клеток и копирование из /usr/ports основной ОС): | |||
# qjail update -P | # qjail update -P | ||
Copy host's /usr/src routine entered | Copy host's /usr/src routine entered | ||
| Строка 177: | Строка 179: | ||
Successfully updated your existing qjail system. | Successfully updated your existing qjail system. | ||
Обновление дерева | == Обновление дерева сходных текстов ОС FreeBSD внутри клеток == | ||
Удаление содержимого исходных текстов ОС внутри клеток и копирование из /usr/src основной ОС): | |||
# qjail update -S | # qjail update -S | ||
Copy host's /usr/src routine entered | Copy host's /usr/src routine entered | ||
Версия от 22:38, 6 июля 2025
Установка 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
Ещё немного полезных команд
Обновление бинарного окружения клеток (остановка клеток, удаление старого бинарного окружения клеток и копирование из обновлённой основной ОС, старт клеток).
# qjail stop Jail successfully stopped test
# qjail update -b Deletion of sharedfs binaries successful for bin. Deletion of sharedfs binaries successful for lib. Deletion of sharedfs binaries successful for libexec. Deletion of sharedfs binaries successful for sbin. Deletion of sharedfs binaries successful for usr/bin. Deletion of sharedfs binaries successful for usr/include. Deletion of sharedfs binaries successful for usr/lib. Deletion of sharedfs binaries successful for usr/libdata. Deletion of sharedfs binaries successful for usr/libexec. Deletion of sharedfs binaries successful for usr/sbin. Deletion of sharedfs binaries successful for usr/share. Deletion of sharedfs binaries successful for usr/lib32. Copied host's binaries to sharedfs successfully for bin. Copied host's binaries to sharedfs successfully for lib. Copied host's binaries to sharedfs successfully for libexec. Copied host's binaries to sharedfs successfully for sbin. Copied host's binaries to sharedfs successfully for usr/bin. Copied host's binaries to sharedfs successfully for usr/include. Copied host's binaries to sharedfs successfully for usr/lib. Copied host's binaries to sharedfs successfully for usr/libdata. Copied host's binaries to sharedfs successfully for usr/libexec. Copied host's binaries to sharedfs successfully for usr/sbin. Copied host's binaries to sharedfs successfully for usr/share. Copied host's binaries to sharedfs successfully for usr/lib32. Host to sharedfs binaries update completed successfully. Successfully updated your existing qjail system.
# qjail start Jail successfully started test
Обновление дерева портов внутри клеток
Удаление содержимого дерева портов внутри клеток и копирование из /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.