Установил 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 не был выполнен, и как следствие можно уйти в корень, и куда хочется.
Может кто с талкивался с настройкой подобных вещей? Буду очень благодарен за любые подсказки.
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
> 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/*
Это правильно, или же нет?
Ну прочитайте таки третье и последующие предложения :)
>Ну прочитайте таки третье и последующие предложения :)Чесное слово, нефига не понимаю чего там написано. Я то с этим что Вы мне показали еле разобрался что там написано.
Из мана:
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 и все, что пожелаете.