Как настроить FTPS сервер на базе Windows Server 2012 R2

Posted by

Все знают или должны знать что работа через протокол FTP увеличивает риски по перехвату передаваемых аутентификационных данных, т. к. отсутствуют какие-либо средства его защиты, т. е. Имеется реальная возможность перехвата логина и пароля на подключение. Чтобы защитить Ваш FTP сервер я бы порекомендовал настроить работу FTP через SSL или использовать связку FTP через SSH (SFTP). Ладно, ранее я показал и сам использую развернутый FTP сервис, как на Windows серверных системах, таких как Server 2008 R2 & & Ubuntu Server. В самом последней системе я использую защиту, а вот как это сделать до сегодняшней заметки я не знал применительно к Windows системам, но задокумментировав все шаги по этому исправлению текущей ситуации я покажу Вам как это сделать.

В данной заметке все действия будут ориентированы на серверную систему Windows Server 2012 R2

Устанавливаем роль IIS (это будет версия: 8.5.9600.16384) с компонентами FTP см. предыдущую заметку, за исключение что для роли IIS потребуется поставить компоненты — я бы поставил все, дабы потом не искать чего не хватает. Но это мое мнение.

Win + X — Control Panel — Administrative Tools — Internet Information Service (IIS) Manager — SRV-HOST (SRV-HOST\Administrator) — Server Certificates, далее запускаю действия по созданию самоподписанного сертификата: Create Self-Signed Certificate

  • Specify a friendly name for the certificate:
  • Select a certificate store for the new certificate: выбираю Web Hosting

Такими вот простыми действиями создается Ваш первый самоподписанный сертификат сроком на один год, как это проверить, он появился в элементе настройки Server Certificates

Для FTP сервиса создан самоподписанный сертификат на 1 годТеперь если вспомнить, когда создавали Ваш первый FTP ресурс не важно на базе Windows Server 2008 R2 или Server 2012 R2 в мастере присутствовала настройка выбора, как будет осуществляться защита ресурса, но т. к. у меня не было сертификата (я тогда даже не знал насколько просто создать свой собственный самоподписанный), я выбирал: SSL: No SSL, но теперь я смело указываю, что в роли защиты использовать:

Если FTP ресурс имеется: Sites — srv-host — FTP SSL Settings —

  • SSL Certificate: выбираю FTP over SSL
  • SSL Policy: Require SSL Connections

и нажимаю Apply

Если FTP ресурса нет, то на этапе настройки безопасности все шаги выше идентичны.

Когда настройки применены должна быть надпись: The changes have been successfully saved.

Теперь проверяю, когда кто-либо подключается к FTP ресурсу, то при обычном вводе параметров подключения: ftp:\\IP&DNS в ответ получает лишь:

C:\Users\Admin>ftp IP&DNS

Связь с IP&DNS.

220 Microsoft FTP Service

Пользователь (IP&DNS:(none)): ftpuser1

534 Policy requires SSL.

Сбой входа.

Ftp>

или через утилиту telnet пробуем подключиться к FTP сервису с Windows 7 рабочей станции:

C:\Users\Admin>telnet 10.7.8.177 21

220 Microsoft FTP Service

user ftpuser1

534 Policy requires SSL.

С текущей серверной части где развернут сервис FTP:

C:\Users\Administrator>ftp 10.7.8.177

Connected to 10.7.8.177.

220 Microsoft FTP Service

User (10.7.8.177:(none)): ftpuser1

534-Policy requires SSL.

Win32 error: Access is denied.

Error details: SSL policy requires SSL for control channel.

534 End

Login failed.

Если с помощью программы FileZilla (версия: 3.25.1) происходит подключение, параметры нового соединения следующие с рабочей станции под управлением Windows 7 Pro SP1:

Пуск — Все программы — FileZilla FTP Client — FileZilla — Файл — Менеджер сайтов — Новый сайт:

  • Хост: 10.7.8.177
  • Порт: ничего не указываем
  • Протокол: FTP — Протокол передачи файлов
  • Шифрование: Требовать FTP через TLS (явный)
  • Тип входа: нормальный
  • Пользователь: ftpuser1
  • Пароль: Aa1234567@!
  • После нажимаю Соединиться

