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
После того как создали Юзера нужно под ним зайти в систему для этого нужно в /etc/passwd сменить ftpuser /bin/bash
зайти под пользователем в систему
вийти из системы и заново сменить /etc/passwd /sbin/nologin
Настройка Фаервола для 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
Как : Отключить Фаервол Iptables в CentOS/RHEL
Настраиваем сервис 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.
***