Настройка и установка VSftpd

Очень часто возникает вопрос как загрузить файлы сайта на свой сервер. Конечно, можно использовать файл-обменники и вытягивать архивы с помощью команд wget, но это не самый удобный способ – для этого существуют FTP.

FTP (File Transfer Protocol — протокол передачи файлов) – протокол, предназначенный для передачи файлов, часто используется для загрузки файлов с домашнего ПК на сервер. В данной статье будет рассматриваться установка vsftpd (ftp сервера) на ОС Debian либо Ubuntu. Итак, приступим:
Первым делом  следует установить необходимые пакеты на наш сервер. Для этого выполним команды:

sudo apt-get update #обновление зеркал
sudo apt-get install vsftpd или sudo apt-get install vsftpd #непосредственно сама установка.

После окончания процесса установки, сервер будет автоматически запущен и будет слушать 21 порт. Проверить работоспособность сервера можно с помощью команды netstat:

netstat -npl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 22468/vsftpd 

Перед настройкой рекомендуется остановить FTP сервер, сделать это можно выполнив команду:

sudo /etc/init.d/vsftpd stop #останавливаем сервер ftp

Для настройки сервера мы будем редактировать файл etc/vsftpd/vsftpd.conf. Открываем данный файл:

 sudo nano -w etc/vsftpd/vsftpd.conf #открываем в редакторе файл конфигурации

Для начала необходимо отключить разрешение на использование FTP анонимным пользователям. Сделать это можно сменив значение параметра anonymous_enable на NO.

После расскоментируем опции “local_enable”,“write_enable” и “chroot_local_user”.

local_enable – данная опция разрешает использовать для входа на сервер пользователей которые зарегистрированы в системе.

write_enable – разрешает выполнять пользователям любые FTP команды.

chroot_local_user (по умолчанию значение YES)  – запрещает возможность выхода из пределов chroot. т.е пользователи не смогут получить доступ к другим файлам сервера. Доступ будет осушествлятся только в пред домашних каталогов.

Создаем нового пользователя user для FTP сделать это можно командой:

sudo useradd -d /var/www/path/to/your/dir -s /sbin/nologin user

Далее необходимо задать пароль для пользователя user:

sudo passwd user #меняем пароль пользователя user

После чего создадим домашнею директорию для пользователя user:

sudo mkdir -p /var/www/path/to/your/dir 

Проверяем создалась ли директория:

sudo ls -la /var/www/path/to/your/dir/span>

Для разрешения чтения и записи пользователю user в свой домашний каталог меняем права:
pre lang=”ru-RU”>sudo chown -R user /var/www/path/to/your/dir #меняем владельца каталога

sudo chmod 775 /var/www/path/to/your/dir #разрешаем запись в каталог

Создаем группу ‘webusers‘ для FTP пользователей, и добавляем в нее ‘user‘ :

sudo groupadd webusers #создаем группу webusers
sudo usermod -G webusers user #добовляем пользователя user в группу

Перезапускаем наш FTP сервер:

sudo service vsftpd restart

Настройка анонимного доступа к FTP серверу

Редактируем файл etc/vsftpd/vsftpd.conf

sudo nano -w etc/vsftpd/vsftpd.conf 

Опция anonymous_enable позволяет разрешить анонимный доступ по FTP:

anonymous_enable=YES #Включаем если была выключена

После установки загрузка файлов анонимно разрешена и происходит в каталог по умолчанию /srv/ftp в процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Если вы его хотите изменить, необходимо просто создать новый каталог и изменить домашний каталог для пользователя ftp:

sudo mkdir /var/www/path/to/your/dir #создаем папку
sudo usermod -d /var/www/path/to/your/dir ftp # назначаем пользователю user 

При данной конфигурации будет осуществятся анонимный доступ к каталогу /var/www/path/to/your/dir
После изменений перезапустите vsftpd:

sudo service vsftpd restart