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

Как работает сервер vsftpd и как его настроить?

Меня попросили настроить FTP-сервер на основе vsftpd пакет. Сервер работает на удаленном компьютере, к которому у меня есть права суперпользователя.

Не зная, как работают FTP-серверы, я попытался выяснить, как настраиваются учетные записи ftp пользователей. Предыдущий сопровождающий использовал сценарий оболочки, который работает со списком, который мы ведем для отслеживания учетных записей пользователей и паролей, для настройки учетных записей ftp. Читая сценарий, я вижу, что он генерирует список имен пользователей и паролей и фактически создает учетную запись пользователя на машине Linux. Это означает, что для каждого пользователя, которого мы настраиваем в списке, новая учетная запись добавляется adduser команда:

adduser --home /home/ftp --no-create-home $user

(но без частного /home/username каталог - используя /home/ftp instaed).

Каждый из этих пользователей может войти в свою учетную запись, используя ssh команда. Этот факт кажется мне немного странным, поскольку я думаю, что учетная запись ftp должна быть отделена от учетных записей пользователей Ubuntu.

В качестве еще одного побочного эффекта, когда пользователь подключается с помощью веб-браузера, он подключается к /home/ftp каталог. Однако затем он может использовать "Up to a higher level directory"ссылка, чтобы перейти и получить эффективный доступ ко всей нашей системе.

Итак, вопросы:

  1. Неужели именно так должен работать FTP-сервер с точки зрения настройки учетных записей ftp?

  2. Если нет, как мне настроить vsftpd сервер таким образом, что у меня есть только учетная запись суперпользователя Ubuntu на этом компьютере, а все учетные записи ftp ... просто учетные записи пользователей FTP? Кроме того, эта учетная запись ftp должна быть настроена с точки зрения того, как и к чему им разрешен доступ.

Определенно предыдущий админ не справился с задачей.

Итак, во-первых, если вы добавите следующие строки в свой vsftpd.conf, вы будете chroot пользователей в их домашнем каталоге.

chroot_list_enable=YES
chroot_local_user=YES

# a list of users which are NOT to be placed in a chroot() jail
chroot_list_file=/etc/vsftpd/chroot_list

Для управления пользователями вы можете создать виртуальный (см. Вот), но если вы считаете, что решение слишком сложное, просто используйте pam_listfile.so модуль, чтобы запретить пользователям ftp доступ по ssh или использовать pam_shells.so. Как вам удобнее. Только будьте осторожны, чтобы не блокировать ssh-сервер для допустимых пользователей :)

Вы должны использовать виртуальных пользователей в качестве пользователей FTP.

Следуйте за этим постом: http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/

Похоже, вам нужен chroot-сервер ftp с несистемными пользователями, я думаю этот в wiki howto есть нужные вам ответы.