LINUX.ORG.RU
решено ФорумAdmin

В чём смысл ограничений на chroot в SFTP ?


0

1

Пытаюсь сделать FTP через SSH с использованием chroot в домашний каталог пользователя. В manual-е пишут, что владельцем всех компонентов пути (в том числе и каталога пользователя) должен быть root + никто посторонний не должен иметь прав записи туда:

All components of the pathname must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

Господа, может кто-нибудь доходчиво объяснить с чем связано данное ограничение ?
Почему все ftp-сервера испокон веков умеют делать chroot в домашний каталог без подобных ограничений, а openssh, несмотря на то, что 21-й век на дворе, никак не умеет ?
А то уже руки чешутся сделать patch, дабы отключить этот вопиющий маразм.

★★★★★

Я так понимаю что это для защиты корня сделано. А дальше создавай папки как хочешь: ${chroot}/home/misha

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Интересно от кого и зачем его защищать ? :-) Что будет, если условие с владельцем и правами выполняться не будет ?

spirit ★★★★★
() автор топика

Чтобы пользователь не мог создать в своем каталоге rc-файлы, и выполнять команды на сервере?
Например, ~/.ssh/rc

bigbit ★★★★★
()
Ответ на: комментарий от spirit

Ну он туда чрутится рутом и там уже привилегии сбрасывает и вызывает шелл. Так вот если враг подсунет, скажем, левый libnss* то запросто поимеет всех пользователей в чруте.

Кстати, раскажи мне, а зачем вообще sftp нужен? Разве scp не делает то же самое?

true_admin ★★★★★
()
Ответ на: комментарий от bigbit

Например, ~/.ssh/rc

В sftp режиме команды не выполняются (проверял).


если враг подсунет, скажем, левый libnss* то запросто поимеет всех пользователей в чруте.

Каким образом ? Они разве не должны быть подгружены при запуске процесса ещё до всяких chroot-ов ?
И даже, если и подсунет, что поимеет с этого ? chroot уже сделан - выше не поднимутся, uid переключен - работаем уже не из-под root-а.

а зачем вообще sftp нужен?

Нужно людям дать доступ к загрузке файлов на сервер (мини shared hosting). Люди иногда заходят туда из дома (домовая сеть, локальные IP, возможны sniffer-ы трафика). Раньше был доступ по ftp, нешифрованный, т.к. шифрованный ftp не во всех режимах дружит с NAT-ом (NAT у них в домашней сети). Часть учётных записей «прохачили» - судя по всему отловили пароли, поэтому теперь общение с сервером нужно сделать шифрованным.

Разве scp не делает то же самое?

А chroot к нему применить можно ? Можно было бы прикрутить rssh, но вот проблема с chroot-ом.

spirit ★★★★★
() автор топика
Ответ на: комментарий от bigbit

Спасибо за ссылку. Идея взлома с помощью жёстких ссылок на setuid программы понятна, хотя для sftp и не применима. Наверное в openssh решили не заморачиваться на частные случаи и сделали это условие глобальным.
Будем значит для chroot-а создавать промежуточные каталоги.
Всем спасибо за помощь !

spirit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.