FTP over SSL (FTPS) в Windows Server 2012 R2

FTP over SSL (FTPS) в Windows Server 2012 R2

Одним из основных недостатков протокола FTP для передачи файлов – отсутствие средств защиты и шифрования передаваемых данных. Имя и пароль пользователя при подключении к FTP серверу также передаются в открытом виде. Для передачи данных (особенно по публичным каналам связи) рекомендуется использовать более безопасные протоколы, такие как FTPS или SFTP. Рассмотрим, как настроить FTPS сервер на базе Windows Server 2012 R2.

Протокол FTPS (FTP over SSL/TLS, FTP+SSL) – является расширением стандартного протокола FTP, но соединение между клиентом и сервером защищается (шифруется) с помощью протоколов SSL /TLS. Как правило, для подключения используется тот же самый порт 21.

Примечание. Не стоит путать FTPS с SFTP (Secure FTP или SSH FTP). Последний является расширением протокола SSH, не имеющий с FTP ничего общего.

Поддержка FTP over SSL появилась в IIS 7.0 (Windows Server 2008). Для работы сервера FTPS, на веб сервере IIS понадобится установить SSL сертификат.

Установка роли FTP сервера

Установка роли FTP сервера на Windows Server 2012 проблем не вызывает и уже не раз описана.

Генерация и установка на IIS SSL сертификата

Затем открываем консоль IIS Manager, выбираем сервер и переходим в раздел Server Certificates.

Сертификаты сервера в консоли IISЭтот раздел позволяет импортировать сертификат, создать запрос на получение сертификата, обновить сертификат или создать самоподписанный сертификат. В целях демонстрации мы остановимся на самоподписанном сертфикате (его также можно создать с помощью командлета New-SelfSifgnedCertificate). При обращении к сервису будет появляться предупреждение о том, что сертификат выдан недоверенным CA, чтобы отключить это предупреждение для данного сертификата, его можно добавить в доверенные через GPO.

Выбираем Create Self-Signed Certificate.

Создать самоподписанный сертификат в IISВ мастере создания сертификата указываем его имя и выбираем тип сертификата Web Hosting.

Сертификат FTP over SSLСамоподписанный сертификат должен появиться в списке доступных сертификатов. Срок действия сертификата – 1 год.

SSL сертификаты в консоли IIS

Создаём FTP сайт с поддержкой SSL

Далее нужно создать FTP сайт. В консоли IIS щелкаем ПКМ по узлу Sites и создаем новый FTP сайт (Add FTP).

Создать FTP сайт в IISУказываем имя и путь к корневому каталогу FTP сайта (у нас каталог по-умолчанию C:inetpubftproot).

C:inetpubftprootНа следующем шаге мастера в разделе SSL сертификатов выбираем созданный нами сертификат.

Выбор SSL сертфиката для FTPОсталось выбрать тип аутентификации и права доступа пользователей.

На этом завершаем работу мастера. По умолчанию SSL защита является обязательной и используется для шифрования как команд управления так и и передаваемых данных.

FTPS и межсетевые экраны

При использовании протокола FTP используется 2 разных TCP соединения, по одному передаются команды, по другому данные. Для каждого канала данных открывается свой TCP порт, номер которого выбирается сервером или клиентом. Большинство файерволов позволяют инспектировать FTP трафик и, анализируя его, автоматически открывать нужные порты. При использовании защищенного FTPS передаваемые данные закрыты и не поддаются анализу, в результате межсетевой экран не может определить какой порт нужно открыть для передачи данных.

Чтобы не открывать снаружи к FTPS серверу весь диапазон TCP портов 1024-65535, можно принудительно указать FTP серверу диапазон используемых адресов. Диапазон указывается в настройках сайта IIS в разделе FTP Firewall Support.

После изменения диапазона портов нужно перезапустить сервис (iisreset).

FTP Firewall SupportВо встроенном файерволе Windows за входящий трафик будут отвечать правила:

  • FTP Server (FTP Traffic-In)
  • FTP Server Passive (FTP Passive Traffic-In)
  • FTP Server Secure (FTP SSL Traffic-In)

Соответственно на внешнем межсетевом экране придется открыть порты 21, 990 и 50000-50100 (выбранный нами диапазон портов).

Тестирование подключения FTP over SSL

Для тестирования подключения по FTPS воспользуемся клиентом Filezilla.

  1. Запустите FileZilla (или любой другой клиент с поддержкой FTPS).
  2. Нажмите File > Site Manager, и создайте новое подключение (New Site).FileZilla подключение по ftps
  3. Укажите адрес FTPS сервера (Host), тип протокола (Require explicit FTP over TLS), имя пользователя (поле User) и требование требовать ввод пароля для авторизации (Ask for password)
  4. Нажимаем кнопку Connect и вводим пароль пользователя.
  5. Должно появиться предупреждение о недоверенном сертификате (при использовании самоподписанного сертификата). Подтверждаем соединение.ftps неизвестный сертфикат
  6. Соединение должно установиться, а в журнале должны появиться строки:

    Status: Initializing TLS...
    Status: Verifying certificate...
    Status: TLS connection established.

  7. Это означает, что безопасное соединение установлено, и вы можете передавать файлы по протоколу FTPS

Qiziqarli malumotlar
FTP over SSL (FTPS) в Windows Server 2012 R2