Установка jail во FreeBSD
July 20th, 2009
Сначала скачиваем исходники системы.
Внимание на тэг обновления! Он обязательно должен совпадать с веткой установленной системы. Например, для системы FreeBSD 7.2-RELEASE-p2 тэг должен быть tag=RELENG_7_2.
cd /usr/share/examples/cvsup
Правим хост в standard-supfile на *default host=cvsup5.FreeBSD.org и запускаем:
csup ./standard-supfile
Затем:
mkdir /home/jail_sample
setenv D /home/jail_sample
mkdir -p $D
cd /usr/src
make buildworld
make installworld DESTDIR=$D
cd etc/ [1]
make distribution DESTDIR=$D
mount -t devfs devfs $D/dev
setenv D /home/jail_sample
mkdir -p $D
cd /usr/src
make buildworld
make installworld DESTDIR=$D
cd etc/ [1]
make distribution DESTDIR=$D
mount -t devfs devfs $D/dev
В rc.conf :
ifconfig_bge0="inet 1.2.3.1 netmask 255.255.255.0"
ifconfig_bge0_alias0="inet 1.2.3.2 netmask 255.255.255.255"
jail_enable="YES"
jail_list="sample"
jail_sample_rootdir="/home/jail_sample"
jail_sample_hostname="www.sample.com"
jail_sample_ip="1.2.3.2"
jail_sample_devfs_enable="YES"
jail_sample_sysvips_allow="YES"
ifconfig_bge0_alias0="inet 1.2.3.2 netmask 255.255.255.255"
jail_enable="YES"
jail_list="sample"
jail_sample_rootdir="/home/jail_sample"
jail_sample_hostname="www.sample.com"
jail_sample_ip="1.2.3.2"
jail_sample_devfs_enable="YES"
jail_sample_sysvips_allow="YES"
Убедиться, что демоны на хост-машине и в jail не пересекаются по используемым IP-адресам.
Команды для управления jail-ом:
/etc/rc.d/jail start/stop/restart sample
jls # список запущенных jail
jexec 2 tcsh # запустить шелл внутри jail с ID=2
jls # список запущенных jail
jexec 2 tcsh # запустить шелл внутри jail с ID=2
Возможно, потребуется поправить некоторые sysctl на хост-машине:
- security.jail.set_hostname_allowed – если 1, то внутри jail можно поменять имя хоста;
- security.jail.socket_unixiproute_only – если 1 , то сокет в jail можно создать только для доменов PF_LOCAL, PF_INET или PF_ROUTE, иначе, возвращается ошибка;
- security.jail.sysvipc_allowed – если 1, то то в jail можно получить доступ к глобальному System V IPC;
- security.jail.getfsstatroot_only – если 1, то в jail можно получить информацию (df)только о той файловой системе на которой создан jail;
- security.jail.allow_raw_sockets – если 1, то в jail можно создавать raw sockets;
- security.jail.chflags_allow – если 1, то процессы в jail могут модифицировать флаги ФС.

ну кто ж пользуется cvsup? ну что за бред!!! уже много лет в базовой системе идет csup написанный на C!!!!!!!!! Ну просто детский сад! Поправьте статью, а то стыдно такое писать в общий доступ!
Спасибо за замечание. Поправил. Просто как то по привычке использовал cvsup
извините что так резко написал.
по-моему csup идет еще с версии FreeBSD 5.
Вы напишите, что если фря старее, то ставьте cvsup.
Вроде бы с шестерки. Но в любом случае уже очень давно.
ну кто ж пользуется cvsup?
Очень да же пользуемся
Дело привычки у любой проге есть и плюс и минус
Зачем на чела сразу бочки катить/
Описано коротко и ясно, по вашей статье все получилось, а то кругом копипаст, а у лисяры как-то путанно расписано. вынес веб-сервер на клетку, что бы безопаснее было.
Жаль jail не позволяет нормально ограничивать ресурсы..