Поиск:

Использование openssh-server-jail

Основным отличием данной сборки от стандартного пакета 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.

Обсуждение



 
© 2009–2013 Денис Фатеев (Danger)
Копирование контента без указания автора преследуется сотрудниками ада.
Recent changes RSS feed
Valid XHTML 1.0
Valid CSS