VSftpd — это FTP сервер для Linux.
В этой статье я покажу как установить и настроить VSftpd в Centos, как добавить нового FTP пользователя, а так же как настроить статические порты, для работы FTP сервера, дабы избежать ошибки при подключении «команда POST не выполнена»
Установка VSftpd Сервера
Для установки VSftpd FTP Сервера, выполним следующую команду :
yum install vsftpd
На всякий случай, сделаем резервную копию конфигурационного файла ‘vsftpd.conf’
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
Настройка VSftpd Сервера
Откроем файл настроек : /etc/vsftpd/vsftpd.conf
Внесем следующие изменения :
anonymous_enable=NO
Запрещаем анонимный доступ
local_enable=YES
Разрешаем доступ локальным пользователям
write_enable=YES
Даем пользователям FTP права на запись
connect_from_port_20=NO
Отключаем 20 порт, уменьшает привилегии VSftpd
chroot_local_user=YES
Chroot всех пользователей
local_umask=022
Устанавливаем маску 022, чтобы быть уверенными в том, что для всех файлов (644) и папок (755) которые мы закачиваем, устанавливаются соответствующие права
Многие сервисы имеют стандартные порты для работы. Например SSH работает на 22 порту, а Apache на 80. Такие сервисы очень просто записать в правила firewall, а что делать с сервисом VSFTPd, который кроме статических портов 20 и 21 для управления использует динамические номера портов для обмена данными? Указываем порты, которые сможет использовать VSftpd:
pasv_min_port = 1500
pasv_max_port = 1505
Добавление Нового FTP Пользователя
Создадим нового пользователя, назовем его ‘ftpuser’ и назначим ему домашнюю директорию ‘/var/www/path/to/your/dir’
useradd -d /var/www/your_dir -s /sbin/nologin ftpuser
Установим пароль для нового пользователя :
passwd ftpuser
Создать директорию нового пользователя, если нет:
mkdir -p /var/www/your_dir
Для того, чтобы разрешить пользователю читать и писать данные в его домашней директории, изменяем права доступа и владельца
chown -R ftpuser /var/www/your_dir
chmod 775 /var/www/your_dir
Настройка Фаервола для VSftpd
/etc/sysconfig/iptables
Добавьте следующие строки в OUTPUT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1500:1505 -j ACCEPT
Перезапускаем iptables
/etc/init.d/iptables restart
Настраиваем сервис VSftpd на Запуск
chkconfig --levels 235 vsftpd on
Стартуем VSftpd FTP сервис.
service vsftpd start
Ещё, если у вас установлен SELinux, он может блокировать запись файлов, в клиенте будет появляться ошибка 553.
Решение тут простое, либо отключить SELinux, либо его настроить. Мне помогла команда:
setsebool -P ftp_home_dir on
На этом установка закончена)