Сейчас рассмотрим пример организации 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.
***
Настройка автозапуска написана для centos 6, на 7 не работает, так же в создании пользователя пропущены ковычки во втором адресе.