Как работает сервер 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
"ссылка, чтобы идти вверх и эффективно иметь доступ ко всей нашей системе.
Итак, вопросы:
Действительно ли так должен работать FTP-сервер с точки зрения настройки учетных записей ftp?
Если нет, то как мне настроить
vsftpd
сервер таким образом, что у меня есть только учетная запись Ubuntu суперпользователя на этой машине, и все учетные записи ftp... просто учетные записи пользователей FTP? Кроме того, эти учетные записи ftp должны быть настроены с точки зрения того, как и к чему им разрешен доступ.
3 ответа
Определенно предыдущий админ не сделал хорошую работу.
Поэтому, прежде всего, если вы добавите следующие строки в ваш vsftpd.conf, вы будете выполнять поиск пользователей в их домашнем каталоге.
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/
Похоже, вам нужен хромированный ftp-сервер с несистемными пользователями, я думаю, что в этом вики-руководстве есть ответы, которые вам нужны.