Установка и настройка FTP сервера vsFTPd в CentOS 7

Установка и настройка FTP сервера vsFTPd в CentOS 7

Установка и настройка vsftpd CentOS 7

Сейчас рассмотрим пример организации FTP сервера на базе vsFTPd и CentOS 7. Сервис FTP будет крайне полезным для любой организации и сервисов, например, для удобной работы с сайтом на WordPress. Первым делом устанавливаем требуемые пакеты vsftpd:

sudo yum -y install vsftpd

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

sudo mkdir /backup

sudo cp /etc/vsftpd/vsftpd.conf /backup

Также устанавливаем клиент ftp на используемом сервере — возможно, он пригодится в будущем и сейчас при проверке настроек. Установка также не вызывает никаких затруднений:

sudo yum -y install ftp

Настройка vsFTPd сервера

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

Настройка будет проводиться путем редактирования конфигурационного файла vsftpd.conf:

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

Этого будет достаточно для корректной работы созданного FTP сервера, для получения расширенных данных по используемым параметрам — воспользуетесь man (man vsftpd.conf).

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

Создадим специального пользователя FTP с именем ftpuser и каталогом по умолчанию /var/www/ваш_каталог:

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

Зададим пароль:

passwd ftpuser

Если домашняя директория для 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

Настройка iptables для vsFTPd

Для корректной работы FTP сервера нужно сделать настройку IPTABLES (добавить правила для FTP). Подробнее об iptables: Установка и настройка IPTABLES в CentOS 7Настройка iptables для Apache2 в CentOS 6.5.

Открываем конфигурационной файл iptables и вносим следующие изменения:

sudo nano /etc/sysconfig/iptables
-A INPUT -m state —state NEW -m tcp -p tcp —dport 21 -j ACCEPT

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

sudo systemctl restart iptables

Настройка автозапуска vsFTPd при старте системы

chkconfig —levels 235 vsftpd on

Стартуем vsFTPd FTP сервис:

service vsftpd start

Готово. Настройка FTP сервера завершена. Проверяем его работу локально:

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.
***