Я хотел бы установить chroot-тюрьму для большинства (не всех) пользователей, которые входят в систему через SSH. Я слышал, что это возможно с последними версиями openssh, но мне не удалось выяснить, как это сделать. В How To все говорят об исправлении старой версии, а этот патч больше не доступен.
Я использую debian etch.
Для этого я использую rssh.
Вы правы, есть новый способ сделать это, и это встроенная функция последних версий ssh.
Вот статья о Бессмертно.
Мне просто нужно было настроить одного пользователя, который мог бы входить в систему через ssh и ssh на другой сервер (который напрямую не связан с внешним миром). Ссылки cstamas и ericmayo стали хорошим началом.
По сути, я добавил в / etc / ssh / sshd_config следующее:
Match User 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.
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, если он полезен.
Если вы используете аутентификацию с открытым ключом, вы можете использовать опцию «command» в авторизованных ключах для установки chroot jail.
~ / .ssh / authorized_keys:
command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host
Насколько мне известно, новые версии 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.