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