Заметки программиста

chroot с Jailkit

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

Общие шаги по устранению проблем

  1. Проверьте конфигурацию Jailkit в ISPConfig.
    • Войдите в панель управления ISPConfig.
    • Перейдите в Система > Конфигурация сервера и выберите ваш сервер.
    • Откройте вкладку Jailkit.
    • Убедитесь, что поле «Секции приложений Jailkit chroot» (Jailkit chroot app sections) содержит необходимые программы (например, utilssshsftpeditors).
    • Если пользователю требуется доступ к PHP из оболочки, убедитесь, что в списке присутствует php.
  2. Обновите среду chroot.
    • После изменения настроек в ISPConfig вам может потребоваться заново сгенерировать среду chroot. Это гарантирует, что все необходимые файлы (такие как исполняемые файлы и библиотеки) будут скопированы в изолированный каталог.
    • В более старых версиях ISPConfig или для ручного устранения неполадок можно использовать специальные сценарии (scripts), которые обеспечивают правильное наполнение chroot-окружения.
  3. Изучите логи сервера.
    • Проверьте системные журналы, чтобы найти сообщения об ошибках, связанные с попытками входа в оболочку chroot.
    • Обычно, логи SSH (/var/log/auth.log на Debian/Ubuntu, /var/log/secure на CentOS/RHEL) могут содержать полезную информацию, например, ошибки, связанные с отсутствующими файлами или разрешениями.
  4. Проверьте отсутствие необходимых файлов и библиотек.
    • Наиболее частая причина сбоев в chroot-окружении — отсутствие необходимых исполняемых файлов или библиотек, которые требует программа.
    • Jailkit автоматизирует этот процесс, но иногда что-то может быть упущено.
    • Если пользователь не может запустить какую-либо команду, зайдите в каталог chroot (обычно /var/www/clients/clientN/webN/ для конкретного сайта) и проверьте, присутствует ли необходимый файл.
    • Утилита ldd может помочь определить, каких библиотек не хватает исполняемому файлу (например, ldd /path/to/executable_in_chroot).
  5. Разрешите дополнительные утилиты или bin.
    • Если пользователю нужен доступ к дополнительным командам, отредактируйте файл конфигурации /etc/jailkit/jk_init.ini.
    • Вы можете добавить новую секцию или дополнить существующие, указав путь к необходимой утилите.
    • После этого заново сгенерируйте среду chroot, чтобы изменения вступили в силу. 

Специфические проблемы и их решения

  • Проблемы с резервным копированием: Некоторые автоматические инструменты резервного копирования (например, Softaculous) могут не работать в chroot-окружении, поскольку им требуется доступ к системным файлам за его пределами.
    • Решение: Отключите функции резервного копирования для конечных пользователей в Softaculous и используйте встроенную функцию ISPConfig, которая запускается от имени root через cron, что позволяет избежать ограничений chroot.
  • Проблемы с доступом к PHP в оболочке: Если пользователю нужно запускать PHP-скрипты из командной строки, необходимо явно добавить поддержку PHP в конфигурацию Jailkit.
    • Решение: Добавьте слово php в поле «Секции приложений Jailkit chroot» на вкладке «Jailkit» в настройках сервера в ISPConfig. Также убедитесь, что в файле /etc/jailkit/jk_init.ini присутствует секция [php].
  • Проблемы с интерактивной оболочкой SSH: Если вход через SSH не работает, возможно, среда chroot настроена для sftp-only.
    • Решение: Убедитесь, что для пользователя установлен правильный тип оболочки, и что в среде chroot есть все необходимое для запуска интерактивной оболочки, например, /bin/bash

Комментарии

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.