Введение
FTP (File Transfer Protocol) — это классический протокол передачи файлов, который широко используется для загрузки и управления файлами на удаленных серверах. В этом руководстве мы рассмотрим процесс установки и настройки FTP-сервера на Linux.
Установка FTP-сервера
Для установки FTP-сервера в зависимости от дистрибутива Linux можно использовать разные пакеты.
Установка VSFTPD (Very Secure FTP Daemon) — рекомендуется
sudo apt update && sudo apt install vsftpd -yБлок ниже — только для CentOS/AlmaLinux/Rocky. На Ubuntu/Debian его не выполняйте.
sudo yum install vsftpd -yПосле установки сервис нужно запустить и добавить в автозагрузку:
sudo systemctl start vsftpd
sudo systemctl enable vsftpdБазовая настройка VSFTPD
Открываем конфигурационный файл:
sudo nano /etc/vsftpd.confИзменяем или добавляем следующие параметры:
anonymous_enable=NO # Запрещаем анонимный доступ
local_enable=YES # Разрешаем локальным пользователям вход
write_enable=YES # Разрешаем запись
chroot_local_user=YES # Ограничиваем доступ пользователей их домашним каталогом
allow_writeable_chroot=YES # На Ubuntu 22.04 нужен вместе с chroot_local_user=YESСохраняем и перезапускаем FTP-сервер:
sudo systemctl restart vsftpdСоздание FTP-пользователя
Создадим нового пользователя для FTP-доступа:
sudo adduser --disabled-password --gecos "" ftpuser
sudo passwd ftpuser # задайте пароль вручнуюНазначим правильные права доступа:
sudo chown ftpuser:ftpuser /home/ftpuserОткрытие портов в брандмауэре
Разрешаем трафик для FTP в iptables или firewalld.
Ubuntu/Debian (UFW)
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcpCentOS/RHEL (firewalld)
Блок ниже — только для CentOS/AlmaLinux/Rocky. На Ubuntu/Debian его не выполняйте.
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reloadПроверка работы FTP
Проверить доступность FTP-сервера можно с помощью команды:
sudo apt install ftp -y # или: sudo apt install lftp -y
ftp localhostЛибо с удаленного компьютера:
ftp your_server_ipДополнительные настройки
Ограничение пользователей в определенной директории
Создаем каталог для FTP и меняем владельца:
sudo mkdir -p /srv/ftp
sudo chown ftpuser:ftpuser /srv/ftpРедактируем конфигурацию:
local_root=/srv/ftpВключение пассивного режима FTP
Добавляем в /etc/vsftpd.conf:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000Открываем указанный диапазон портов:
sudo ufw allow 40000:50000/tcpЗаключение
Теперь ваш FTP-сервер готов к работе. Вы можете подключаться к нему с любого FTP-клиента, например, FileZilla. Если возникли проблемы, проверьте логи vsftpd с помощью:
sudo journalctl -u vsftpd --no-pager💡 Рекомендация: Для удобного и безопасного управления файлами рекомендуем использовать SFTP вместо FTP, так как он работает поверх SSH и шифрует данные.