Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Продолжим – у нас осталось ещё одно серьёзное дело: нужно обеспечить автоматический запуск jail при загрузке. Для этого в /etc/rc.conf основной системы добавим следующие строки:
jail_enable="YES"
jail_list="system"
jail_system_rootdir="/var/jails/system"
jail_system_hostname="jail.host"
jail_system_ip="10.30.0.100"
jail_system_interface="lo0"
jail_system_devfs_enable="YES"
jail_system_exec_start="/bin/sh /etc/rc"
jail_system_exec_stop="/bin/sh /etc/rc.shutdown"
В параметре jail_list перечисляются все jail-системы, которые должны запускаться автоматически (у нас пока такая система одна). В дальнейшем по схеме «jail_<имя из списка>_<параметр>» задаются параметры для каждой «тюрьмы» из списка. Обязательно должны быть указаны путь, имя хоста, IP-адрес и выполняемая команда. Параметр interface задавать не обязательно, но без него сценарий /etc/rc.d/jail выдаёт ошибки о неправильном синтаксисе для ifconfig, хотя на работе это никак не отражается.
Также желательно задать автомонтирование файловой системы devfs, чтобы не модифицировать /etc/fstab. Ну и последние две строки в данном случае необязательны, поскольку повторяют значения по умолчанию – это команды, которые должны быть выполнены при старте и останове jail-системы.
Теперь можно запустить jail командой /etc/rc.d/jail start (нужно предупредить, что при разрешённом sshd первый запуск займёт довольно ощутимое время – в jail будут генерироваться необходимые для работы ключи) и попробовать подключиться к ней по ssh:
$ ssh -l admin 10.30.0.100
Здесь admin – имя пользователя, которого мы создали в jail. Войдя в «тюрьму», обратите внимание на то, как ограничены ваши права – команды ps, top и т. д. будут выдавать информацию только о процессах, исполняющихся в данной «тюрьме», ifconfig разрешает только просмотр, traceroute и ping не работают вообще, ссылаясь на «socket: Operation not permitted».
Для полноценной работы в jail ещё понадобится коллекция портов, но её можно просто скопировать из основной системы. Есть и более экономичный вариант, позволяющий «разделять» один каталог между основной системой и «тюрьмами» (его мы рассмотрим в следующем примере), но здесь копия позволит пользователю, работающему в jail, делать с этим каталогом что угодно без опасений, что это отразится на основной системе.