Тюрьма для чертенка Евгений Зобнин ака j1m Хакер, номер #092, стр. 092-106-3 Первая команда укажет демону syslogd не занимать порт 514 для приема журнальных записей с других хостов. Вторая настроит демон inetd на прием запросов только с IP-адреса коневой машины. Любой сервис, работающий на корневой машине, должен быть настроен соответствующим образом. При создании jail'ов также необходимо учитывать их специфику, то есть виртуальную сущность всего jail-окружения. Поэтому придется немного покопаться в недрах каталога /usr/jail/192.168.3.3/etc. Теперь переходим в jail с правами суперпользователя (вход без запуска инициализационных скриптов): # jail /usr/jail/192.168.3.3 jail.j1m.org 192.168.3.3 /bin/sh Команда jail требует указания четырех аргументов: путь, доменное имя, IP-адрес и команда, которая будет выполнена после входа в jail-окружение. Оказавшись внутри jail'а, следует выполнить несколько действий: 1. Создаем пустой файл fstab (touch /etc/fstab), чтобы скрипты инициализации не ругались на его отсутствие. 2. Устанавливаем пароль для суперпользователя (passwd root) и создаем, если необходимо, дополнительных пользователей. 3. Перестраиваем базу почтовых псевдонимов (newaliases), sendmail требует ее наличия. 4. Настраиваем временную зону (tzsetup). 5. Редактируем /etc/resolv.conf таким образом, чтобы сервисы, запущенные внутри jail'а, могли выполнять DNS-резолвинг. Можно указать адрес хост-системы, если она выступает в роли кэширующего DNS-сервера. 6. Добавляем в /etc/rc.conf следующие строки: КОД # vi /etc/rc.conf // Сетевое имя jail'а hostname="jail.j1m.org" // Отключаем конфигурирование сетевых интерфейсов (они виртуальные) network_interfaces="" // Запускаем необходимые сервисы sshd_enable="YES" Теперь можно выйти из jail-окружения, набрав команду exit. Помещаем провинившихся в jail Почти все готово для запуска сервиса (в данном случае ssh) в jail-окружении. Осталось примонтировать виртуальные файловые системы к соответствующим точкам внутри каталога /usr/jail/192.168.3.3, чтобы программы, требующие их наличия, работали без сбоев. Самой востребованной из таких VFS является procfs, хотя и к ней доступ необходим только небольшому числу сетевых демонов. При необходимости подключи fdeskfs и devfs. Но в отношении последней нужно быть очень осторожным, так как ее монтирование может создать серьезную брешь в безопасности хост-системы. Нельзя позволять злоумышленнику манипулировать файлами устройств. Более того, при создании jail'ов нужно всегда опираться на правило «чем проще - тем надежнее» и методом исключения отключать все, что только можно. Разобравшись со всеми тонкостями, запускаем ssh-сервер: # mount -t procfs proc /usr/jail/192.168.3.3/proc # jail /usr/jail/ftp jail.j1m.com 192.168.3.3 /bin/sh /etc/rc В этот раз мы не собирались самолично заходить в jail-окружение и поэтому указали в четвертом аргументе не просто «/bin/sh», а команду, запускающую инициализационные скрипты. Как следствие, на экране должны появиться диагностические сообщения, уведомляющие о том, что демоны (sshd, syslogd и cron) успешно запустились. В этом также можно убедиться, взглянув на вывод команды «ps ax | grep J» (все процессы, запущенные внутри jail'а, получают флаг 'J'). |