Как я могу chroot ssh соединения?

20

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

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

Malfist
источник

Ответы:

13

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

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

Вот статья на Нежить .

cstamas
источник
6

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

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

Match Пользователь 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.

Мари Фишер
источник
2
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

Сохам Чакраборти
источник
1

Если вы используете аутентификацию с открытым ключом, вы можете использовать опцию «command» в авторизованных ключах для настройки тюрьмы chroot.

~ / .ssh / authorized_keys:

command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host
UloPe
источник
Я не использую аутентификацию с открытым ключом, аутентификация выполняется с помощью пароля и имени пользователя
Malfist
0

Насколько я знаю, новые версии 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.

hdanniel
источник
-1 Извините, ваш ответ был верным много лет назад, когда вы его написали, но больше нет.
Крис С