# mkdir /mnt/C/jail/jail1Если еще не производилась сборка мира, то делаем :
# cd /usr/srcПосле сборки системы ее нужно установить в подготовленный каталог :
# make buildworld
# make installworld DESTDIR=/mnt/C/jail/jail1Для некоторых программ необходим доступ к некоторым устройствам (терминал, генератор случайных чисел и т.д.):
# make distribution DESTDIR=/mnt/C/jail/jail1
# mount -t devfs devfs /mnt/C/jail/jail1/devНужно не забыть сделать псевдоним IP-адреса(для каждой клетки свой).Итак, в /etc/rc.conf добавим следующее :
ifconfig_re0_alias0="192.168.1.101 netmask 255.255.255.0"После всех этих процедур пробуем войти в клетку и подготовить ее к использованию :
# jail /mnt/C/jail/jail1/ jail.homecomp.by 192.168.1.101 /bin/cshгде
- /mnt/C/jail/jail1/ - расположение клетки
- jail.homecomp.by - присвоение ей имя хоста
- 192.168.1.101 - присвоение ей IP-адреса
- /bin/csh - выполняемая команда(в данном случае нам нужен доступ к шелу)
jail#Можно немного полазить по ней (cd, ls) и заметить, что мы только что установили FreeBSD в минимальном фарше )).
Дальше желательно создать /etc/fstab, т.к. некоторые программы будут расстроены, не найдя его(команда выполняется уже в клетке).
jail# touch /etc/fstabА в /etc/rc.conf клетки напишем следующее:
network_interfaces=""Понятно, доступ к клетке будем получать по сети. А вот сетевой интерфейс настроить мы не сможем, но сценарии загрузки будут спокойны)).
sshd_enable="YES"
Еще нужно установить пароль root'у :
jail# passwdТакже лучше добавить необходимых юзеров:
Changing local password for root
New Password:
Retype New Password:
jail# adduserС помощью tzsetup настраиваем часовой пояс, а с помощью date смотрим на результат
Username: erema15
Full name: Vasya Pupkin
Uid (Leave empty for default):
Login group [erema15]:
Login group is erema15. Invite erema15 into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: csh
Home directory [/home/erema15]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: ******
Enter password again: ******
Lock out the account after creation? [no]:
Username : erema15
Password : *****
Full Name : Vasya Pupkin
Uid : 1001
Class :
Groups : erema15 wheel
Home : /home/erema15
Home Mode :
Shell : /bin/csh
Locked : no
OK? (yes/no): y
adduser: INFO: Successfully added (erema15) to the user database.
Add another user? (yes/no): n
Goodbye!
Все! Вроде клетка готова. Теперь в /etc/rc.conf хоста запишем:
jail_enable="YES"Тут какбе все понятно должно быть, только останется перенести правила [devfsrules_jail] из /etc/defaults/devfs.rules в /etc/devfs.rules ... или написать свои )))
jail_list="jail1"
jail_jail1_rootdir="/mnt/C/jail/jail1"
jail_jail1_hostname="jail.erema15.by"
jail_jail1_ip="192.168.1.101" #привязываем клетку к IP-адресу (необходимо добавить соответствующий алиас к сетевой карте
jail_jail1_devfs_enable="YES" #дает доступ к devfs
jail_jail1_devfs_ruleset="devfsrules_jail" #применяет правила, обеспечивая доступ только к определенным устройствам
У меня были вот такие:
[devfsrules_jail=4]Запуск и останов клеток делается так:
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
# /etc/rc.d/jail start - запуск всех клеток
# /etc/rc.d/jail start jail1 - запуск только jail1
# /etc/rc.d/jail stop - останов всех клеток
# /etc/rc.d/jail stop jail1 - останов только jail1
Еще пару слов о некоторых инструментах управления клетками. Существуют утилиты jls и jexec. Первая выводит список всех клеток, запущенных в системе, вторая - позволяет админу хоста выполнить команду в любой запущеной уже клетке, без входа в нее.
# jls
JID IP Address Hostname Path
1 10.1.1.1 erema15 /usr/jails/portjail
2 192.168.1.101 jail.erema15.by /mnt/C/jail/jail1
# jexec 2 uname -prns
FreeBSD jail.erema15.by 8.1-RELEASE i386
Комментариев нет:
Отправить комментарий