Установка ftp сервера vsftpd на Centos 7

Установка ftp сервера vsftpd на Centos 7

Обычно используется либо vsftp, либо proftpd. Сейчас напишу про настройку vsftpd на Centos 7

yum -y install vsftpd

Правим файл:
mcedit /etc/vsftpd/vsftpd.conf

chroot_local_user=YES # даем доступ только на домашний каталог пользователя, чтобы по другим каталогам не гулял
anonymous_enable=NO # запрет анонимного входа на сервер

systemctl enable vsftpd # Добавляем демон в автозагрузку Centos 7
systemctl start vsftpd # перезапуск сервиса (centos 7)

chkconfig vsftpd on # Добавляем демон в автозагрузку Centos 5-6
service vsftpd start # перезапуск сервиса (centos 5-6)

Разрешаем порт\службу в фаерволе:
firewall-cmd —permanent —add-port=21/tcp
firewall-cmd —permanent —add-service=ftp
firewall-cmd —reload

Создаем пользователя и задаем ему пароль:
useradd ftpuser
passwd ftpuser

mcedit /etc/passwd # открываем и находим строчку с новым пользователем:
ftpuser:x:1003:1003::/home/ftpuser:/bin/bash
/sbin/nologin # указываем для запрета входа этим пользователем в систему

В результате должно получиться что-то такого вида:
ftpuser:x:1003:1003::/home/ftpuser:/sbin/nologin

Проверяем FTP сервер
ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (127.0.0.1:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Далее можно завести группу для пользователя, задавать права на группу\пользователя на каталог (chmod) и т.п.

Если вылезают ошибки:
500 OOPS: cannot change directory:/home/ftpuser
Исправляем:
chown -R ftpuser /home/ftpuser
chmod -R 644 /home/ftpuser
find /home/ftpuser -type d -exec chmod 755 {} \;

Если используется SElinux и вылезает ошибка 500 OOPS: cannot change directory:/home/ftpuser, то:
setsebool -P ftp_home_dir on

500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed.
chmod a-w /home/ftpuser/ # Удаляем права записи в root-директорию

Диагностика:
nmap -P0 192.168.1.X # наш ип
tcpdump -i eth0 port 21

Добавить комментарий

Ваш адрес email не будет опубликован.