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


20

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

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

Ответы:


13

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

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

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


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

Я не использую аутентификацию с открытым ключом, аутентификация выполняется с помощью пароля и имени пользователя
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.


-1 Извините, ваш ответ был верным много лет назад, когда вы его написали, но больше нет.
Крис С
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.