Я хотел бы получить окончательный ответ о том, почему эту практику следует применять в отношении сервисов, которые открыты для потенциально враждебных сетей (например, Интернета). Насколько я понимаю, существует метод выхода из chroot jail, поэтому, если эта мера безопасности не имеет реальной ценности, то почему некоторые установки все еще преследуют ее?
Никогда не следует рассматривать chroot как полноценную функцию безопасности. Хотя это усложняет атаку, если вам удастся получить некоторый контроль внутри chroot, вырваться из него довольно легко. Есть метод перехода к родительскому каталогу (..) Подробнее Вот. Причина того, что chroot дает некоторое преимущество в безопасности, заключается в том, что многих приложений, которые хакер может ожидать от них, просто не будет. Если бы у меня был выбор между chrooted или не chrooted, я бы выбрал chrooted вариант.
Лучшим подходом было бы что-то вроде тюрьмы BSD, зон Solaris или какой-нибудь технологии виртуализации, такой как KVM или Xen. Эти подходы используют ту же идею сопоставления, что и chroot, и делают их сильнее. Вы также можете посмотреть что-то вроде SELinux, но это немного сложнее и, следовательно, подвержено ошибкам.
Насколько я понимаю, есть способ вырваться из chroot jail (...), тогда почему некоторые установки все еще его преследуют?
То же самое можно сказать и о паролях. Дело в том, что довольно часто обеспечение некоторых ресурсов означает создание множества препятствий на пути злоумышленника, чтобы заставить его сдаться, прежде чем он достигнет цели. Вы не можете полагаться на единственный метод защиты данного ресурса. Кроме того, chrooting дает вам больше контроля над запущенным приложением. Вы можете ограничить ресурсы файловой системы, к которым это приложение имеет доступ.
Да, это так.
Если, однако, вы получаете уязвимую ошибку ядра (или просто корневую дыру, если не grsec или тюрьмы BSD) внутри chroot, тогда вся система находится во владении. Не так, если вы запускаете настоящий виртуализатор (такой как VMWare, но НЕ тюрьмы BSD. Они не помогают, поскольку используют одно и то же ядро для всех «систем»).
Так что да, он добавляет уровень безопасности, если используется правильно.
Итак, если эта мера безопасности не имеет реальной ценности, то почему некоторые установки все еще ее используют?
Возможно, вы не получите особой защиты, но в некоторых случаях вы упростите систему для пользователя. Если они не будут отвлекаться на все остальное, что им не нужно видеть, они могут найти систему более простой в использовании.
Я считаю, что chroots слишком сложный процесс, и мне никогда не удавалось установить его. Кто-то может возразить, что, если бы я мог это сделать, я бы заинтересовался этим, но до сих пор нет.
Я думаю, что изоляция ваших сервисов в виртуальных машинах (на Xen, конечно, но VMWare тоже будет работать, если вы настаиваете :-P) - это гораздо лучшая идея, учитывая вычислительную мощность, доступную в наши дни. Виртуальные машины также имеют огромное преимущество в том, что их очень легко выполнять резервное копирование / миграцию, чего нет в chroot. У вас также есть комплексный интерфейс для управления виртуальными машинами, которого у вас определенно нет для chroot.
Не запускайте chroots, если вы можете запускать jails / zone / openvz практически с такими же усилиями и накладными расходами и иметь гораздо более стандартную, более изолированную среду.
Chroots раньше были хорошей идеей для пользовательских сервисов без полномочий root, когда ничего лучше не было, но сейчас они устарели.
Chroot добавляет много преимуществ безопасности, и вы можете сломать его, только если вы root. Таким образом, вы поднимаете планку того, что нужно делать злоумышленнику.
Кроме того, chroot обеспечивает изоляцию приложений, а виртуализация обеспечивает разделение операционных систем. Таким образом, вы можете запустить, например, apache внутри chroot на виртуальной машине.