Меня попросили настроить 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
"ссылка, чтобы перейти и получить эффективный доступ ко всей нашей системе.
Итак, вопросы:
Неужели именно так должен работать FTP-сервер с точки зрения настройки учетных записей ftp?
Если нет, как мне настроить 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 есть нужные вам ответы.