Установка и настройка Jail в FreeBsd 12

Print Friendly, PDF & Email

Задача:

Установить и настроить jail в FreeBSD 12, для последующей установки в jail веб-сервера

---------------------------------------------------------------

Настроим систему для работы jail. Добавляем jail и rctl в автоматический запуск при загрузке системы.
С версии FreeBSD 9.0 появился механизм управления ресурсами RCTL (Hierarchical Resource Limits). Он позволяет ограничивать ресурсы, как отдельным пользователям и процессам, так и целиков всему jail.

sysrc jail_enable="YES"
sysrc rctl_enable="YES"
sysrc rctl_rules="/etc/rctl.conf"

В FreeBSD по умолчанию ядро собрано с отключённой возможность ограничивать ресурсы, что можно проверить, выполнив соответствующую команду:

Чтобы устранить данное ограничение, достаточно:

echo 'kern.racct.enable="1"' >> /boot/loader.conf

Активируем возможность использовать файловую систему ZFS (Jail мы будем сохранять на разделах ZFS)

sysrc zfs_enable="YES"
sysrc ifconfig_em0_alias="192.168.17.110/24"

Запустим ZFS

/etc/rc.d/zfs start

Изменения , касающиеся kern, вступят в силу только после перезагрузки системы, что мы и делаем:

reboot

Создадим папку для jail

mkdir -p /mnt/da1p1/jail/nextcloud

Редактируем конфигурационный файл jail:

ee /etc/jail.conf

Содержимое конфига

allow.raw_sockets = 1;
    exec.clean;
    exec.start = "/bin/sh /etc/rc";
    exec.stop = "/bin/sh /etc/rc.shutdown";
    mount.devfs;
    allow.set_hostname = 1;
    allow.sysvipc = 1;
    jail1 {
        host.hostname = "nextcloud";
        path = "/mnt/da1p1/jail/nextcloud/";
        interface = "em0";
        ip4.addr = 192.168.17.110;
    }

Для создания окружения перейдите в каталог /usr/src, командой:

cd /usr/src

Для создания окружения введите команду:

root@cloud:/usr/src # make -j4 world DESTDIR=/mnt/da1p1/jail/nextcloud
make: make: don't know how to make world. Stop

make: stopped in /usr/src
root@cloud:/usr/src #

Если у вас аналогичная ошибка, скорее всего ваша папка src пуста. Исправляем:

cd /
fetch ftp://ftp4.de.freebsd.org/pub/FreeBSD/releases/amd64/12.0-RELEASE/src.txz
tar xvfz src.txz
rm /src.txz

Повторяем попытку

cd /usr/src
make -j4 world DESTDIR=/mnt/da1p1/jail/nextcloud/

Ждать придётся долго, при создании окружения использую параметр -j4 – это колличество ядер у процессора. 

Добавить файлы конфигураций в jail командой:

make distribution DESTDIR=/jails/1

C созданием окружения всё, запускаем:

/etc/rc.d/jail start

Чтобы подключиться к jail, выполним соответствующую команду (где jail1 это название машину указанное в конфиге выше):

jexec jail1

Далее необходимо добавить DNS сервера:

echo  "nameserver 192.168.17.111" >> /etc/resolv.conf 

Проверяем сеть

Воспользовавшись двумя командами, запускаем SSHD

sysrc sshd_enable="YES"
service sshd start

добавляем нового пользователя:

pw useradd cloud -G wheel && passwd cloud

Теперь можно подключаться к сервера по SSH , используя пользователя cloud. Ну и напоследок, осталось сделать ограничения для jail. Для того необходимо отредактировать файл конфигурации:

ee /etc/rctl.conf

Добавим следующие строки:

jail:jail1:pcpu:deny=50
jail:jail1:vmemoryuse:deny=251658240
jail:jail1:memoryuse:deny=1073741824

в первой строке мы ограничиваем использование каждого ядра на 50 процентов. Второй строкой ограничиваем количество виртуальной памяти. Третьей строкой ограничиваем использование памяти в 1 гигабайт.

Перезапустим сервис rctl

service rctl restart

На этом всё

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *