FTP-сервер VSFTPD


В данной статье описывается процесс установки и настройки ftp-сервера с возможностью смешанного доступа: анонимный доступ + доступ для локальных пользователей.

Задача:
1) Создать дирректорию с правом чтения и с возможностью доступа без авторизации.
2) В этой дирректории создать папку, в которую возможно будет заливать и удалять файлы без авторизации.
3) Обеспечить зарегистрированным в системе пользователям получить доступ к своим домашним каталогам.
 
vsftpd (англ. Very Secure FTP Daemon) — FTP-сервер с поддержкой IPv6 и SSL. Ориентирован для UNIX-подобных операционных систем, он запускается на таких платформах как Linux, *BSD, Solaris, HP-UX и IRIX. Основное внимание уделяется безопасности и высокой производительности. Является FTP-сервером по умолчанию во многих операционных системах и обслуживает официальные репозитории ftp.debian.org, ftp.redhat.com, ftp.openbsd.org, ftp.freebsd.org.
 
Ставим:
 
sudo apt-get install vsftpd
 
Для начала создадим необходимые каталоги. Архитектура анонимного vsftpd не предусматривает ситуации когда корневой каталог анонимного пользователя доступен на запись, удаление или создание каталогов. Поэтому для возможности записи анонимами необходимо создать каталог, в нашем случае pub/, с владельцем ‘ftp’, что собственно и требуется:
 
sudo mkdir /var/ftp # создаем дирректорию ftp/ для анонимного доступа

sudo chmod 755 /var/ftp # даем необходимые права


sudo chown ftp:ftp /var/ftp # меняем владельца каталога на "ftp"


sudo mkdir /var/ftp/pub # создаем каталог для заливки файлов


sudo chown ftp:ftp /var/ftp/pub # аналогично меняем владельца


sudo chmod 755 /var/ftp/pub # даем необходимые права

 
Настраивается сервер путем редактирования конфигурационного файла vsftpd.conf
 
sudo nano /etc/vsftpd.conf
 
Простейщий конфиг будет выглядеть так:
 
listen=YES
# Опция listen=YES позволит VSFTPD работать самостоятельно,
# без помощи inetd/xinetd.
 
pasv_enable=YES # Включаем пассивный режим работы ftp-сервера
# Иначе во всеми "любимом" IE ничего не увидим,
# С активным режимом IE не дружит....
pasv_min_port=50000 # диапазон портов для работы ftp в пассивном режиме
pasv_max_port=51000
 
#-----------------------------------------------------------
# делаем анонимный доступ, с правом записи:
anonymous_enable=YES #разрешаем анонимный доступ
no_anon_password=YES # без пароля
anon_root=/var/ftp # домашней каталог анонимуса
anon_upload_enable=YES # разрешаем загрузку
anon_mkdir_write_enable=YES # разрешаем создание каталогов
anon_other_write_enable=YES # разрешаем удаление и переименование
anon_umask=022 #  Значение накладываемой маски на создаваемые
# анонимными пользователями файлы.
# 0666 - =
#-----------------------------------------------------------
# разрешаем вход локальным пользователям с правом записи в домашних директориях
local_enable=YES # разрешаем вход локальным пользователям
local_umask=022 Значение накладываемой маски на создаваемые
# локальными пользователями файлы.
0666 - =
write_enable=YES # разрешаем запись
# помещаем локальных юзеров в их домашние каталоги, иначе пользователю будет доступен корень системы что совсем не хорошо.
chroot_local_user=YES
chroot_list_enable=NO # список локальных пользователей
# помещаемых в chroot() не используем, помещаем всех.
#-----------------------------------------------------------
# настройки журналирования (запись логов)
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
 
Сохраняем и перезапускаем сервер:
 
sudo /etc/init.d/vsftpd restart
 
В итоге имеем доступ через любой интернет-броузер к общей дирректории, при необходимости коннектимся через любой ftp-клиент к домашнему каталогу с правами чтения и записи.
 
Подробное описание всех параметров конфигурационного файла на русском есть на http://www.opennet.ru/base/net/vsftpd_overview.txt.html
 
P.S.
Не советую копипастить конфиг вместе с комментариями, их лучше удалить, не знаю почему, но с комментами у меня фтп-сервер не запускался.
Варианты подключения к серверу из линукса рассмотрены здесь: connectftp

May 19, 2010