Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #92, АВГУСТ 2006 г.

Тюрьма для чертенка

Евгений Зобнин ака 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').

Назад на стр. 092-106-2  Содержание  Вперед на стр. 092-106-4