Основным отличием данной сборки от стандартного пакета openssh является возможность «запирать» подключающихся по SSH/SFTP пользователей в определенной директории (причем, для каждого пользователя она может быть своя).
Параметры chroot-окружения пользователей задаются в отдельном конфигурационном файле '/usr/openssh-jail/etc/sshjail.conf'. Во всем остальном настройка службы повторяет стандартный openssh (производится через '/usr/openssh-jail/etc/sshd_config').
Практический пример использования:
Если вы еще не установили пакет openssh-server-jail, сейчас самое время это сделать. После завершения процедуры установки отредактируйте основной конфигурационный файл службы '/usr/openssh-jail/etc/sshd_config': задайте номер tcp-порта для службы и запретите неиспользуемые вами методы аутентификации.
Допустим, системного пользователя 'user1' нужно ограничить его домашним каталогом ('/home/user1'). Используем скрипт «makejail», который идет в поставке с пакетом:
[root@ts ~]# /usr/openssh-jail/sbin/makejail user1 /home/user1
Можно написать еще проще (если отсутствует второй параметр, скрипт использует каталог '/home/USERNAME'):
[root@ts ~]# /usr/openssh-jail/sbin/makejail user1
После создания окружения, добавляем в файл '/usr/openssh-jail/etc/sshjail.conf' строки:
chroot=/home/user1 users=user1
Последний шаг, перезапускаем службу sshd-jail.
Типичные вопросы, возникающие при работе с программой:
1) У пользователя в его окружении отсутствует программа XXX, как ее добавить?
Посмотрите, как это реализовано в скрипте «makejail»: при помощи «ldd» для каждой утилиты в списке выясняются зависимости (библиотеки), затем они копируются в пользовательское chroot-окружение с таким расчетом, чтобы утилита могла их найти при запуске. Вы можете сэмулировать работу скрипта (запустить «ldd» для Вашей утилиты и скопировать утилиту и ее зависимости в jail-каталог), или же отредактировать скрипт «makejail» (вручную добавить свою утилиту в список «APPS» и пересоздать пользовательский «jail»).
2) Можно ли задавать ограничения не для одиночного пользователя, а для целой группы?
Да, sshjail обладает подобным функционалом. Смотрите пример конфигурационного файла, идущего в поставке с программой. Но учтите, что вы не сможете использовать скрипт «makejail» (он может создавать окружение для одиночного пользователя, но не для группы).
3) Обязательно ли располагать «клетку» (jail) в домашнем каталоге пользователя?
Необязательно, но желательно с точки зрения элементарного порядка. Я придерживаюсь концепции, что все персональные данные пользователя (к коим, несомненно, относится пользовательское окружение) должны находиться в его домашнем каталоге, а не быть разбросанными по системе.
4) Можно ли в последствии менять физическое расположение jail-а пользователя?
Конечно. Вы можете переместить ее в любое место, и это не повлияет на работоспособность программ внутри chroot-окружения пользователя (см. предыдущий вопрос). Только не забудьте прописать новый путь к «клетке» в /usr/openssh-jail/etc/sshjail.conf.
5) Мне нравится стандартная реализация chroot в openssh! Могу ли я использовать ее вместо sshjail?
Безусловно, да. Хотя я не вижу в этом смысла, ведь в этом случае теряются все преимущества sshjail. Невозможно использовать два метода организации «chroot» одновременно; при активации стандартных методов («ChrootDirectory» в sshd_config и т.п.) закомментируйте все строки в файле /usr/openssh-jail/etc/sshjail.conf, чтобы отключить функционал sshjail. По вопросам использования стандартных методов «chroot» обратитесь к официальной документации OpenSSH.
6) Для каких дистрибутивов/архитектур можно использовать данный пакет?
Пакет собран и протестирован под RHEL5 и CentOS, архитектуры i386 и x86_64. Вы также можете собрать пакеты из SRPM под свою архитектуру.
7) Могу ли я использовать данный пакет под Fedora 9/10/11 и т.д.?
Теоретически, да; поскольку ничего специфичного в пакете нет. Перед сборкой для Fedora я бы внес некоторые коррективы в spec-файл, в первую очередь это касается секции зависимостей для сборки. Возможно также требуется обновить pam (sshd-jail.pam) в соответствии с версией, используемой в Вашем дистрибутиве.
Для получения дополнительной информации, посетите сайт автора sshjail.