Что такое поддерево chroot
Что такое поддерево chroot
Корнем дерева файловой системы Linux является каталог /. Относительно этого каталога определяется путь к любому другому каталогу. При создании поддерева chroot корневой каталог переопределяется; вместо него назначается один из каталогов файловой системы. Принцип создания поддерева chroot показан на рис. 23.1. Если в качестве нового корневого каталога задать, например, каталог /opt/chroot, то путь к любому файлу или каталогу будет определяться не относительно каталога /, а относительно /opt/chroot. В результате, если сервер попадет под контроль взломщика и тот модифицирует файл /etc/passwd, файл /opt/chroot/etc/passwd будет изменен, а системный файл паролей останется в прежнем виде.
Рис. 23.1. Поддерево chroot представляет собой специальное окружение, содержащее лишь те файлы, которые необходимы для работы сервера
Для создания поддерева chroot используется системный вызов chroot(). Функцию chroot() может вызывать либо сам сервер, либо программа chroot, применяемая для запуска сервера. Подробно этот вопрос будет рассмотрен далее в данной главе.
При использовании поддерева chroot должны выполняться следующие условия.
• Если программа использует конфигурационные файлы или библиотеки, а также предоставляет клиенту или принимает от него некоторые файлы, все эти файлы должны размещаться в поддереве 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, остальные серверы могут выполняться за пределами поддерева, создавая тем самым опасность для системы. Более того, если области файловой системы, доступные разным серверам, перекрываются, то не исключено, что один сервер можно будет использовать для изменения конфигурации другого, что создаст дополнительные возможности для незаконного проникновения в систему.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
8.6. Изменение корневого каталога: chroot()
8.6. Изменение корневого каталога: chroot() Текущий рабочий каталог, установленный с помощью chdir() (см. раздел 8.4.1 «Изменение каталога — chdir() и fchdir()»), является атрибутом процесса, таким же, как набор открытых файлов. Он также наследуется новыми процессами.Менее известным
Что это такое
Что это такое Название метода говорит само за себя: его целью являются не позиции в топе, а сам трафик, или поток целевых посетителей. Иначе говоря, не качественный показатель продвижения, а количественный. При запуске SEO — кампании SeoPul прогнозирует посещаемость для
(1.9) Что такое DFS?
(1.9) Что такое DFS? Distributed File System – один из инструментов Active Directory. Он позволяет создавать сетевые ресурсы, в которые могут входить множество файловых систем на различных машинах. Для пользователя Active Directory это абсолютно прозрачно и не имеет никакого значения, где и на каких
Глава 23 Создание поддерева chroot
Глава 23 Создание поддерева chroot Каждый сервер в процессе работы читает файлы с диска компьютера, некоторые серверы также записывают файлы на локальный диск. Получив контроль над таким сервером, взломщик может изменить конфигурацию программ, обеспечивая себе базу для
Формирование среды chroot
Формирование среды chroot Для того чтобы сервер мог работать в рамках поддерева chroot, необходимо в первую очередь сформировать само поддерево. Надо создать требуемые каталоги и скопировать в них системные файлы и файлы сервера. Другими словами, вам следует сформировать в
Настройка сервера для работы в рамках поддерева chroot
Настройка сервера для работы в рамках поддерева chroot Создав поддерево chroot, можно приступать к его использованию. Для этого надо сконфигурировать сервер для работы в рамках поддерева, организовать запуск сервера и обеспечить контроль доступа к поддереву chroot извне.
Запуск сервера в рамках поддерева chroot
Запуск сервера в рамках поддерева chroot Если сервер осуществляет вызов функции chroot(), вероятнее всего, что в его конфигурационном файле содержится одна или несколько опций, предназначенных для управления выполнением в рамках поддерева chroot. Например, для ProFTPd предусмотрена
Управление доступом к каталогам поддерева chroot
Управление доступом к каталогам поддерева chroot Поддерево chroot реализует одностороннюю защиту — программы, выполняющиеся в рамках поддерева, не имеют доступа к ресурсам за его пределами. Поэтому вы можете ограничить доступ и в другом направлении. Для этого надо указать в
Запуск сервера BIND в рамках поддерева chroot
Запуск сервера BIND в рамках поддерева chroot Ранее описывался процесс подготовки сервера к запуску в рамках поддерева chroot. Чтобы лучше понять изложенный выше материал, желательно рассмотреть запуск конкретного сервера в подобном режиме. В качестве примера выберем сервер
Поддержка среды chroot
Поддержка среды chroot Поддерево chroot представляет собой чрезвычайно полезный инструмент, однако требует выполнения определенных действий по поддержке. Ниже перечислены вопросы, которым администратор должен уделять внимание при поддержке поддерева chroot.• Ротация. Во всех
13.8.1. Настройка и запуск DNS-сервера в chroot-окружении
13.8.1. Настройка и запуск DNS-сервера в chroot-окружении Из соображений безопасности рекомендуется запускать все сетевые сервисы в так называемом chroot-окружении (change root). Это файловая система, повторяющая структуру корневой файловой системы, но содержащая только те файлы,
3.1. Что такое I2P?
3.1. Что такое I2P? В главе 2 мы познакомились с распределенной сетью Tor, позволяющей зашифровать и анонимизировать трафик. Здесь будет рассмотрен другой проект анонимизации – I2P (Invisible Internet Project, проект "Невидимый Интернет"). I2P – это так называемая оверлейная сеть, то есть
Что такое XML?
Что такое XML? За последние несколько десятков лет, прошедших с создания первых электронных устройств, в игру с природой человеком была введена третья сторона — вычислительные машины. Человек постепенно доверил им свою память, переложил на них сложные алгоритмические
19.1. Что такое ICQ
19.1. Что такое ICQ ICQ — один из самых популярных сервисов мгновенного обмена сообщениями. Это своего рода Интернет-пейджер. Аббревиатура ICQ означает «I seek you» («Я ищу тебя»), в России эту программу принято называть «аськой».В общих чертах общение в ICQ выглядит так. Вы
Что такое WAP
Что такое WAP Аббревиатура WAP расшифровывается как Wireless Application Protocol – протокол беспроводного доступа. Данный протокол позволяет пользоваться ресурсами Интернета только посредством мобильного телефона, не прибегая к помощи компьютера. По сути, это технический стандарт,