FTP (File Transfer Protocol) — один из самых распространенных способов передачи файлов между компьютерами по сети. В этой статье мы рассмотрим, как развернуть FTP-сервер на Linux, используя популярный серверный пакет vsftpd (Very Secure FTP Daemon) и как настроить данный сервер с точки зрения обеспечения безопасности.
Шаг 1: Установка FTP сервера (vsftpd)
vsftpd — это безопасный и стабильный FTP-сервер, который широко используется для развертывания FTP на Linux-системах.
Первым делом необходимо установить vsftpd:
sudo apt update
sudo apt install vsftpd -y
sudo yum install vsftpd -y
Шаг 2: Настройка vsftpd
После установки необходимо произвести настройку через конфигурационный файл: vsftpd.conf
sudo nano /etc/vsftpd.conf
Отредактируйте шаблон файла следующим образом:
local_enable=YES
write_enable=YES
chroot_local_user=YES
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
local_enable - разрешение пользователям системы входить через FTP
write_enable - разрешение на загрузку файлов через FTP
chroot_local_user - ограничение пользователей в пределах домашней директории
Настройки безопасности:
pasv_enabl, pasv_min_port, pasv_max_port - включает пассивный режим для FTP-сервера и настраивает минимальный и максимальный порт на котором ftp-сервер будет ожидать подключения.
В пассивном режиме FTP-клиент устанавливает соединение с сервером через диапазон портов, которые открывает сервер. Это особенно полезно, когда клиент находится за NAT или брандмауэром, так как клиент инициирует оба соединения (управляющее и для передачи данных), что облегчает работу через такие сети. Активный режим, напротив, требует, чтобы сервер устанавливал соединение для передачи данных, что может блокироваться брандмауэрами.
Шаг 3: Создание FTP пользователя
Для примера создадим одного пользователя нашего ftp-сервера, который будет им пользоваться. В реальности, проще написать скрипт для настройки пользователей и автоматизировать эту задачу для создания большого числа пользователей.
Создаем пользователя через adduser и задаем ему пароль:
sudo adduser ftpuser
Настройки безопасности:
sudo mkdir -p /home/ftpuser/ftp/files
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
Команды выше необходимы для предоставления пользователю доступа к директории на нашем ftp-сервере и возможности ему загружать файлы.
Шаг 4: Запуск и настройка службы
После того как все настройки завершены, нам необходимо запустить и настроить службу vsftpd для автоматического запуска при старте системы.
Запуск сервера:
sudo systemctl start vsftpd
Включение автозапуска:
sudo systemctl enable vsftpd
Проверить статус службы можно командой:
sudo systemctl status vsftpd
Шаг 5: Настройка брандмауэра
Настройка производится только если у Вас активен брандмауэр.
Открываем необходимые порты для FTP:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 10000:10100/tcp
Шаг 6: Тестирование FTP сервера
После успешной настройки и запуска, Вы можете протестировать подключение к FTP-серверу с любого клиента, например, с помощью утилиты ftp или графических клиентов вроде FileZilla.
ftp <IP_адрес_сервера>
Вводим имя пользователя и пароль, созданные на Шаге 3.
Заключение
Сегодян мы с Вами успешно установили и настроили FTP-сервер на Linux с использованием vsftpd. Факультативно, Вы можете расширять конфигурацию для более сложных сценариев, таких как использование SSL для шифрования данных или ограничение доступа по IP, что еще больше усилит безопасность ftp-сервера. Также не забывайте поддерживать vsftpd в актуальном состоянии, производите регулярные обновления и Вашему счастью не будет предела.