FTP-сервер – что такое, создание и настройка, подключение к файловому протоколу

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

Андрей Салита
Андрей Салита Архитектор ИБ
15 сентября 2023

Рассказываем о преимуществах и принципах работы файлового сервера и FTP-протокола.

Изображение записи

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

Применение FTP-сервера

Эффективный обмен данными. В отличие от протокола HTTP, FTP передает только файлы, без служебной информации. Как следствие: данные передаются быстрее. Поэтому FTP-сервер — это популярное решение для удаленного обмена данными между компьютерами. Проще говоря, его можно использовать как хранилище и файлообменник.  

Резервное копирование данных. Помимо передачи файлов, FTP-серверы также применяют как средство резервного копирования данных. В зависимости от задачи FTP-серверы могут послужить недорогим и эффективным решением. Чтобы понять, при чем здесь резервное копирование, важно разобраться в принципе работы протокола.

Что такое протокол FTP и как он работает

Наиболее подробно работа FTP-протокола описана в отдельной статье. Ниже выделим основные принципы.

FTP-протокол (File Transport Protocol, протокол передачи файлов) — средство прямой отправки файлов по сети между отправителем (сервером) и получателем (клиентом). В модели OSI считается протоколом прикладного уровня.

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

Первый передает сообщения о действиях и ответах от сервера клиенту и наоборот. Второй канал передает сами файлы, без служебной информации и команд.

Передача файлов по FTP

FTP поддерживает два режима работы: активный и пассивный. От выбора зависит алгоритм установки сессии. 

Активный режим

  1. Клиент устанавливает связь с сервером и отправляет запрос с нестандартного порта P (P > 1024) на 21 порт сервера.
  2. Сервер генерирует и отправляет ответ на порт P клиента.
  3. Сервер устанавливает связь для передачи данных клиенту через 20 порт. При этом данные отправляются на P+1 порт клиента. 

Если на пути передачи находится межсетевой экран, использовать активный режим невозможно. Либо потребуется постоянно перенастраивать правила на межсетевом экране. 

Пассивный режим

  1. Клиент соединяется с сервером и через 21 порт сообщает, что необходимо работать в пассивном режиме. Запрос отправляется с нестандартного порта P (P  > 1024).
  2. Сервер определяет нестандартный порт X для канала передачи данных (X > 1024) и посылает на порт P ответ с номером порта X.
  3. Клиент устанавливает связь для передачи данных через порт P+1 на порт X.

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

Безопасность

При подключении к серверу проверяются клиентские учетные данные, позволяя узнать подлинность пользователя. Но простой авторизации и аутентификации недостаточно для обеспечения достаточной безопасности, если вы работаете с конфиденциальной информацией.

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

Чтобы этого избежать, можно использовать альтернативные протоколы — SFTP, FTPS или FTPES. Шифрование FTP с помощью этих протоколов обеспечивает защиту данных, ограничивая возможности злоумышленников — например, прослушку или кражу данных. 

FTPS- и SFTP-протоколы

FTPS (File Transfer Protocol + SSL) — этот тот же протокол FTP, но с функционалом по созданию зашифрованных сессий с помощью протокола SSL/TLS.  

SFTP (Secure File Transport Protocol) — отдельный протокол, основанный не на FTP, а протоколе SSH. Он полностью шифрует трафик, вместе с данными об аутентификации. 

Преимущества и недостатки FTP-сервера

Недостатки сервера FTP

  • FTP не обеспечивает безопасность. Все файлы отправляются открытым текстом и подключившийся к каналу злоумышленник может полностью их прочесть.
  • Серверы передачи файлов не проверяют источник отправки на подлинность. Это делает сервер уязвимым перед хакерскими атаками вроде DDoS.  
  • Сложно отслеживать действия пользователей, загруженные и скаченные файлы с сервера. 

Плюсы сервера FTP

  • FTP умеет быстро передавать большие объемы данных. Из-за отсутствия шифрования и записи системных данных процесс передачи быстрее. 
  • С помощью FTP одновременно можно передавать несколько разных файлов или каталогов. 
  • Передача может быть возобновлена. Если передача файла прерывается, можно не беспокоиться о потере прогресса. FTP поддерживает функцию бесшовного восстановления — для этого используется команда rest.

Как создать и настроить FTP-сервер

Встроенные инструменты Windows

Создать FTP-сервер можно с помощью встроенных инструментов Windows: 

1. Откройте панель управления и перейдите в раздел Программы и компоненты:

Настройка в панели управления Windows
Панель управления Windows.

2. Во вкладке слева выберите пункт Включение или отключение компонентов Windows.

3. Раскройте IIS, FTP-сервер и поставьте галочки напротив Расширяемость FTP и  Служба FTP. Также проверьте папку Средства управления веб-сайтом, поставьте галочки напротив пунктов Консоль управления IIS и Служба управления IIS:

