Вход/Регистрация
Сетевые средства Linux
вернуться

Смит Родерик В.

Шрифт:

В процессе выполнения сценарий инсталляции спрашивает, следует ли добавить адрес локального сервера имен в файл

/etc/resolv.conf
. На этот вопрос я даю положительный ответ, но для демонстрации работы сервера в рамках поддерева
chroot
это не имеет значения. По окончании установки система Debian запускает сервер имен. Проверить, работает ли сервер, вы можете с помощью следующих двух команд:

# ps aux | grep named

root 7656 0.0 1.5 2184 1492 ? S 13:29 0:00 \

/usr/sbin/named

# host awl.com localhost

awl.com A 165.193.123.224

Вторая команда позволяет убедиться в том, что сервер BIND установлен и работает: она выводит IP-адрес узла

awl.com
, причем для преобразования имени используется сервер на компьютере
localhost
. Имя
awl.com
вы можете заменить любым другим именем узла, расположенного в Internet, а вместо
localhost
можно указать IP-адрес или имя вашего компьютера. Если система сообщит о том, что команда не найдена (command not found), вам надо установить пакет
dnsutils
, содержащий программу
host
. (В других версиях Linux пакет подобного назначения может называться иначе, например
bind-utils
).

Убедившись, что сервер работает, завершите его выполнение с помощью команды

# /etc/init.d/bind stop

Затем вам надо создать поддерево

chroot
и скопировать в него файлы BIND.

# mkdir -p /opt/chroot/usr/sbin /opt/chroot/var/cache/bind

# mkdir /opt/chroot/lib /opt/chroot/etc

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

# cp -rp /etc/bind/ /opt/chroot/etc

На заметку

Данная процедура подготавливает BIND для выполнения с помощью команды

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

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

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
сервером имен. Соответствующая команда имеет следующий вид:

  • Читать дальше
  • 1
  • ...
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: