Давным-давно… Хотя… Короче говоря понадобился нам для рабочих нужд нормальный FTP-сервер. Долго шли к такому решению и все же приняли его. Да и вообще FTP-сервер штука полезная во многих ситуациях.

Довольно быстрый гуглеж дал понять, что самым лучшим в моей ситуации был выбор в пользу vsFTPd. Такой выбор основан на следующем: Во-первых, машина, на которую планируется ставить vsFTPd работает на базе Ubuntu 14.04 LTS (конечно же серверная); Во-вторых, отсутствие опыта поднятия FTP-сервера, а vsFTPd позиционируют как простое решение.

Начнем по порядку. Все действия по установке софта и работе в консоли Ubuntu  я начинаю с проверки обновлений. После чего ставлю необходимый софт.

sudo -s apt-get update && apt-get upgrade apt-get install vsftpd

Я всегда начнаю установку приложений с обновления системы и всех приучаю к этому. Эта привычка дает возможность держать систему в чистоте и актуальности. И вообще это полезно.

В общем почитав маны, форумы, etc, я пришел к выводу, что проще будет настроить доступ для локальных пользователей, ограничив им права доступа. Выбор пал в сторону локальных пользователей по двум причинам: Первое, это проще; Второе, круг доступа лиц абсолютно не велик. Плюсом к этому ограничение по доступу к файлам и папкам на чтение/запись и систематический ручной (именно самостоятельно посмотреть логи и увидеть что/где/куда и за каким собственно хреном произошло) мониторинг логов демона. Процесс конфигурирования занял довольно долгое время по причине незнания и постоянного просмотра OpenNet.ru на предмет понять, что делает каждый параметр в конфигурационном файле. Обзор статьи с возможностями дал гораздо больше, чем все остальные самопальные мануалы по настройке и конфигурированию. По итогу был выбран следующий вариант организации доступа к файлам: Индивидуальный файл конфигурации для каждого пользователя; Создано два локальных пользователя - первый с правом записи, второй только с правом чтения. Оба пользователя имеют домашние каталоги в папке /home. Пример листинга основного конфигурационного файла лежащего по адресу /etc/vsftpd.conf:

listen=YES # Включаем слушание демоном всех интерфейсов 
anonymous_enable=NO # Явно отключаем доступ для анонимных пользователей
local_enable=YES # Разрешить доступ локальным пользователям
write_enable=YES # Разрешить писать локальным пользователям 
local_umask=002 # Маска файлов/папок при создании 
dirmessage_enable=NO # Отключаем сообщения в папках 
use_localtime=YES # Использовать локальное время сервера (актуально для логирования)
xferlog_enable=YES # Включаем логирование 
connect_from_port_20=YES # Разрешаем доступ по 20-ому порту
data_connection_timeout=600 # Таймаут соединения 
chroot_local_user=YES # Чрутить локальных пользователей (запираем в домашнем каталоге) 
chroot_list_enable=YES # Включаем чрут-лист 
chroot_list_file=/etc/vsftpd/vsftpd_users # Расположение чрут-листа
secure_chroot_dir=/var/run/vsftpd/empty # Имя пустого каталога без возможности записи для пользователя ftp 
user_config_dir=/etc/vsftpd # Директория с конфигами для пользователей
pam_service_name=vsftpd # Указываем имя PAM сервиса для vsftpd

Не особо много параметров, а что и для чего думаю и так ясно из комментариев, в противном случае RTFM! Далее пример индивидуально конфигурационного файла для одного из пользователей:

local_root=/home/usver # Расположение локального каталога для пользователя
write_enable=YES # Разрешаем ему писать в этот каталог 
local_umask=022 # Маска создаваемых файлов/папок 
chroot_local_user=YES # Чрутим пользователя в его каталоге 
passwd_chroot_enable=YES # Пользователь запирается в каталоге указанном в /etc/passwd 
secure_chroot_dir=/home/usver # Имя пустого каталога без возможности записи для пользователя ftp (указал на всякий случай)

В файле /etc/vsftpd/vsftpd_users указываем нужных пользователей по одному на строчку. Собственно на этом все. После сохранения всех файлов и осмысления проделанного набираем в консоли:

service vsftpd restart

Демон vsftpd перезагружается и… Профит! На этом все сделано. Это основная и примитивная конфигурация сервера FTP для простоты и быстроты. За остальным RTFM вам в помощь!


Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат, а так же подписывайся на канал.