Я играл с CentOS box уже пару лет. Так что терминал мне нравится. Тем не менее, я читал много сообщений в блогах, в которых утверждалось, что chroot небезопасен, и количество этих сообщений пугает. Так ли это на самом деле? Зачем?
Я использую chroot для блокировки пользователей, использующих только SFTP, в определенном контексте, без какой-либо оболочки или команд вообще. Так в чем же проблема безопасности?
Вопрос удален из Переполнение стека.
Потому что в большинстве случаев корневой процесс может легко выйти из chroot. Это сделано намеренно, поскольку chroot никогда не задумывался как устройство безопасности.
Алан Кокс несколько классно обругал разработчика который представил патч ядра, чтобы «исправить» это поведение, утверждая, что chroot использовался как средство безопасности, но никогда не предназначался для этого.
Я знаю по крайней мере один пример того, почему это считается небезопасным. Среда chroot /proc
не изолирован, поэтому довольно легко получить доступ к ресурсам, не принадлежащим процессам, запущенным в вашем chroot.
Использование chrooted окружения для SFTP нормально и значительно повышает уровень безопасности. Только не злоупотребляйте им как виртуализацией на основе контейнеров, которая обеспечивает более высокий уровень безопасности. Здесь я подчеркиваю, что есть в ответе @MdMarra.