Archive

Posts Tagged ‘jail’

Установка 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

В 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"

Убедиться, что демоны на хост-машине и в jail не пересекаются по используемым IP-адресам.

Команды для управления jail-ом:

/etc/rc.d/jail start/stop/restart sample
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 могут модифицировать флаги ФС.

FreeBSD ,