====== Технология jail ======
* [[http://ru.wikipedia.org/wiki/FreeBSD_Jail|FreeBSD Jail]]
* [[http://www.freebsd.org/doc/handbook/jails-build.html|Creating and Controlling Jails]]
* [[http://www.unixfaq.ru/index.pl?req=qs&id=1002|Управление переменными ядра в Jail]]
===== Создание копии системы =====
==== С использованием дистрибутива ====
# mount_cd9660 /dev/cd0 /mnt
# setenv D /var/jail/www
# mkdir -p $D
# tar -xvf /mnt/usr/freebsd-dist/base.txz -C $D
==== С использованием компиляции и установки "мира" системы ====
=== Подготовка исходных текстов ===
* [[Обновление системы и базового ПО в FreeBSD#Установка исходных текстов]]
* [[Обновление системы и базового ПО в FreeBSD#Установка заплаток внутри релиза]]
=== Сборка "мира" (несколько часов) ===
[server:~] # cd /usr/src
[server:~] # make buildworld
=== Установка копии "мира" (5-7 минут) ===
[server:~] # cd /usr/src
[server:~] # setenv D /var/jail/www
[server:~] # mkdir -p $D
[server:~] # make installworld DESTDIR=$D
[server:~] # make distribution DESTDIR=$D
===== Совместное использование дерева портов =====
[server:~] # mount_nullfs /usr/ports/ /var/jail/www/usr/ports
===== Запуск jail =====
==== FreeBSD10.X ====
* [[http://therub.org/2014/08/11/convert-freebsd-jails-from-rc.conf-to-jail.conf/|Convert FreeBSD 10 Jails from rc.conf to jail.conf]]
[server:~] # cat /etc/rc.conf
...
jail_enable="YES"
jail_list="www"
[server:~] # cat /etc/jail.conf
allow.raw_sockets = 1;
exec.clean;
exec.system_user = "root";
exec.jail_user = "root";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
mount.devfs;
allow.set_hostname = 0;
allow.sysvipc = 0;
www {
host.hostname = "www.corpX.un";
path = "/var/jail/www";
interface = "em0";
ip4.addr = "192.168.X.20";
exec.consolelog = "/var/log/jail_www_console.log";
}
[server:~] # service jail start www
===== Просмотр и подключение к jail =====
[server:~] # jls
[server:~] # jexec N csh
www# sysctl security.jail.jailed
===== Настройка jail =====
www# hostname
www# cat /etc/rc.conf
sshd_enable=yes
www# cat /etc/resolv.conf
domain corpX.un
nameserver 172.16.1.254
www# cat /etc/hosts
127.0.0.1 localhost localhost.corpX.un
192.168.X.20 www.corpX.un www
172.16.1.249 rep