Установка VSftpd FTP Сервера на CentOS/RHEL

VSftpd — это FTP сервер для Linux.

По словам его авторов он является безопасным, надежным и очень быстрым.

В этой статье я покажу как установить и настроить VSftpd FTP Сервер в Centos / RHEL и как добавить нового FTP пользователя.

FTP протокол не является безопасным. По возможности используйте SFTP — Secure FTP который входит в OpenSSH SSHD сервер.

Установка VSftpd Сервера

Для установки VSftpd FTP Сервера, выполним следующую команду:

yum install vsftpd

На всякий случай, сделаем резервную копию конфигурационного файла ‘vsftpd.conf’:

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

Также установим FTP клиент, для подключения к FTP серверу:

yum install ftp

Настройка VSftpd Сервера

Как только VSftpd сервер установился, можно перейти к базовой настройке.

Анонимный доступ к FTP разрешен по умолчанию. Установите anonymous_enable=NO для обеспечения безопасности Вашего сервера.

Откроем файл настроек:

vi /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) которые мы закачиваем, устанавливаются соответствующие права

Смотрите мануал по vsftpd.conf, чтобы узнать обо всех опциях.

man vsftpd.conf

Добавление Нового FTP Пользователя

Создадим нового пользователя, назовем его ‘ftpuser’ и назначим ему домашнюю директорию ‘/var/www/path/to/your/dir’:

useradd -d '/var/www/path/to/your/dir' -s /sbin/nologin ftpuser

Установим пароль для нового пользователя:

passwd ftpuser

Создайте домашнюю директорию для нового пользователя, если Вы еще этого не сделали:

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

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

chown -R ftpuser '/var/www/path/to/your/dir'
chmod 775 '/var/www/path/to/your/dir'

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

groupadd ftpusers
usermod -G ftpusers ftpuser

Настройка Фаервола для VSftpd

Если Вы используете IPTABLES, необходимо создать соответствующее правило для VSftpd:

vi /etc/sysconfig/iptables

Добавьте следующую строку, перед REJECT строкой, для открытия 21 порта:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

Сохраните и закройте файл. Перезапустите фаервол.

service iptables restart

Настраиваем сервис VSftpd на Запуск При Загрузке Системы

chkconfig --levels 235 vsftpd on

Стартуем VSftpd FTP сервис.

service vsftpd start

Проверяем VSftpd Сервер

Проверяем FTP Server локально:

ftp localhost

Вывод:

Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (localhost:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
***

Проверяем FTP Server удаленно:

ftp your.ftp.server.com

Вывод:

Connected to your.ftp.server.com.
220 (vsFTPd 2.2.2)
Name (your.ftp.server.com:yourname):
Name (localhost:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
***