Раздел помощи SpaceWeb

Как установить FTP-сервер на Ubuntu

14 май, 2024

Что такое FTP-сервер

FTP-сервер – это тип сервера, который предназначен для передачи файлов между компьютерами в сети с использованием протокола передачи файлов (FTP). FTP – один из старейших сетевых протоколов, который был разработан для безопасной и эффективной передачи данных между серверами и клиентскими системами через интернет или локальные сети.

Далее в руководстве мы сосредоточимся на его разновидности – vsftpd

vsftpd (Very Secure FTP Daemon) – это FTP-сервер для UNIX-подобных систем, а также одно из наиболее популярных решений для настройки FTP-сервера из-за его простоты, безопасности и производительности. 

Основные особенности vsftpd:

  • vsftpd менее подвержен уязвимостям благодаря своей архитектуре и ограниченному количеству опций, что снижает риск неправильной настройки. Сервер использует изолированные процессы и chroot-среды для увеличения уровня безопасности.
  • vsftpd известен своей высокой скоростью передачи данных и масштабируемостью. Он может обрабатывать большое количество соединений эффективно и стабильно.
  • vsftpd позволяет использовать виртуальные аккаунты, что удобно для управления множеством пользователей без создания реальных учетных записей на сервере.
  • vsftpd предлагает широкие возможности настройки через файл конфигурации, позволяя администраторам точно настроить работу сервера под свои нужды.
  • vsftpd поддерживает шифрование сессий через SSL/TLS, обеспечивая безопасную передачу данных и защиту от различных видов атак.

Установка FTP-сервера

  1. Откройте терминал на вашем сервере Ubuntu и выполните следующую команду для установки vsftpd:
sudo apt update 
sudo apt install vsftpd

  1. После установки FTP-сервер начнёт работу. Чтобы проверить, что сервер действительно запущен, можно воспользоваться следующей командой для проверки статуса сервиса:
sudo systemctl status vsftpd 

  1. Чтобы сервер автоматически запускался при старте системы, его нужно добавить в список автозагрузки:
sudo systemctl enable vsftpd

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

Откройте основной конфигурационный файл vsftpd для редактирования:

sudo nano /etc/vsftpd.conf 

В этом файле вы найдете множество параметров, которые можно настроить в зависимости от ваших нужд. Например, вы можете:

  1. Настроить работу сервера по IPv4:
listen=YES
listen_ipv6=NO

  1. Запретить доступ анонимным пользователям:
anonymous_enable=NO

  1. Разрешить доступ локальным пользователям:
local_enable=YES

  1. Разрешить пользователям работать с файлами:
write_enable=YES

  1. Настроить права для новых файлов:
local_umask=022

  1. Включить сообщения при входе в директорию:
dirmessage_enable=YES

  1. Настроить использование локального времени на сервере:
use_localtime=YES

  1. Подключить логирование операций:
xferlog_enable=YES

  1. Настроить передачу данных по 20 порту:
connect_from_port_20=YES

  1. Указать директорию для хранения логов:
xferlog_file=/var/log/vsftpd.log

  1. Задать стандартный формат логов:
xferlog_std_format=YES

  1. Ограничить доступ пользователей к их домашним каталогам:
chroot_local_user=YES
allow_writeable_chroot=YES

  1. Включить поддержку авторизации PAM:
pam_service_name=vsftpd

  1. Разрешить вход только пользователям из списка:
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

После внесения всех необходимых изменений сохраните файл и закройте редактор.

Чтобы применить изменения, перезапустите сервис vsftpd:

sudo systemctl restart vsftpd

Убедитесь, что сервер работает с новыми настройками, проверив его статус:

sudo systemctl status vsftpd

Подключение защищённого соединения SSL/TLS

  1. Для начала вам нужно сгенерировать самоподписанный SSL-сертификат, который будет использоваться для шифрования соединений. 

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

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem 

Эта команда создаст RSA ключ и сертификат с сроком действия один год. Вам предложат ввести информацию о сертификате. 

  1. Откройте файл конфигурации vsftpd для внесения изменений, связанных с SSL:
sudo nano /etc/vsftpd.conf 

  1. В файле конфигурации найдите или добавьте следующие строки, указывающие на местоположение вашего сертификата и приватного ключа:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem 

  1. Для активации SSL-шифрования добавьте или измените следующую строку в файле конфигурации:
ssl_enable=YES 

  1. Сохраните изменения в файле конфигурации, используя комбинацию клавиш CTRL+S
  2. Затем закройте редактор CTRL+X.
  3. Чтобы изменения вступили в силу, необходимо перезапустить FTP-сервер. Выполните следующую команду:
sudo systemctl restart vsftpd 

Теперь ваш FTP-сервер настроен на использование защищенного SSL/TLS соединения, что значительно повышает безопасность передачи данных между сервером и клиентами.

Создание FTP-пользователей и выдача доступа

Создание и добавление новых пользователей к FTP-серверу

Если вам нужно создать новых пользователей и предоставить им доступ к FTP, выполните следующие действия:

  1. Для начала создайте нового пользователя на сервере, используя следующую команду. 
sudo useradd -m username 

Где «username» замените на выбранное имя пользователя.

Ключ -m гарантирует создание домашнего каталога для нового пользователя.

  1. Установите пароль для нового пользователя с помощью следующей команды:
sudo passwd username 

Где «username» замените на выбранное имя пользователя.

  1. Введите и подтвердите пароль.
  2. Добавьте пользователя в /etc/vsftpd.userlist, чтобы разрешить ему доступ к FTP:
echo "username" | sudo tee -a /etc/vsftpd.userlist

Добавление существующих пользователей к FTP-серверу

Если у вас уже есть пользователи на сервере, которым вы хотите предоставить доступ к FTP, выполните следующие шаги:

  1. Откройте файл /etc/vsftpd.userlist, где будут перечислены пользователи с доступом к FTP.
sudo nano /etc/vsftpd.userlist 

  1. Введите имя каждого пользователя, которому вы хотите разрешить доступ, по одному имени на строку.
  2. Сохраните изменения, нажав CTRL+S. 
  3. Закройте редактор с помощью сочетания клавиш CTRL+X.

Теперь у всех указанных в файле пользователей есть доступ к FTP.

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

Для работы FTP-сервера и связанных с ним сервисов вам потребуется открыть следующие порты:

  1. Порт 20 (FTP-DATA):
sudo ufw allow 20/tcp 

Используется для передачи данных в активном режиме FTP.

  1. Порт 21 (FTP):
sudo ufw allow 21/tcp 

Стандартный порт для подключения к FTP-серверу.

  1. Порт 22 (SSH):
sudo ufw allow OpenSSH 

SSH используется для безопасного доступа к серверу, включая SFTP.

  1. Порт 990 (FTPS):
sudo ufw allow 990/tcp 

Порт для FTP через SSL, известный как FTPS.

  1. Диапазон портов 40000-50000:
sudo ufw allow 40000:50000/tcp 

Подходит для пассивного режима FTP, где сервер информирует клиента о порте, который следует использовать для передачи данных.

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

sudo ufw disable sudo ufw enable 

Это временно отключит брандмауэр и снова включит его, чтобы все внесённые изменения применились.

После перезагрузки проверьте статус UFW, чтобы убедиться, что все необходимые порты открыты:

sudo ufw status 

Эта команда отобразит список всех активных правил UFW, включая разрешенные порты и протоколы, обеспечивая ясность в отношении текущей конфигурации безопасности вашего сервера.

Такая настройка брандмауэра обеспечит необходимый уровень безопасности для корректной работы вашего FTP-сервера на Ubuntu.