соответствующий каталог помещаются исполняемые коды сервера имен и конфигурационные файлы. При подготовке сервера к выполнению важно получить информацию о библиотеках, необходимых для его выполнения. Получив сведения о библиотеках с помощью команды следует скопировать соответствующие файлы в каталог поддерева chroot.

# ldd /usr/sbin/named

libc.so.6 => /lib/libc.so.6 (0x40017000)

/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

# cp/lib/libc.so.6 /lib/ld-linux.so.2 /opt/chroot/lib

На этом этапе можно снова проверить функционирование сервера.

# chroot /opt/chroot /usr/sbin/named

# host awl.com localhost

awl.com A 165.193.123.224

Если сервер не работает, убедитесь в том, что в системе выполняется только один экземпляр named, и проверьте, все ли файлы вы скопировали в каталог поддерева chroot. Обеспечив нормальную работу сервера, измените сценарий запуска BIND (в системе Debian это /etc/init.d/bind) так, чтобы сервер запускался посредством команды chroot. Безусловно, вы можете запретить выполнение сценария SysV и запустить сервер имен другим способом. Многие сценарии SysV используют вспомогательные программы (в Debian это start-stop-daemon и ndc). Данные программы могут создавать файлы в каталоге /var/run, поэтому вам надо создать в поддереве chroot нужные каталоги и скопировать файлы программ.

# mkdir -p /opt/chroot/sbin /opt/chroot/var/run

# cp /usr/sbin/ndc /opt/chroot/usr/sbin

# cp /sbin/start-stop-daemon /opt/chroot/sbin

При редактировании сценария запуска SysV перед каждым вхождением start-stop- daemon и ndc надо добавить последовательность символов chroot /opt/chroot. Однако на этом работа не заканчивается, поскольку start-stop-daemon обращается к файловой системе /proc, которая не доступна из поддерева chroot. Чтобы обеспечить доступ к ней, необходимо внести изменения в файл /etc/fstab — скопировать строку, содержащую /proc, и изменить ее на /opt/chroot/proc. Затем вы должны вызвать команду mount -а, чтобы смонтировать /proc в поддереве chroot.

Внимание

Поскольку файловая система /proc предоставляет контроль над компьютером, дублировать ее нежелательно. Лучше отредактировать сценарий запуска SysV так, чтобы он не использовал start-stop-daemon, либо отказаться от сценария SysV и организовать запуск сервера другим способом.

Выполнив все описанные выше действия, вы можете запустить сервер с помощью сценария SysV и проверить его работу.

# /etc/init.d/bind start

# host awl.com localhost

awl.com A 165.193.123.224

Если вы хотите удостовериться в том, что сервер выполняется в среде поддерева chroot, вам надо удалить исполняемый файл сервера из каталога /usr/sbin и конфигурационные файлы из каталога /etc/bind, а потом перезапустить сервер. Если сервер работает, то выполняться он может только в рамках поддерева chroot.

Вместо того чтобы запускать сервер BIND посредством утилиты chroot, вы можете использовать опцию -t программы named, которая разрешает вызов функции chroot () сервером имен. Соответствующая команда имеет следующий вид:

# /usr/sbin/named -t /opt/chroot

Данный подход намного проще описанного выше, так как при этом вам придется копировать в каталоги поддерева chroot гораздо меньше файлов, в частности, вы можете оставить программу named и библиотеки в тех каталогах, в которых они были записаны при инсталляции. Скопировать конфигурационные файлы необходимо, поскольку сервер имен читает их уже после вызова chroot(). При использовании опции -t упрощается подготовка сервера для запуска посредством сценария SysV, так как при нет необходимости дублировать файловую систему /proc.

Детали подготовки сервера к выполнению в рамках поддерева chroot зависят от типа сервера и версии Linux, однако общий ход процедуры остается прежним. Возможно, вам придется немного модифицировать среду поддерева chroot, например, изменить права доступа к каталогам или настроить сервер для запуска от имени пользователя, отличного от root.

Поддержка среды chroot

Поддерево chroot представляет собой чрезвычайно полезный инструмент, однако требует выполнения определенных действий по поддержке. Ниже перечислены вопросы, которым администратор должен уделять внимание при поддержке поддерева chroot.

• Ротация. Во всех версиях Linux реализован механизм ротации файлов протоколов. Если сервер записывает файлы протоколов в каталог поддерева chroot, необходимо настроить средства ротации для работы с файлами, находящимися в этом каталоге. В качестве альтернативного решения при вызове mount можно указать опцию --bind, при этом файл, предназначенный для хранения файлов протоколов, станет доступным из поддерева chroot. Однако такой подход можно применять только в тех системах в которых используется версия ядра не ниже 2.4.x. Если вы не уделите внимания файлам протоколов, они будут неограниченно расти и в конце концов займут все доступное дисковое пространство.

• Обновление программ. При обновлении программного обеспечения дополнительные файлы приходится копировать в каталоги поддерева chroot. Если вы не сделаете этого, на компьютере будет выполняться старый вариант сервера, т.е. в результате установки дополнений ошибки в программе не будут устранены. Необходимо также следить за изменениями в сценариях запуска, иначе может произойти так, что сервер будет выполняться за пределами поддерева chroot.

• Обеспечение доступа к файлам. Если ваш сервер использует файлы с данными, вы должны разместить их в поддереве chroot. Обычно при копировании таких файлов не возникает проблем. Вам необходимо лишь следить за тем, чтобы права доступа к файлам были установлены в соответствии с используемой вами схемой защиты.

• Использование новых программ поддержки. В некоторых случаях может возникнуть необходимость разместить в каталогах поддерева chroot новые программы поддержки. Так, например, если Web-сервер обеспечивает работу сценариев CGI, ему может потребоваться интерпретатор нового языка. Наряду с размещением новых программ поддержки в поддереве chroot необходимо удалять файлы, не используемые сервером. Этим вы устраните неоправданный риск при работе сервера.

Для решения описанных выше вопросов не требуется много времени. Необходимые действия в основном сводятся к однократной установке требуемых значений опций, в остальных случаях приходится обновлять сервер или изменять его конфигурацию.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату