четверг, 4 октября 2007 г.

Быстрое создание jail-машины в FreeBSD

Нам понадобится первый установочный диск FreeBSD 6.2 и немного свободного времени. Предполагается что наша jail-машина будет размещена в директории /var/jail.
Список действий:
1. Создать директорию /var/jail/machine для jail-машины;
2. Смонтировать установочный диск и распаковать базовые файлы в директорию jail-машины:
# mount /cdrom
для bash:
# DESTDIR=/var/jail/machine /cdrom/6.2-RELEASE/base/install.sh
для csh:
# env DESTDIR=/var/jail/machine /cdrom/6.2-RELEASE/base/install.sh
3. Создать пустой файл /var/jail/machine/etc/fstab:
# touch /var/jail/machine/etc/fstab
4. Создать файл /var/jail/machine/etc/rc.conf со следующим содержанием:
# Запускаем sshd
sshd_enable="YES"
sendmail_enable="NONE"
syslogd_flags="-ss"
rpcbind_enable="NO"
network_interfaces=""
5. Теперь требуется создать непривилегированного пользователя и изменить пароль пользователя root.
Входим в каталог jail-машины
# chroot /var/jail/machine /bin/csh
Создаем пользователя
# adduser
Меняем пароль пользователя root
# passwd
# exit
6. В файл /etc/rc.conf основной системы добавить:
# Разрешаем запуск jail-машин
jail_enable="YES"
# Запрещаем им менять свое имя
jail_set_hostname_allow="NO"
# Перечисляем jail-машины в системе.
jail_list="machine"

# Jail-машина "machine"
# Корневая директория
jail_machine_rootdir="/var/jail/machine"
# Имя
jail_machine_hostname="machine.local"
# IP-адрес
jail_machine_ip="192.168.0.10"
# На какой сетевой интерфейс будет цепляться jail-машина
jail_machine_interface="ed0"
# монтируем файловую систему devfs внутри jail-машины.
jail_machine_devfs_enable="YES"
# Скрипты запуска и останова
jail_machine_exec_start="/bin/sh /etc/rc"
jail_machine_exec_stop="/bin/sh /etc/rc.shutdown"
7. Кроме того требуется все запускаемые сервисы основной системы привязать к его ip-адресам (не должны слушаться порты на ip-адресах jail-машин).
Например, в rc.conf:
# Супер-сервер inetd
inetd_enable="YES"
# Слушает порт только на 192.168.0.1
inetd_flags="-wW -a 192.168.0.1"
# Syslogd
syslogd_enable="YES"
# Не слушать порты
syslogd_flags="-ss"
8. Запускаем созданную jail-машину:
# /etc/rc.d/jail start

2 комментария:

Alexey комментирует...

все написанное забываем
ставим из портов jailctl и им создаем все, что надо :)

Alman комментирует...

для csh:
# cd /cdrom/6.2-RELEASE/base/ - !!!
# env DESTDIR=/var/jail/machine /cdrom/6.2-RELEASE/base/install.sh