Я планирую использовать vsftpd чтобы действовать как безопасный ftp-сервер, но мне трудно контролировать пользователей Linux, которые будут использоваться в качестве логинов ftp.
Пользователи должны быть «заключены в тюрьму» в определенный каталог (и подкаталоги) и иметь полный доступ для чтения / записи.
Требования: - Учетная запись пользователя "admin_ftp" должна быть заключена в каталог / var / www. - Другие учетные записи будут добавлены по мере необходимости для каждого сайта ... например: - Учетная запись пользователя «picturegallery_ftp» должна быть помещена в тюрьму в каталог /var/www/picturegallery.com.
Я пробовал следующее, но безуспешно:
# Group to store all ftp accounts in.
groupadd ftp_accounts
# Group for single user, with the same name as the username.
groupadd admin_ftp
useradd -g admin_ftp -G ftp_accounts admin_ftp
chgrp -R ftp_accounts /var/www
chmod -R g+w /var/www
Когда я вхожу на FTP с помощью учетной записи admin_ftp, мне выдается сообщение об ошибке:
500 OOPS: невозможно сменить каталог: / home / admin_ftp
Но разве я не указал домашний каталог?
Дополнительные интернет-ресурсы для руководства, как это сделать специально для vsftpd :)
Специально для vsftpd, а? Ладно:
В vsftpd.conf добавьте:
user_config_dir=/etc/vsftpd/user_conf
Затем в / etc / vsftpd / user_conf / admin_ftp поместите:
anon_root=/var/www
local_root=/var/www
... и так далее для каждой учетной записи.
Стоит отметить, что сажать в тюрьму таких людей при отсутствии других мер предосторожности может быть бессмысленно; в конце концов, поскольку он находится внутри DocRoot, они могут просто загрузить файл PHP, а затем получить доступ к этому файлу PHP через веб-браузер, после чего они больше не будут заключены в тюрьму. Поэтому не забывайте внимательно рассматривать всю среду безопасности в целом.
Что касается безопасности самого FTP-разговора (забота ircmaxell), просто настройте FTPS. Это довольно просто сделать в vsftpd, и если вы используете FTPES, вы можете подключиться любым способом.
Мой первый ответ прост:
Не используйте FTP без крайней необходимости. Это небезопасно, и в наше время нет причин использовать его.
Вместо этого используйте SSH, и / или SCP, и / или SFTP (все аналогичные и родственные протоколы).
Что касается того, как это сделать, то их довольно много. Я свяжусь с несколькими результатами поиска Google (ни за что не ручаюсь):
Есть еще тонны, просто поищите вокруг ...
при создании пользователя admin_ftp вы не указали, что хотите, чтобы домом для этого пользователя было что-то иное, кроме / home / admin_ftp. поэтому ftp-сервер пытается войти в / home / admin_ftp, потому что это то, что он видит в файле passwd. вам следует изменить домашний каталог для admin_ftp на / var / www /, если вы хотите, чтобы это был каталог, в который вы переходите, когда используете FTP с этим пользователем:
usermod -d /var/www admin_ftp
Я не знаю, какой дистрибутив вы используете, но у Arch linux есть хорошая вики-страница по настройке vsftp: Демон очень безопасного FTP
Как насчет того, чтобы соответствующим образом настроить локальный дом для этих учетных записей, а затем использовать chroot с параметрами конфигурации chroot_local_user или chroot_list_enable?