Настройка компонентов Windows. 
После применения изменений сервер начнет работать.
Настройка компонентов Windows. 
После применения изменений сервер начнет работать.

4. Далее FTP-сервер необходимо настроить. В панели управления нужно выбрать раздел Администрирование.

5. В следующем перечне откройте Диспетчер служб IIS.

Диспетчер служб
Диспетчер служб IIS в разделе администрирования.

6. Разверните список слева, кликнув ПКМ на раздел Сайты, выберите Добавить FTP-сайт.

Диспетчер служб IIS, добавление FTP-сайта.
Диспетчер служб IIS, добавление FTP-сайта.

7. В следующем окне введите название сервера и выберите путь к папке.

Настройка имени FTP-сайта.
Настройка имени FTP-сайта.

8. Выберите IP-адрес для сервера.

Привязка IP-адреса для сервера и выбор сертификата.
Привязка IP-адреса для сервера и выбор сертификата.

9. Выберите правила доступа — с проверкой логина и пароля или анонимный.

Выбор проверки подлинности.
Выбор проверки подлинности.

10. Далее настройте брандмауэр Windows — для этого его нужно выбрать в панели управления.

Панель управления Windows.
Панель управления Windows.

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

Настройка правил входящих подключений.
Настройка правил входящих подключений.

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

1. В панели управления откройте раздел Администрирование и выберите пункт Управление компьютером.

Управление компьютером в разделе администрирования.
Управление компьютером в разделе администрирования.

2. Откройте пункт Локальные пользователи, раскройте папку Группы и кликните на Создать группу.

3. Добавьте в группу конкретных пользователей или создайте новых, кликнув по полю Локальные пользователи.

FileZilla Server

Создать FTP-сервер можно с помощью сторонних утилит. Наиболее простой, распространенный и удобный — FileZilla Server. Это решение также поддерживает SSL, что гарантирует безопасность передачи данных.

1. Для начала работы загрузите FileZilla Server. При установке выберите порт администратора или воспользуйтесь предложенным.

Выбор порта администратора и создание пароля.
Выбор порта администратора и создание пароля.

2. После завершения установки запустите приложение и подключитесь к серверу в качестве администратора. Для этого используйте имя и пароль, которые вы ввели во время установки.

3. Откройте Server-Configure. В Server Listeners можно указать адреса, которые будет прослушивать сервер. 

4. В разделе Rights management выберите Users и создайте нового пользователя.

Добавление пользователя.
Добавление пользователя.

5. В Virtual path впишите виртуальный путь до каталога. Чтобы сразу попасть в корень папки, введите обратный слеш. В Native path укажите полный путь к папке с файлами.

Виртуальный путь до каталога
Настройка данных пользователя, выбор папки для доступа.

6. Перейдите в раздел Network Configuration wizard — в нем можно указать диапазон портов, на которых будет работать сервер, а также установить внешний IP-адрес для подключения пользователей.

Network Configuration Wizard
Как перейти в Network Configuration Wizard.
Указываем IP-адрес сервера.
Указываем IP-адрес сервера.

Настройка проброса портов на роутере

Для работы FTP-серверу требуется два типа портов: управляющий (21 по умолчанию) и порты для передачи данных.

Для управляющего порта в конфигурации роутера введите статический адрес сервера, во внешних и внутренних портах укажите порт 21.

Настройка портов на роутере netis. Для других устройств алгоритм похож.
Настройка портов на роутере netis. Для других устройств алгоритм похож.

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

Как подключиться к серверу FTP

Через проводник Windows

Введите в адресную строку проводника путь до сервера: ftp://<имя_хоста>. В появившемся окне введите логин и пароль пользователя. Готово — в окне проводника должны появиться файлы и директории FTP.   

Через браузер

Инструкция похожа на предыдущую. В адресной строке браузера впишите путь до сервера: ftp://<имя_хоста>. В появившемся окне введите логин и пароль пользователя. После вы получите доступ к содержимому FTP-сервера. 

Подключение к FTP-серверу через браузер.
Подключение к FTP-серверу через браузер.

Через FileZilla Client

Загрузите FileZilla Client на устройство и через менеджер сайтов добавьте FTP-сервер. В качества хоста укажите IP-адрес FTP-сервера и порт. Ниже введите логин пользователя и пароль. Нажмите кнопку Соединиться — в левом окне программы отобразится содержимое FTP-сервера.

Добавление сервера в Filezilla Client.
Добавление сервера в Filezilla Client.

Заключение

FTP-сервер относительно прост для настройки и использования. Он позволяет быстро скачивать и загружать большие объемы данных, однако не может обеспечить необходимый уровень безопасности. Поэтому необходимо использовать его усовершенствованные версии, такие как SFTP или FTPS. Хотите узнать о них подробнее? Следите за обновлениями в Академии Selectel