Как развернуть FTP-сервер на Debian 12

FTP (File Transfer Protocol) — один из старейших и наиболее простых способов передачи файлов между компьютерами в сети. Несмотря на появление современных альтернатив, таких как SFTP, FTP по-прежнему широко используется благодаря лёгкости настройки и поддержке практически всеми операционными системами. В статье разберём, как развернуть FTP-сервер на VPS, работающем под управлением Debian 12.

Как развернуть FTP-сервер на Debian 12

Наиболее простой способ создания FTP-сервера на Debian 12 — установить и настроить vsftpd (Very Secure FTP Daemon). Это быстрый, безопасный и стабильный FTP-сервер с открытым исходным кодом, широко используемый в системах на базе Linux. Он поддерживает и стандартный FTP, и безопасные протоколы передачи файлов, такие как FTPS.

Установка демона vsftpd

Как всегда перед установкой нового софта обновите списки пакетов в системе:

$ sudo apt update

После чего проинсталлируйте непосредственно vsftpd:

$ sudo apt install vsftpd

По окончании установки запустите vsftpd и включите данную службу в автозагрузку:

$ sudo systemctl enable --now vsftpd

Чтобы убедиться в том, что демон vsftpd установлен и запущен корректно, проверьте состояние службы:

$ systemctl status vsftpd

Просмотр состояния службы vsftpd - Как развернуть FTP-сервер на Debian

Настройка FTP-сервера

Далее необходимо создать пользователя, под именем которого впоследствии будет осуществляться подключение к FTP-серверу. В нашем примере таким пользователем будет your-ftp-user:

$ sudo useradd your-ftp-user

После чего придумайте и укажите пароль для данного пользователя:

$ sudo passwd your-ftp-user

Затем создайте каталог, который будет использоваться для доступа к FTP-серверу:

$ sudo mkdir /your-ftp-catalog

Данный каталог установите для ранее созданного пользователя в качестве домашней директории:

$ sudo usermod -d /your-ftp-catalog your-ftp-user

После чего измените владельца и группу каталога /your-ftp-catalog на пользователя your-ftp-user и группу your-ftp-user:

$ sudo chown your-ftp-user:your-ftp-user /your-ftp-catalog

На следующем шаге необходимо внести некоторые изменения в конфигурацию демона vsftpd. Для чего перейдите в каталог /etc:

$ cd /etc

И откройте для редактирования конфигурационный файл vsftpdvsftpd.conf:

$ sudo nano vsftpd.conf

В данном файле приведите нижеперечисленные параметры к следующему виду:

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
connect_from_port_20=YES
use_localtime=YES
xferlog_enable=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

Данные параметры, указанные в конфигурационном файле, отвечают за следующий функционал:

  • listen=YES — включает работу FTP-сервера в режиме автономного демона;
  • listen_ipv6=NO — отключает использование IPv6;
  • anonymous_enable=NO — отключает доступ анонимных пользователей;
  • local_enable=YES — разрешает подключение локальных учётных записей системы;
  • write_enable=YES — разрешает операции записи на сервере;
  • dirmessage_enable=YES — включает отображение сообщений из файла .message при входе в каталог;
  • connect_from_port_20=YES — включает использование порта 20 для передачи данных в режиме активного FTP;
  • use_localtime=YES — активирует использование локального времени системы вместо UTC для отметок времени в логах и файлах;
  • xferlog_enable=YES — включает ведение логов загрузок и скачиваний;
  • xferlog_std_format=YES — включает стандартный формат логов для xferlog;
  • chroot_local_user=YES — изолирует локальных пользователей в их домашних каталогах;
  • allow_writeable_chroot=YES — разрешает использовать каталоги, доступные для записи, в качестве корневых;
  • secure_chroot_dir=/var/run/vsftpd/empty — указывает на директорию, которая используется демоном vsftpd для безопасного выполнения операций, требующих chroot, прежде чем пользователь будет авторизован;
  • pam_service_name=vsftpd — указывает имя службы PAM (Pluggable Authentication Module), используемой для аутентификации. Другими словами, сервер будет использовать настройки из файла /etc/pam.d/vsftpd для управления аутентификацией пользователей.

Также в конфигурационном файле задайте диапазон портов, например 59000-60000, которые FTP-сервер будет использовать для установления пассивных FTP-соединений при передаче данных. Это может быть важно как для настройки безопасности сервера, так и для контроля доступа к сети. Чтобы сделать это, добавьте следующие строки в конец файла vsftpd.conf:

pasv_enable=YES
pasv_min_port=59000
pasv_max_port=60000

Затем закройте файл, сохранив внесённые в него изменения, и перезапустите демон vsftpd:

$ sudo systemctl restart vsftpd

Настройка брандмауэра

Если на вашем VPS установлен и настроен брандмауэр UFW, то вам необходимо будет внести изменения в его настройки.

В частности, нужно добавить в брандмауэр разрешающие правила для TCP-портов 20 и 21. Порт 20 используется при передаче данных в активном режиме FTP. Порт 21 — это стандартный управляющий порт FTP. Он используется для управления соединением и передачи команд между клиентом и сервером. Через этот порт происходит установление и поддержание сессии FTP.

$ sudo ufw allow 20/tcp

$ sudo ufw allow 21/tcp

Дополнительно необходимо добавить разрешающее правило для TCP-портов, используемых для установления пассивных FTP-соединений. В нашем примере мы установили для данных портов диапазон 59000-60000.

$ sudo ufw allow 59000:60000/tcp

Проверка подключения

Чтобы проверить работоспособность FTP-сервера, можно использовать, например, такой FTP-клиент, как FileZilla. В интерфейсе FileZilla введите в соответствующие поля IP-адрес FTP-сервера и имя пользователя, имеющего права на получение доступа к FTP-серверу. После чего нажмите Быстрое соединение.

Подключение к FTP-серверу при помощи FileZilla

Затем введите пароль пользователя и нажмите ОК.

Пароль пользователя при подключении через FileZilla

После подключения левая часть интерфейса FileZilla будет содержать ваши локальные файлы и директории, а раздел справа — файлы и каталоги, размещённые на FTP-сервере.

Разделы интерфейса FileZilla при подключении к FTP-серверу

Также проверку подключения к FTP-серверу можно выполнить из командной строки. Для чего используйте следующую команду, в которой замените X.X.X.X на IP-адрес вашего FTP-сервера:

ftp X.X.X.X

Подключение к FTP-серверу через командную строку - Как развернуть FTP-сервер на Debian

Данная команда работает как в Windows, так и в операционных системах семейства Linux.

Вам также может понравиться