Но мой клиент FileZilla отказывается подключаться, в ответ пишет:

Ошибка GnuTLS -48: Key usage vilation in certificate has been detected.

Невозможно подключиться к серверу

А чтобы подключить с Ubuntu Trusty Server через консоль командной строки:

ekzorchik@srv-mail:~$ ftp 10.7.8.177 21

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

331 Password required

Password:

230 User logged in.

Remote system type is Windows_NT.

ftp> ls

200 PORT command successful.

125 Data connection already open; Transfer starting.

03-24-17 04:44PM <DIR> dfdf

226 Transfer complete.

ftp> quit

221 Goodbye.

Как видно подключение происходит без проблем, это если в настройках FTP ресурса стоит политика SSL Policy в значении: Allow SSL Connections, а если выставить в Require SSL Connections, то как раз происходит уведомление, что требуется подтверждение использования сертификата:

ekzorchik@srv-mail:~$ ftp 10.7.8.177 21

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

534 Policy requires SSL.

Login failed.

Remote system type is Windows_NT.

Раз так, то значит мне нужен клиент ftp для работы с сертификатами, ставлю его:

ekzorchik@srv-mail:~$ sudo apt-get install ftp-ssl -y

На заметку: устанавливая пакет ftp-ssl удаляется пакет ftp, т. е. Если это обычный ftp то подключиться уже к нему будет нельзя.

ekzorchik@srv-mail:~$ ftp-ssl 10.7.8.177

Connected to 10.7.8.177.

220 Microsoft FTP Service

Name (10.7.8.177:ekzorchik): ftpuser1

234 AUTH command ok. Expecting TLS Negotiation.

[SSL Cipher ECDHE-RSA-AES256-SHA384]

331 Password required

Password:

230 User logged in.

Remote system type is Windows_NT.

ftp> ls

200 PORT command successful.

534 Policy requires SSL.

ftp> ls

200 PORT command successful.

534 Policy requires SSL.

ftp> mkdir 1

257 "1" directory created.

ftp> quit

221 Goodbye.

Подключение с Ubuntu системы прошло успешно.

Итого делаю вывод, что сервис настроенный на Windows с поддержкой самоподписанного сертификата работает, но вот подключиться к нему можно только с Linux системы, с рабочей станции при использовании пакета FileZilla не представляется возможным, почему-то пишет ошибку:

Ошибка GnuTLS -48: Key usage vilation in certificate has been detected.

Невозможно подключиться к серверу

Повторил еще раз данную заметку, если отключаю профили брандмауэера на Server 2012 R2 то могу подключиться с Ubuntu системы через утилиту ftp-ssl, а с Windows систем подключиться не могу. Бред. Нет не бред, это косяк клиента FileZilla самой последней версии (3.25.1) по другому я бы не сказал. Если поставить раннюю версию, к примеру: 3.2.7, то при подключении: File — Site Manager — New Site

вкладка: General

  • Host: 10.7.8.177
  • Servertype: FTPES — FTP over explicit TLS/SSL
  • Logontype: Normal
  • User: ftpuser1
  • Password: Aa1234567@!

нажимаю «Connect» и вот то окно которое должно сопровождать подключение свидетельствующее что FTP сервис защищен самоподписанным сертификатом и без него к нему нельзя будет подключиться.

Подключение к FTP только с помощью самоподписанного сертификатаНа этой информации по сертификату видна дата окончания (через 1 год) и тип шифрования. Для следующего подключения дабы данное окно о сертификате не показывалось следует отметить галочкой настройку: Always trust certificate in future sessions и нажать кнопку Ok

Вот теперь работает. А все проблемы были из-за клиента под Windows, в частности самого последнего клиента утилиты FileZilla, только почему так. А потому я бы все же развернул FTP сервер на Ubuntu системе проблем бы с подключением было бы на порядок меньше. Но не важно, мне же главное иметь представление, как и что нужно сделать дабы защитить подключение клиента и сервера от перехвата и посягательств. На этом я прощаюсь, заметка выполнена, с уважением автор блога Олло Александр aka ekzorchik.