Настройки в данной статье не претендуют на абсолютно верные. Настройка производилась после прочтения кучи разнообразных манов и факов.
На данный момент настройка работает в ASP 11.2.
При установке ничего не перекомпилировалось, использовались пакеты, идущие в дистрибутивах.
Ниже описано, как я настраивал ftp-сервер на основе демона vsftpd, с локальной аутентификацией. Данный сервер используется внутри локальной сети, поэтому был сделан выбор в сторону аутентификации с локальными пользователями. Для Интернет-сервера с общим доступом считаю лучшим способом использовать сервер с анонимным входом, и ограничивать доступ с помощью файрвола. Данный сервер не использует пассивное соединение.
Итак
Данный сервис настраивается с помощью файла vsftpd.conf - основной конфигурационный файл.
Пример файла, использованный мною:
listen=YES listen_address=10.12.5.24 pam_service_name=vsftpd anonymous_enable=NO local_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO anon_root=/var/ftp/anonymous dirmessage_enable=YES connect_from_port_20=YES chown_uploads=YES chown_username=ftp xferlog_enable=YES xferlog_file=/var/log/vsftpd.log idle_session_timeout=600 data_connection_timeout=12000 nopriv_user=ftp ascii_upload_enable=NO ascii_download_enable=NO ftpd_banner=Hello. user_config_dir=/etc/vsftpd/vusers chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list userlist_file=/etc/vsftpd/user_list userlist_enable=YES userlist_deny=NO
Дополнительно я создал файл user_list с пользователями которым разрешен коннект на сервер и файл chroot_list, в котором, если нужно, указывается чрутинг пользователей, в моем случае пустой. Создал каталог /etc/vsftpd/vusers, куда положил файлы, названные так же, как имена пользователей, которые имеют доступ к FTP, например, upload. Остальным пользователям доступ закрыт.
Рассмотрим некоторые директивы конфигурационного файла подробнее:
listen=YES
Директива описывающая метод работы сервера, сервер будет работать в фоновом режиме и автоматически обрабатывать соединения
listen_address=10.12.5.24
Адрес, на котором будет слушаться порт; адрес сетевой карты, смотрящей в нужную сеть
#listen_port=20
Можно указать нужный нам порт, котрый будет слушаться сервером
pam_service_name=vsftpd
Аутентификация PAM
anonymous_enable=NO
Выключение анонимного входа
local_enable=YES
Разрешение входа локальным пользователям
write_enable=YES
Разрешение на запись. С данной настройкой ограничить запись можно соответствующими правами для каталогов.
anon_upload_enable=NO
Запрещение закачки для анонимуса
anon_mkdir_write_enable=NO
Запрещение для анонимуса создания каталогов
anon_root=/var/ftp/anonymous
Чрутинг анонимуса. Его корнем будет каталог, который укажете в данной директиве.
chown_uploads=YES
chown_username=ftp
Все закачанные анонимусом файлы будут сохраняться с владельцем ftp и соответствующими правами. В данной настройке необязательные параметры могут быть закоментированы.
Все директивы, относящиеся к анонимусу, нужны для того что бы была возможность быстро перестроить сервер на прием от анонимных пользователей, а так же чтобы быть уверенным что данные директивы находятся в нужных состояниях
connect_from_port_20=YES
Разрешаем коннект на порт передачи данных
idle_session_timeout=200
Максимальное время коннекта клиента в секундах. Если клиент не проявляет активности в течение этого времени соединение разрываться принудительно
data_connection_timeout=12000
Время в секундах, после которого происходит обрыв передачи данных, если планируется закачка объемных файлов установите время побольше
nopriv_user=ftp
Пользователь по умолчанию, имеет минимальные привилегии, если включена анонимность пользователь попадет в систему с правами именно этого пользователя
ascii_upload_enable=NO
закачка файлов на сервер не будет производиться в формате ASCII
ascii_download_enable=NO
скачивание файлов с сервера не будет производиться в формате ASCII.
ftpd_banner=Hello.
Строка будет отображаться при входе пользователя, можно написать что угодно
user_config_dir=/etc/vsftpd/vusers
Каталог с файлами конфигурации пользователей, в данной настройке в файлах указывается каталог, который будет для пользователя корнем
chroot_local_user=YES
Чрутить локальных пользователей соотвественно в директории описанные в файлах находящихся в каталоге указанном директивой выше
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
Директива, разрешающая список пользователей которым нужно открыть доступ к FTP, и путь до этого списка соответственно.
userlist_deny=NO
Директива, запрещающая список пользователей, которым закрыт доступ к FTP, в нашем случае запрещен вход всех пользователей кроме тех что указаны в /etc/vsftpd/user_list
Все, на этом конфигурационный файл можно закрыть.
Теперь создаем каталог /etc/vsftpd/vusers, в котором будут храниться файлы с конфигурациями для пользователей, имеющими право на доступ к каталогам.
Например, если есть пользователь upload, создайте в этом каталоге файл с именем upload и поместите в него строку local_root=/var/ftp/upload, соответственно создав этот каталог и установив на него нужные права.
Этот каталог будет корнем для данного пользователя, в нем можно создать нужную вам структуру каталогов с соответствующими правами доступа.
Теперь можно запустить службу командой /etc/rc.d/init.d/vsftpd start
Проверить можно соединившись с сервером с другой доступной машины.
Все, на этом заканчиваю, всем спасибо за внимание.
Комментарии
Re: Настройка VsFTP с локальной аутентификацией
Статья малополезная , разжевываются очевидные вещи, а самое нужное, управление пользователями, изображено одним абзацем с пространными рассужденими без конкретики и примеров:
Re: Настройка VsFTP с локальной аутентификацией
спасибо. статья хорошая
Re: Настройка VsFTP с локальной ...
А что с файлом chroot_list? Как с ним быть и как оно работает, объясните.
Re: Настройка VsFTP с локальной ...
Стоп. Как я понял мало просто вписать ники, кому будет доступ на фтп в список. Их случаем не надо ещё заводить в самой системе?
Re: Настройка VsFTP с локальной ...
Всем привет. У меня такой вопрос, при заливке файлов анонимусами меняются права доступа, да так что они же потом не могут его скачать. Какой параметр за это в ответе. Спасибо.
Re: Настройка VsFTP с локальной ...
Тут врядли дождёжся ответа. форум мёртв, уже наблюдаю месяца 4, а жаль.