Что такое FTP-сервер
Рассказываем о преимуществах и принципах работы файлового сервера и FTP-протокола.
FTP-сервер (файловый сервер) — это компьютер, использующийся для передачи данных по протоколу FTP. С помощью него сервер обрабатывает запросы клиентов, определяет их права, разрешая скачивать или загружать файлы. Клиент же может управлять передачей данных, отправляя специальные команды.
Применение FTP-сервера
Эффективный обмен данными. В отличие от протокола HTTP, FTP передает только файлы, без служебной информации. Как следствие: данные передаются быстрее. Поэтому FTP-сервер — это распространенное решение для удаленного обмена данными между компьютерами. Проще говоря, его можно использовать как хранилище и файлообменник.
Резервное копирование данных. Помимо передачи файлов, FTP-серверы также применяют как средство резервного копирования данных. В зависимости от задачи FTP-серверы могут послужить недорогим и эффективным решением. Чтобы понять, при чем здесь резервное копирование, важно разобраться в принципе работы протокола.
Что такое протокол FTP и как он работает
Наиболее подробно работа FTP-протокола описана в отдельной статье. Ниже выделим основные принципы.
FTP-протокол (File Transport Protocol, протокол передачи файлов) — средство прямой отправки файлов по сети между отправителем (сервером) и получателем (клиентом). В модели OSI считается протоколом прикладного уровня.
FTP использует два различных канала данных: командный канал и канал данных.
Первый передает сообщения о действиях и ответах от сервера клиенту и наоборот. Второй канал передает сами файлы, без служебной информации и команд.
Передача файлов по FTP
FTP поддерживает два режима работы: активный и пассивный. От выбора зависит алгоритм установки сессии.
Активный режим
- Клиент устанавливает связь с сервером и отправляет запрос с нестандартного порта P (P > 1024) на 21 порт сервера.
- Сервер генерирует и отправляет ответ на порт P клиента.
- Сервер устанавливает связь для передачи данных клиенту через 20 порт. При этом данные отправляются на P+1 порт клиента.
Если на пути передачи находится межсетевой экран, использовать активный режим невозможно. Либо потребуется постоянно перенастраивать правила на межсетевом экране.
Пассивный режим
- Клиент соединяется с сервером и через 21 порт сообщает, что необходимо работать в пассивном режиме. Запрос отправляется с нестандартного порта P (P > 1024).
- Сервер определяет нестандартный порт X для канала передачи данных (X > 1024) и посылает на порт P ответ с номером порта X.
- Клиент устанавливает связь для передачи данных через порт 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. Откройте панель управления и перейдите в раздел Программы и компоненты:
2. Во вкладке слева выберите пункт Включение или отключение компонентов Windows.
3. Раскройте IIS, FTP-сервер и поставьте галочки напротив Расширяемость FTP и Служба FTP. Также проверьте папку Средства управления веб-сайтом, поставьте галочки напротив пунктов Консоль управления IIS и Служба управления IIS:
4. Далее FTP-сервер необходимо настроить. В панели управления нужно выбрать раздел Администрирование.
5. В следующем перечне откройте Диспетчер служб IIS:
6. Разверните список слева, кликнув ПКМ на раздел Сайты, выберите Добавить FTP-сайт:
7. В следующем окне введите название сервера и выберите путь к папке:
8. Выберите IP-адрес для сервера:
9. Выберите правила доступа — с проверкой логина и пароля или анонимный:
10. Далее настройте брандмауэр 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-адрес для подключения пользователей:
Настройка проброса портов на роутере
Для работы FTP-серверу требуется два типа портов: управляющий (21 по умолчанию) и порты для передачи данных.
Для управляющего порта в конфигурации роутера введите статический адрес сервера, во внешних и внутренних портах укажите порт 21:
По аналогии создайте второе правило, но во внешних и внутренних портах укажите диапазон используемых сервером портов.
Как подключиться к серверу FTP
Через проводник Windows
Введите в адресную строку проводника путь до сервера: ftp://<имя_хоста>
. В появившемся окне введите логин и пароль пользователя. Готово — в окне проводника должны появиться файлы и директории FTP.
Через браузер
Инструкция похожа на предыдущую. В адресной строке браузера впишите путь до сервера: ftp://<имя_хоста>
. В появившемся окне введите логин и пароль пользователя. После вы получите доступ к содержимому FTP-сервера.
Через FileZilla Client
Загрузите FileZilla Client на устройство и через менеджер сайтов добавьте FTP-сервер. В качества хоста укажите IP-адрес FTP-сервера и порт. Ниже введите логин пользователя и пароль. Нажмите кнопку Соединиться — в левом окне программы отобразится содержимое FTP-сервера.
Заключение
FTP-сервер относительно прост для настройки и использования. Он позволяет быстро скачивать и загружать большие объемы данных, однако не может обеспечить необходимый уровень безопасности. Поэтому необходимо использовать его усовершенствованные версии, такие как SFTP или FTPS. Хотите узнать о них подробнее? Следите за обновлениями в Академии Selectel.