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

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

Жанры

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

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

Шрифт:

Если сервер не вызывает самостоятельно функцию

chroot
, его следует запускать посредством утилиты
chroot
. При этом в каталоги поддерева
chroot
необходимо скопировать исполняемые и конфигурационные файлы сервера, а также все файлы, необходимые серверу в процессе работы. Кроме того, иногда приходится помещать в каталоги поддерева
chroot
некоторые системные файлы. Определить набор файлов, необходимых серверу, достаточно сложно. Для того чтобы выяснить, какие файлы требуются в процессе работы, надо прочитать документацию, а если нужные сведения там отсутствуют, вам придется проанализировать содержимое дистрибутивного пакета. Для получения информации о файлах, содержащихся в
пакете, можно использовать инструменты
tar
,
rpm
или
dpkg
. Очевидно, что копировать в каталоги поддерева
chroot
надо не все файлы; например, для работы сервера не нужна документация. Чтобы выяснить, какие файлы необходимы серверу, можно использовать программу
strace
. Вызвав команду
strace имя_серверной_программы
, вы получите сведения о файлах, используемых в процессе работы сервера, в том числе имена файлов, которые сервер открывает самостоятельно.

На заметку

Вместо копирования файлы можно переместить в каталоги поддерева

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

Копирование системных файлов

После того как вы разместите в пределах поддерева

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

• Библиотеки. Во время работы многие серверы используют динамические библиотеки. Обычно они хранятся в каталоге

/lib
или
/usr/lib
. Выяснить, какие библиотеки нужны конкретному серверу, позволяет программа
ldd
. Например, чтобы определить, какие библиотеки использует сервер имен, надо выполнить команду
ldd /usr/sbin/named
. Файлы библиотек надо поместить в каталог поддерева
chroot
.

• Программы поддержки. Для работы некоторых серверов нужны дополнительные программы. Например, если Web-сервер поддерживает CGI-сценарии, ему могут понадобиться интерпретатор Perl (

/usr/bin/perl
) и файлы, обеспечивающие работу этого интерпретатора. Исполняемый файл Perl и дополнительные файлы надо скопировать в соответствующий каталог поддерева
chroot
. Кроме того, программы, необходимые для работы сервера, могут, в свою очередь, использовать файлы библиотек. В некоторых случаях объем данных, применяемых для поддержки языков сценариев, намного превышает объем Web-сервера.

• Файлы устройств. Ряд серверов непосредственно обращается к файлам устройств. Например, сервер резервного копирования взаимодействует с накопителем на магнитных лентах, а некоторым библиотекам и программам нужны специальные файлы устройств, такие как

/dev/zero
или
/dev/null
. Обычно файлы устройств располагаются в каталоге
/dev
. Копировать файлы из этого каталога бессмысленно, вместо этого надо повторно создать их в поддереве с помощью
mknod
. Соответствующая команда может выглядеть следующим образом:
mknod /opt/chroot/dev/st0 с 9 0
. Файлы устройств предоставляют доступ к ресурсам компьютера, поэтому создавать их в поддереве
chroot
следует только в том случае, когда они действительно необходимы.

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

/proc
. Подобные каталоги нельзя непосредственно копировать. Вместо этого надо создать дополнительную запись в файле
/etc/fstab
и смонтировать файловую систему в пределах поддерева
chroot
. Исходную систему
/proc
нельзя удалять, ее надо дублировать. Необходимо помнить, что при наличии доступа сервера к
/proc
взломщику автоматически предоставляются дополнительные возможности для контроля над системой.

• Базы данных с информацией о пользователях. Во время работы ряд серверов обращается к

/etc/passwd
,
/etc/group
,
/etc/shadow
и другим файлам, содержащим информацию о пользователях. Серверам, которые используют Pluggable Authentication Module, необходима инфраструктура РАМ, в частности, файл
/etc/pam.conf
, содержимое
/etc/pam.d
и
/etc/security
, а также библиотеки в файлах
/lib
и
/lib/security
(в именах файлов библиотек содержатся символы
pam
). Для того чтобы выяснить, какие файлы необходимо скопировать в каталоги поддерева
chroot
, надо проанализировать содержимое пакета РАМ.

• Файлы протоколов. Если сервер создает во время работы файлы протоколов, вам необходимо подготовить каталоги для их размещения. Некоторые серверы используют при создании файлов протоколов демон

syslogd
, в этом случае вам надо скопировать данную программу в поддерево
chroot
. Многие серверы можно сконфигурировать так, чтобы протоколирование выполнялось без использования
syslogd
.

Для серверов, самостоятельно вызывающих функцию

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

На заметку

Чтобы не создавать угрозу безопасности системы, помещайте в каталоги поддерева

chroot
лишь минимальный набор файлов. Копировать файл следует только в том случае, если вы твердо знаете, что этот файл используется в работе сервера. Что же касается остальных файлов, выяснить, необходимы ли они, можно, запустив сервер на выполнение (если в сервере предусмотрен режим отладки, желательно включить его). Если серверу недостает какого-либо файла, он сообщит об этом.

Настройка сервера для работы в рамках поддерева

chroot

Создав поддерево

chroot
, можно приступать к его использованию. Для этого надо сконфигурировать сервер для работы в рамках поддерева, организовать запуск сервера и обеспечить контроль доступа к поддереву
chroot
извне. Решение этих задач рассматривается в данном разделе. Здесь же будет приведен пример запуска сервера имен в пределах поддерева
chroot
.

Запуск сервера в рамках поддерева

chroot

Если сервер осуществляет вызов функции

chroot
, вероятнее всего, что в его конфигурационном файле содержится одна или несколько опций, предназначенных для управления выполнением в рамках поддерева
chroot
. Например, для ProFTPd предусмотрена директива
<Anonymous>
, которая задает имя каталога, используемого в качестве корневого каталога поддерева
chroot
. Чтобы обеспечить выполнение сервера с использованием поддерева
chroot
, необходимо выяснить, какие опции управляют данным режимом работы, и правильно установить их значения.

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

Вкус ледяного поцелуя

Полякова Татьяна Викторовна
2. Ольга Рязанцева
Детективы:
криминальные детективы
9.08
рейтинг книги
Вкус ледяного поцелуя

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Прометей: владыка моря

Рави Ивар
5. Прометей
Фантастика:
фэнтези
5.97
рейтинг книги
Прометей: владыка моря

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

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

(Не)зачёт, Дарья Сергеевна!

Рам Янка
8. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
(Не)зачёт, Дарья Сергеевна!

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Дракон с подарком

Суббота Светлана
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Дракон с подарком

Отвергнутая невеста генерала драконов

Лунёва Мария
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Отвергнутая невеста генерала драконов

Случайная жена для лорда Дракона

Волконская Оксана
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Случайная жена для лорда Дракона

Тройняшки не по плану. Идеальный генофонд

Лесневская Вероника
Роковые подмены
Любовные романы:
современные любовные романы
6.80
рейтинг книги
Тройняшки не по плану. Идеальный генофонд

Идеальный мир для Лекаря 28

Сапфир Олег
28. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 28

Лейтенант космического флота

Борчанинов Геннадий
1. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Лейтенант космического флота

Гарем на шагоходе. Том 5

Гремлинов Гриша
5. Волк и его волчицы
Фантастика:
боевая фантастика
фэнтези
5.00
рейтинг книги
Гарем на шагоходе. Том 5

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III