URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 84135
[ Назад ]

Исходное сообщение
"openssh + chroot дубль 2"

Отправлено pegas , 17-Фев-09 12:30 
Установил openssh 5.1p1. Но настроить не получилось чтобы пускала определенного пользователя и выполнялся chroot в определенную директорию.
В конфиг добавил следующие строки:

Subsystem sftp internal-sftp
Match User username
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /home/userhome

При попытке зайти пишет:
"Connection to 1.2.3.4 closed by remote host.
Connection to 1.2.3.4 closed."

Если убрать строки из конфига, приведенные выше, то отлично пускает, но при этом, ясное дело, chroot не был выполнен, и как следствие можно уйти в корень, и куда хочется.

Может кто с талкивался с настройкой подобных вещей? Буду очень благодарен за любые подсказки.


Содержание

Сообщения в этом обсуждении
"openssh + chroot дубль 2"
Отправлено angra , 17-Фев-09 12:51 
     ChrootDirectory
             Specifies a path to chroot(2) to after authentication.  This path, and all its components, must be root-owned directories that are not
             writable by any other user or group.
Могу предположить, что вы не прочитали man дальше первого предложения и не сделали корректный chown/chmod на /home/userhome


"openssh + chroot дубль 2"
Отправлено pegas , 17-Фев-09 13:27 
>     ChrootDirectory
>            
> Specifies a path to chroot(2) to after authentication.  This
>path, and all its components, must be root-owned directories that are
>not
>            
> writable by any other user or group.
>Могу предположить, что вы не прочитали man дальше первого предложения и не
>сделали корректный chown/chmod на /home/userhome

Да, Вы правы. Слона то я и не заметил. Теперь сделал... коннектится по sftp, а вот по ssh нехочет по прежнему. Как я понимаю это поведение управляется с помощью ForceCommand и Subsystem? Но вот что нужно туда написать?

PS: я сделал
#chmod 755 /home/userhome
#chown -R root:root /home/userhome
#chown -R username:usergroup /home/userhome/*
Это правильно, или же нет?


"openssh + chroot дубль 2"
Отправлено angra , 17-Фев-09 13:59 
Ну прочитайте таки третье и последующие предложения :)

"openssh + chroot дубль 2"
Отправлено pegas , 17-Фев-09 14:26 
>Ну прочитайте таки третье и последующие предложения :)

Чесное слово, нефига не понимаю чего там написано. Я то с этим что Вы мне показали еле разобрался что там написано.


"openssh + chroot дубль 2"
Отправлено AlekseyC , 17-Фев-09 16:03 
Из мана:
The ChrootDirectory must contain the necessary files and directories to support the users’ session.  For an interactive session this requires at least a shell, typically sh(1), and basic /dev nodes such as null(4), zero(4), stdin(4), stdout(4), stderr(4), arandom(4) and tty(4) devices. For file transfer sessions using “sftp”, no additional configuration of the environment is necessary if the in-process sftp server is used (see Subsystem for details).


SFTP отлично работает в chroot без дополнтельной конфигурации, а вот с SSH прийдется повозиться. Копирование всех необходимых файлов - дело неблагодарное. Если нравится минимализм, то ldd вам в руки и вперед копировать необходимые файлы и библиотеки...

Судя по прошлой теме у Вас Debian. Для создания сhroot дирректории вам поможет пакет cdebootstrap-static. Прочитайте man - там все просто.
Несомненных минусом данного метода является то, что в вашем chroot, будет много лишних файлов, без которых и так бы все работало.
В замен вы получите удобство использования и возможность устанавливать нужные пакеты внутри chroot. Для этого достаточно заchrootится в полученную директорию и установить пакеты, как обычно. Например, вы можете дать своим коиентам доступ по SSH и установить в их chroot пакет mysql-client, mc и все, что пожелаете.