Вопрос или проблема
Как использовать Jailkit Jail Manager в Virtualmin (Webmin 1.892), чтобы ограничить пользователей в их домашних каталогах, включая виртуальные сайты и все сервисы, работающие под пользователем?
Я настраиваю небольшой хостинг для веб-сайтов и должен отключить доступ ко всему, кроме домашнего каталога пользователя.
Я не хочу использовать FTP или FTPS! У пользователей будет полный доступ по SSH к их системе, и они смогут запускать, например, скрипты NodeJS, Teamspeak и т.д…
Это возможно? Если да, то возможно ли это в Virtualmin или нужна более глубокая настройка.
ДОПОЛНЕНИЕ: Я использую Debian 9
Virtualmin -> выбрать домен/виртуальный сервер -> Опции администрирования -> Изменить лимиты владельца -> раздел ‘Другие ограничения’ -> внизу ‘Чи́стая кампания для пользователя Unix?’
Ответ или решение
Использование Jailkit Jail Manager в Virtualmin для ограничения пользователей в их домашних директориях
Введение
Создание хостинга для небольших веб-сайтов требует от администратора высокой степени контроля над доступом пользователей, особенно когда речь идет о SSH-доступе и выполнении различных служб, таких как NodeJS. В этой статье мы рассмотрим, как ограничить пользователей в Virtualmin с помощью Jailkit Jail Manager, обеспечивая их доступ только к домашним каталогам и интеграцию с веб-службами.
Условия для работы с Jailkit в Virtualmin
Для успешного выполнения задач проверьте, что у вас установлены следующие компоненты:
- Debian 9 – операционная система, на которой будет производиться настройка.
- Virtualmin – установленная версия, подходящая для работы с Jailkit.
- Jailkit – инструмент, который позволит вам создавать "jail" окружение для пользователей.
Установка Jailkit
Для начала необходимо установить Jailkit, если он еще не установлен. Выполните следующие команды в терминале:
sudo apt-get update
sudo apt-get install jailkit
Настройка Jailkit
После успешной установки Jailkit, давайте создадим окружение "jail" для пользователей:
-
Создание Jail:
Для настройки окружения выполните следующую команду, заменив<username>
на имя пользователя, для которого создается jail:sudo jk_init -j /home/jail -n <username> basicshell ssh
Это создаст директорию
/home/jail
, в которой будет находиться окружение для пользователя. -
Добавление пользователя:
После создания jail необходимо добавить пользователя в него. Выполните команды:sudo useradd -d /home/jail/home/<username> -s /bin/bash <username> sudo passwd <username>
-
Настройка окружения пользователя:
Важно скопировать необходимые библиотеки и команды в jail:sudo jk_cp -j /home/jail -n <username> /usr/bin/node sudo jk_cp -j /home/jail -n <username> /usr/bin/teamspeak
-
Настройка прав доступа:
Убедитесь, что пользователю разрешен доступ только в его домашний каталог. Для этого откройте файл/etc/ssh/sshd_config
и убедитесь, что у вас установлено следующее:ChrootDirectory /home/jail AllowTcpForwarding no
После внесения изменений перезапустите SSH сервер:
sudo systemctl restart sshd
Настройка в Virtualmin
Теперь, когда Jailkit настроен, вы можете интегрировать его с Virtualmin:
- Откройте Virtualmin и выберите нужный домен или виртуальный сервер.
- Перейдите в раздел Administration Options, выберите Edit Owner Limits.
- Найдите раздел Other restrictions и установите флажок на Chroot jail domain Unix user?.
- В выпадающем меню выберите созданный jail.
Проверка настройки
После настройки jail и внедрения его в Virtualmin, рекомендуется провести тестирование. Войдите под учетной записью пользователя и убедитесь, что он может запускать только те команды и службы, которые были заранее разрешены.
Заключение
Использование Jailkit в комбинации с возможностями Virtualmin предоставляет вам мощный инструмент для управления доступом пользователей к системе. Это особенно важно в условиях хостинга, когда необходимо обеспечить безопасность и контроль. Следуя приведенным выше шагам, вы сможете создать ограниченное окружение, соответствующее всем вашим требованиям.