Назад | Перейти на главную страницу

Что означает FTP Jailing и какие функции требуются серверной ОС для его включения?

У меня нечеткое представление о том, что означает термин «ftp jailing», но когда дело доходит до разрешений и безопасности, нечеткость неосмотрительна. Что это? Как это реализовано? Это в основном возможность ftp-сервера или это связано с тем, как базовая ОС выполняет разрешения?

Вот как я это делаю в среде Windows IIS. Рисунок это кому-то поможет в будущем.

  1. настроить учетные записи локальных пользователей на компьютере для каждого «пользователя / клиента»
  2. В проводнике настройте структуру NTFS так, чтобы у вас была «корневая» папка, а внутри этой папки у вас были папки для каждого клиента / и т. Д.
  3. Настройте права NTFS так, чтобы каждый пользователь (вы можете использовать группу с именем FTP-пользователи и добавлять их всех в эту группу) имел права «Список» для корневой папки. Затем дайте им определенные права на каждую из их «домашних» папок (чтение / запись / что угодно).
  4. В IIS для FTP-сайта создайте виртуальные каталоги с именами ТОЧНО такие же, как у созданных вами учетных записей пользователей, и укажите для каждого из них правильную домашнюю папку. т.е. виртуальный каталог BOBJONES указывает на d: \ ftpsite \ BOBJONES
  5. вернитесь в проводник и создайте новую папку в той же папке, что и папка ROOT, и назовите ее DEADEND
  6. предоставить список пользователей FTP / права на чтение для папки DEADEND
  7. Вернувшись в IIS, установите "корневую папку" для FTP-сайта в папку DEADEND.

Вот и все.

теперь, когда BOBJONES входит на FTP-сайт, он находится в каталоге BOBJONES. Если он станет хитрым и попытается сделать компакт-диск ... для перехода к родительскому / корневому каталогу, он попадет в папку DEADEND и не увидит список всех остальных домашних папок и т. Д. (ПРИМЕЧАНИЕ: он может получить вернуться в свою домашнюю папку, набрав cd BOBJONES still)

ОДИН ЗАКЛЮЧИТЕЛЬНОЕ ПРИМЕЧАНИЕ: любой, у кого есть идентификатор пользователя, но не имеет виртуального каталога с таким же именем, по умолчанию получит корневой каталог, который был изменен на DEADEND.

Заключение в тюрьму FTP означает, что пользователь видит свой корневой каталог как тот, который вы определяете. Он не может подняться выше по дереву, поскольку FTP-клиент видит его каталог как корневой каталог.

Допустим, у вас есть следующее:

/home/ben_linus/
/home/ben_linus/data
/home/ben_linus/progs

Вы устанавливаете корень в / home / ben_linus /

Он увидит

/
/data
/progs

«Заключение в тюрьму» в ftp означает блокировку сеанса ftp для определенного подмножества файловой системы. Обычно он устанавливается таким образом, что если конкретный пользователь входит в систему, он может только ftp к своему собственному пространству каталога.

На ftp-сервере часто есть опция, которая при подключении пользователя исключает пользователя, что означает, что для этого пользователя корень юниверса является определенной частью всей доступной файловой системы.

'vsftp' имеет действительно четкое объяснение и инструкции по vsftpd.

Некоторые другие примеры включают профтп и ftp на hp / ux.

Я не вижу причин, по которым это должно зависеть от ОС. Ничто не мешает вам кодировать FTP-сервер, который будет возвращать / для некоторого случайного каталога после использования cd .. достаточно часто, фактически не находясь в / на Unix или на диске верхнего уровня в Windows.

Что касается разрешений, это во многом зависит от того, как вы настраиваете свои FTP-серверы, некоторые FTP-серверы могут отображаться от / к любому пользователю, это означает, что вы можете настроить FTP-сервер, который требует «нормальной» аутентификации, но при записи файла в ОС на хосте. разрешения будут привязаны к определенному пользователю, которого вы настроили.

Некоторое обсуждение chroot (а также дополнительную ссылку) можно найти в ProFTPd FAQ.

Это особенность ftp-сервера (для большинства из них). Например, с vsftpd вы можете "заключать" пользователей в их домашний адрес, используя конфигурацию

chroot_local_user=YES

FTP-сервер не позволит пользователю перейти ниже этого каталога.

User homedir: /home/ftp
User can access: /home/ftp, /home/ftp/pub
User can not access: /home, /etc, /, /root etc..

Это может означать две вещи:

  • (или все) пользователь / логин ограничены своим «домашним каталогом», в отличие от полного представления иерархии FTP. Обычно это реализуется в программном обеспечении на уровне приложения (например, FTP-сервер).
  • в качестве меры безопасности процессы FTP заключены в тюрьму по типу настройки chroot. Это довольно распространено для серверов, разрешающих анонимный доступ. Раньше это выполнялось с помощью системного вызова chroot, хотя я чувствую, что теперь в некоторых ОС могут быть более современные способы сделать это. В любом случае, этот тип настройки немного сложнее и гораздо больше зависит от ОС (даже если просто использовать chroot).

В старые времена в системах UNIX помещать пользователей в определенный каталог было обременительно, чревато ошибками и могло привести к проблемам. Вам нужно было скомпилировать специальные статические связанные двоичные файлы для таких вещей, как ls и cd, и, например, переместить их в тюрьму. Если ваша ОС / программное обеспечение требует этого - учтите, что это проблематично. Я предпочитаю более новые FTP-серверы, которые не требуют такого подхода.

В IIS мне трудно сделать заключенный в тюрьму FTP - хотя есть одно описание чего-то близкого выше, это не совсем так гладко. Престижность за то, что я сделал это, я много раз пытался найти что-то подобное. Вместо этого я использую Filezilla в Windows, это довольно элегантное решение проблемы с тюрьмами, которое работает должным образом. Насколько мне известно, никаких проблем с безопасностью нет, Filezilla, похоже, быстро устраняет уязвимости.

Современные реализации FTP в UNIX, похоже, делают заключение в тюрьму намного проще и, вероятно, намного безопаснее. Остается большая часть проблем безопасности; как только вы предположите, что можете предоставить своему пользователю доступ ко всему, что ниже точки тюремного заключения, возникает вопрос: «Предоставляет ли мой поставщик / поставщик программного обеспечения FOSS своевременные исправления?»