{{description>Описание установки и настройки FTP-сервера vsftpd}}
====== Установка и настройка FTP-сервера vsftpd ======
[[ http://wiki.mihanik.net/doku.php?id=операционные_системы:linux:работа_с_сетью:ftp:установка_и_настройка_ftp_сервера_vsftpd&do=export_pdf | Экспорт в PDF ]] ~~ODT~~
Дата создания: 2025/06/19 05:46 (C) mihanik
{{ :операционные_системы:linux:работа_с_сетью:ftp:cai-dat-ftp-server-vsftpd-tren-centos.jpg?nolink&400 |}}
===== Дано. =====
Сервер под управлением ОС Linux семейства Red Hat
===== Надо. =====
Чтобы сервер выполнял роль FTP-сервера.
===== Решение. =====
Договоримся, что в качестве FTP-сервера будем использовать **vsftpd**.
==== Установка vsftpd. ====
yum -y install vsftpd
Я очень часто использую **epel-репозиторий**, поэтому всегда его сначала устанавливаю. \\
yum install -y epel-release
==== Добавим в сетевой экран разрешения для подключения по протоколу FTP. ====
Порты с 40000 по 50000 будут использоваться для пассивных подключений.\\ Подробности [[https://ru.wikipedia.org/wiki/FTP|ТУТ.]]
firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=40000-50000/tcp --permanent
firewall-cmd --reload
==== Настройка FTP-сервера. ====
Сначала делаем резервную копию файла с настройками.
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
Открываем файл с настройками и начинаем его редактировать
mcedit /etc/vsftpd/vsftpd.conf
Внутри файла меняем настройки
Если хотим отключить анонимный доступ, то меняем
anonymous_enable=YES
на
anonymous_enable=NO
Также раскоментируем
chroot_local_user=YES
И сразу после этой строки добавляем
allow_writeable_chroot=YES
Причина добавления строки описана тут: [[http://agapoff.name/vsftpd-oops.html]]
И в самый конец конфигурационного файла добавляем настройки подключения для пассивного режима и анонимных пользователей.
###########################################################################
#
# Point users at the directory we created earlier.
anon_root=/mnt/ftp/pub/
#
# Stop prompting for a password on the command line.
no_anon_password=YES
#
# Show the user and group as ftp:ftp, regardless of the owner.
hide_ids=YES
#
# Limit the range of ports that can be used for passive FTP
pasv_min_port=40000
pasv_max_port=50000
**Важно!** \\
Папка предназначенная для анонимных пользователей (**anon_root**) должна иметь разрешения **755**, иначе при попытке получить доступ к этой папке по FTP можно получить ошибку вида: "vsftpd: refusing to run with writable anonymous root"
Напомню, что поменять разрешения на папку можно командой:
chmod 755 /<путь_к_папке>
==== Включаем и запускаем vsftpd ====
systemctl enable vsftpd.service
systemctl start vsftpd.service
==== Готово. ====
Теперь каждый пользователь сервера сможет получать доступ к своей домашней папке по протоколу FTP.
[[#top|⇑ Наверх ⇑]]