Чтение онлайн

на главную - закладки

Жанры

Сетевые средства Linux

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

Шрифт:

/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
необходимо удалять файлы, не используемые сервером. Этим вы устраните неоправданный риск при работе сервера.

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

Резюме

Ограничение сферы действия сервера поддеревом

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

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

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Черный дембель. Часть 1

Федин Андрей Анатольевич
1. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 1

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь

Темный Лекарь 5

Токсик Саша
5. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 5

Последний из рода Демидовых

Ветров Борис
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Последний из рода Демидовых

Чиновникъ Особых поручений

Кулаков Алексей Иванович
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чиновникъ Особых поручений

Попаданка в академии драконов 4

Свадьбина Любовь
4. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.47
рейтинг книги
Попаданка в академии драконов 4

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Курсант: Назад в СССР 10

Дамиров Рафаэль
10. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 10

Сделай это со мной снова

Рам Янка
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сделай это со мной снова

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Камень Книга двенадцатая

Минин Станислав
12. Камень
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Камень Книга двенадцатая

Небо для Беса

Рам Янка
3. Самбисты
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Небо для Беса

Надуй щеки! Том 4

Вишневский Сергей Викторович
4. Чеболь за партой
Фантастика:
попаданцы
уся
дорама
5.00
рейтинг книги
Надуй щеки! Том 4