Как мне сделать chroot для ssh-соединений?

Как мне сделать chroot для ssh-соединений?

Я хотел бы настроить chroot jail для большинства (не всех) пользователей, входящих через SSH. Я слышал, что это возможно с последними версиями openssh, но я не смог найти, как это сделать. Все руководства говорят о патче старой версии, а патч больше не доступен.

Я использую Debian Etch.

решение1

Для этой цели я использую rssh.

Вы правы, есть новый способ сделать это, и это встроенная функция последних версий SSH.

Вот статья на темуНесмертельно.

решение2

Мне просто нужно было настроить одного пользователя, который мог бы войти через ssh, а ssh — на другой сервер (который не подключен напрямую к внешнему миру). Ссылки cstamas и ericmayo были хорошим началом.

По сути, я добавил в /etc/ssh/sshd_config следующее:

Соответствие пользователя myuser
  ChrootDirectory /chroot/myuser

С этого момента мне просто нужно было создать среду chroot ниже /chroot/myuser. Я скопировал /bin/bash и /usr/bin/ssh и необходимые им общие библиотеки (ldd их покажет). Для более крупной среды, вероятно, имело бы смысл скомпилировать статически скомпонованные версии необходимых исполняемых файлов.

Bash заработал сразу, а для работы ssh мне пришлось создать каталог .ssh, скопировать /etc/passwd, /etc/nsswitch.conf и /lib/libnss_* и создать /dev/null, /dev/tty и /dev/urandom через mknod.

решение3

mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

Вам необходимо отредактировать файл /etc/sshd_config и добавить

ChrootDirectory /chroot/%h

И перезапустите демон sshd.

Несмотря на все вышесказанное, я искренне считаю, что sftp — лучший вариант.

Также я нашел этот URL, если он будет полезен.

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

решение4

Насколько мне известно, новые версии OpenSSH допускают chroot только для соединений SFTP. Я пробовал, и это работает. Но для SSH доступным решением является патч chrootssh. Я просматриваю сайт SourceForge, но там нет файлов, поэтому я думаю, что он прекращен.

Для Debian Etch есть несколько файлов здесь:http://debian.home-dn.net/etch/ssh/

Есть и другие решения:http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html, включая chrootssh .

Связанный контент