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

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

Жанры

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

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

Шрифт:

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

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

• Сервер может обращаться только к тем файлам, которые находятся в поддереве

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

• Если в поддереве

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

• Поскольку поддерево

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

Несмотря на то что использование поддерева

chroot
позволяет существенно снизить опасность для компьютера, на котором выполняются серверы, данный подход имеет свои недостатки и ограничения. Одно из ограничений состоит в том, что не все серверы могут выполняться в рамках поддерева
chroot
. Для одних серверов подобный режим работы является вполне естественным (в качестве примера можно привести сервер FTP). Другим серверам, например Telnet, требуется более или менее полный доступ к файловой системе Linux. Таким образом, некоторые серверы неизбежно придется запускать за пределами поддерева
chroot
.

Поддерево

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

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

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

Поддерево

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

И наконец, если вы запустили один сервер в рамках поддерева

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

Формирование среды

chroot

Для того чтобы сервер мог работать в рамках поддерева

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

На заметку

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

chroot
. Более подробно конфигурация серверов для работы в пределах поддерева будет рассмотрена в следующем разделе. Там же будет приведен пример подготовки сервера BIND для выполнения в рамках поддерева
chroot
.

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

Для создания поддерева

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

В поддереве

chroot
надо создать некоторые из каталогов и подкаталогов, присутствующие в обычной файловой системе. Вероятнее всего, вам потребуется лишь ограниченное количество подкаталогов Linux. Чаще всего для выполнения сервера в поддереве
chroot
приходится создавать каталоги
/bin
,
/sbin
,
/usr
,
/lib
,
/etc
и
/var
. В эти каталоги не следует копировать файлы, присутствующие в соответствующих каталогах файловой системы Linux; нельзя забывать, что поддерево
chroot
создается именно для того, чтобы ограничить набор инструментов, доступных серверу.

Если в пределах поддерева

chroot
должно выполняться несколько серверов, надо для каждого из них создать отдельное поддерево. Например, если в таком режиме предполагается запустить серверы FTP и
sendmail
, вы можете использовать в качестве корневых каталогов поддеревьев каталоги
/opt/chroot/ftp
и
/opt/chroot/sendmail
.

Копирование файлов сервера

Сформировав поддерево

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

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

Солдат Империи

Земляной Андрей Борисович
1. Страж
Фантастика:
попаданцы
альтернативная история
6.71
рейтинг книги
Солдат Империи

Иисус неизвестный

Мережковский Дмитрий Сергеевич
Научно-образовательная:
философия
4.00
рейтинг книги
Иисус неизвестный

Воронцов. Перезагрузка. Книга 3

Тарасов Ник
3. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
6.00
рейтинг книги
Воронцов. Перезагрузка. Книга 3

Собрание сочинений в 15 томах. Том 7

Уэллс Герберт Джордж
Фантастика:
научная фантастика
5.00
рейтинг книги
Собрание сочинений в 15 томах. Том 7

Я до сих пор не царь. Книга XXVII

Дрейк Сириус
27. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор не царь. Книга XXVII

Двенадцать стульев

Петров Евгений Петрович
Проза:
афоризмы
5.00
рейтинг книги
Двенадцать стульев

Бастард Императора. Том 4

Орлов Андрей Юрьевич
4. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 4

Кол

Лаймон Ричард Карл
Фантастика:
ужасы и мистика
6.25
рейтинг книги
Кол

Возлюби болезнь свою

Синельников Валерий Владимирович
Научно-образовательная:
психология
7.71
рейтинг книги
Возлюби болезнь свою

Газлайтер. Том 18

Володин Григорий Григорьевич
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 18

Наномашины, наследник! Том 9

Новиков Николай Васильевич
9. Первый среди карапузов
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наномашины, наследник! Том 9

Обманы Локки Ламоры

Линч Скотт
1. Благородные Подонки
Фантастика:
фэнтези
8.36
рейтинг книги
Обманы Локки Ламоры

Долг

Кораблев Родион
7. Другая сторона
Фантастика:
боевая фантастика
5.56
рейтинг книги
Долг

Русский рок. Малая энциклопедия

Коллектив авторов
Справочная литература:
энциклопедии
7.00
рейтинг книги
Русский рок. Малая энциклопедия