Создание jail клетки с помощью ezjail FreeBSD

| 25.10.2013

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

# cd /usr/ports/sysutils/ezjail
# make install clean

Расположение файлов ezjail по умолчанию:

1. /usr/jails/ каталог размещения шаблонов jail.
2. /usr/jails/flavours/ настройка каждой jail может быть выполнена через flavours. Служит для того чтобы, например, добавить значение по умолчанию в файл /etc/resolv.conf или обновить существующий файл /etc/make.conf
3. /usr/jails/basejail/ базовая система jail, которая монтируется в режиме "read only" и является одинаковой для всех jail, что позволяет сэкономить место на жестком диске.
4. /usr/local/etc/rc.d/ezjail скриптыStop/Start/Restart
5. /usr/local/etc/ezjail.conf конфигурационный файл ezjail, который содержит настройки для rc скрипта. Таже данный файл может быть просмотрен командой ezjail-admin.
6. /usr/local/etc/ezjail/ все файлы конфигурации ваших jail хранятся здесь

Если у вас нет /usr/src и вы никогда не запускали make world, вы можете установить шаблон с ftp сервера, используя утилиту ezjail-admin:

# ezjail-admin install

Для создания jail test.server с адресом 192.168.64.33, располагающейся в каталоге /jails/test.server.ru, выполните следующую команду:

# ezjail-admin create -r /jails/test.server test.server 192.168.64.33

Добавим строку запуска в файл /etc/rc.conf:

# echo 'ezjail_enable="YES"' >> /etc/rc.conf

После чего можем запустить службу:

# /usr/local/etc/rc.d/ezjail start

Для управления конкретным jail можно воспользоваться следующими командами:

# /usr/local/etc/rc.d/ezjail {start/stop/restart} jail-name
# /usr/local/etc/rc.d/ezjail start httpd
# /usr/local/etc/rc.d/ezjail stop test.server.ru

Просмотреть список jail можно командой:

# jls

Или, для получения дополнительной информации, воспользуйтесь синтаксисом:

# jls -v

Для того, чтобы подключиться к jail, воспользуйтесь командой:

# jexec jid csh

При этом jid можно получить из вывода команды jls. В данном примере мы подключаемся к jail test.server с jid # 2:

# jexec 2 csh

После подключения к jail мы можем устанавливать необходимое нам ПО, например bash:

# pkg_add -r -v bash

Или сервер Apache 2.2:

# cd /usr/ports/www/apache22
# make install clean

Для того, чтобы подключаться к jail удаленно, необходимо внести следующие изменения в ее файл/etc/rc.conf:

# echo 'sshd_enable="YES"' >> /etc/rc.conf

Затем откроем файл sshd_config и укажем в нем использовать только IP адрес, назначенный данной jail. После чего запускаем сервер OpenSSH:

# /etc/rc.d/sshd start
# sockstat -4

Обновить FreeBSD Jail можно так:

# /usr/local/etc/rc.d/ezjail stop
# ezjail-admin update -p -i
# /usr/local/etc/rc.d/ezjail start

Для обновления дерева портов используйте команду:

# ezjail-admin update -P

Журнальные файлы jail по умолчанию хранятся в каталоге /var/log. Для того чтобы, к примеру, просмотреть логи jail test_server_ru, воспользуйтесь командой:

# tail -f jail_test_server_console.log
# grep 'error' jail_test_server_console.log

Для добавления httpd jail выполните следующие действия:

# ezjail-admin create -r /jails/httpd.server httpd.server 192.168.1.4
# vi /usr/local/etc/ezjail/httpd_server_ru
# /usr/local/etc/rc.d/ezjail start httpd.server
# jls -v
# jexec id csh

Для резервного копированя jail рекомендую воспользоваться командами tar, rsync и dump.

Напомню, что адреса, используемые jail, должны быть подвешены в основной системе, например, алиасами. Например:

#grep 192.168.1.4 /etc/rc.conf
ifconfig_re0_alias0="192.168.64.33 netmask 255.255.255.0"

Дабы разрешить доступ к сети из джайла, а также ряд иных полезных вещей, следует учесть опцию ядра:

# grep jail /etc/sysctl.conf
security.jail.allow_raw_sockets=1

Добавить пользователя Jail:

# jexec 1 adduser

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

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

3 + 1 =

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: