Безопасная передача файлов с помощью Microsoft FTP через SSL и Forefront Threat Management Gateway (TMG) 2010

Опубликовано: 7 Апреля, 2023

Введение

Сегодня существует множество способов безопасной передачи файлов через общедоступный Интернет. Существует множество сайтов для обмена файлами (например, SykDrive, Box, Dropbox и т. д.), а также распространена одноранговая передача файлов. Несмотря на повсеместное распространение сайтов и служб обмена файлами, многим организациям по-прежнему требуется возможность прямой передачи файлов из одного места в другое. Однако сделать это безопасным способом может быть непросто. В статье этого месяца я покажу, как создать решение для безопасной передачи файлов с помощью FTP-сервера Microsoft, входящего в состав Windows Server 2012 R2, и брандмауэра Forefront Threat Management Gateway (TMG) 2010.

Фон протокола FTP

Протокол передачи файлов (FTP) существует с первых дней существования Интернета. Первоначально задокументированный в RFC 765, сам протокол никогда не разрабатывался с учетом конфиденциальности или безопасности. Наиболее серьезной проблемой безопасности FTP является передача учетных данных для аутентификации в виде открытого текста. Любой, у кого есть доступ к коммуникационному потоку, сможет относительно легко перехватить эту информацию. Если учетные данные, используемые для FTP, также являются учетными данными домена, злоумышленник сможет получить доступ к другим корпоративным ресурсам, используя эту информацию. Кроме того, в FTP не предусмотрено шифрование передаваемых данных, что также делает передачу конфиденциальной информации перехватчиком. FTP страдает от множества других проблем с безопасностью, которые описаны в RFC 2577. Чтобы решить некоторые из этих проблем, в RFC 4217 описан механизм защиты связи FTP с использованием SSL и TLS, в результате чего появился протокол FTPS. Важно понимать, что FTPS принципиально отличается от SFTP, протокола передачи файлов SSH. SFTP передает файлы с использованием Secure Shell (SSH) и имеет мало общего с FTPS, кроме того факта, что оба они являются безопасными методами передачи файлов.

Рекомендации по публикации FTPS с помощью TMG

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

Подготовка FTP-сервера

Для этой демонстрации я буду использовать Windows Server 2012 R2. Однако FTP через SSL доступен с IIS 7, поэтому эти инструкции должны быть аналогичны для Windows Server 2008/R2. Для начала откройте командное окно PowerShell с повышенными привилегиями и выполните следующую команду:

Install-WindowsFeature Web-Ftp-Server -IncludeManagementTools

Изображение 10493
фигура 1

Далее мы запросим сертификат у нашего центра сертификации (ЦС). Откройте консоль управления Microsoft (mmc.exe) и добавьте оснастку «Сертификаты» для учетной записи «Компьютер». Разверните узел Сертификаты (локальный компьютер) в дереве навигации, затем щелкните правой кнопкой мыши Личные и выберите Все задачи и Запросить новый сертификат. Примечание. Поддерживаются самозаверяющие сертификаты, которые можно использовать для тестирования. Однако их никогда не следует использовать в производственной среде.

Изображение 10494
фигура 2

Нажмите «Далее», затем выберите вариант запроса сертификата из политики регистрации Active Directory. Нажмите «Далее», выберите шаблон сертификата компьютера и нажмите «Зарегистрировать».

Изображение 10495
Рисунок 3

Откройте консоль управления IIS, щелкните правой кнопкой мыши корневой узел в дереве навигации и выберите «Добавить FTP-сайт».

Изображение 10496
Рисунок 4

Укажите описательное имя для FTP-сайта, укажите физический путь для каталога содержимого и нажмите кнопку Далее. Убедитесь, что разрешения NTFS для каталога содержимого разрешают соответствующим пользователям доступ на чтение и/или запись по мере необходимости.

Изображение 10497
Рисунок 5

Выберите конкретный IP-адрес для привязки FTP-сайта или оставьте настройку по умолчанию All Unassigned. Убедитесь, что установлен флажок «Требовать SSL», и выберите запрошенный ранее сертификат SSL.

Изображение 10498
Рисунок 6

Поскольку это безопасный сайт для передачи файлов, мы выберем вариант использования обычной проверки подлинности. Базовая аутентификация передается в виде открытого текста, что в обычных обстоятельствах было бы плохой идеей. Однако мы используем FTP поверх SSL, поэтому обмен учетными данными зашифрован. Выберите соответствующую авторизацию для вашего развертывания. Здесь я решил предоставить доступ только определенному пользователю. Однако вы можете предоставить доступ всем пользователям, определенным ролям или группам пользователей. Кроме того, выберите необходимые разрешения, чтобы разрешить доступ на чтение и/или запись по мере необходимости.

Изображение 10499
Рисунок 7

Выделите корневой узел в дереве навигации и дважды щелкните Поддержка брандмауэра FTP.

Изображение 10500
Рисунок 8

В Диапазон портов канала данных введите значение 50000-50100. Запомните это значение, так как позже вы будете указывать этот диапазон портов при создании правила публикации сервера на брандмауэре TMG. Обратите внимание, что в зависимости от количества одновременных сеансов, которые будет обрабатывать этот FTP-узел, может потребоваться увеличить это значение. Оставьте поле Внешний IP-адрес брандмауэра пустым. Нажмите «Применить» на панели «Действия» в правой части консоли управления IIS, когда закончите.

Изображение 10501
Рисунок 9

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

Настройка правила публикации сервера TMG

В консоли управления TMG щелкните правой кнопкой мыши «Политика брандмауэра» в дереве навигации и выберите «Новое правило публикации протокола, отличного от веб-сервера».

Изображение 10502
Рисунок 10

Укажите описательное имя для правила и нажмите «Далее».

Изображение 10503
Рисунок 11

Введите IP-адрес FTP-сервера и нажмите «Далее».

Изображение 10504
Рисунок 12

FTP через SSL изначально не поддерживается в Forefront TMG 2010, поэтому для этого правила потребуется создать новый объект протокола. Нажмите «Создать», чтобы продолжить.

Изображение 10505
Рисунок 13

Укажите описательное имя для нового объекта протокола и нажмите «Далее».

Изображение 10506
Рисунок 14

Нажмите «Создать» и выберите TCP для типа протокола, «Входящий» для направления и 21 для диапазона портов, а затем нажмите «ОК».

Изображение 10507
Рисунок 15

Нажмите «Создать» еще раз и выберите TCP для типа протокола, «Входящие» для направления и 50000-50100 для диапазона портов и нажмите «ОК».

Изображение 10508
Рисунок 16

Когда вас спросят об использовании вторичных подключений, выберите «Нет», а затем снова нажмите «Далее», «Готово » и «Далее», чтобы продолжить. Выберите IP-адреса, которые вы хотите прослушивать, и нажмите «Далее».

Изображение 10509
Рисунок 17

Просмотрите сводку, затем нажмите «Готово» и примените конфигурацию.

Тестирование FTP через SSL

С помощью FTP-клиента, поддерживающего FTP через SSL, установите соединение с FTP-сайтом из общедоступного Интернета. Введите имя хоста или IP-адрес FTP-сайта и укажите соответствующие имя пользователя и пароль. Также обязательно укажите использование Auth TLS при подключении к этому FTP-сайту.

Изображение 10510
Рисунок 18

Перед принятием убедитесь, что информация о сертификате SSL верна.

Изображение 10511
Рисунок 19

После подключения вы увидите, что наша сессия теперь защищена с помощью TLSv1 с AES128-SHA1.

Изображение 10512
Рисунок 20

Примечание:
В моем тестировании популярный FTP-клиент FileZilla не работал с моим FTP-сайтом, использующим SSL. Однако другие FTP-клиенты работали без проблем.

Резюме

Хотя FTP существует с момента появления Интернета, он по-прежнему является полезным и надежным механизмом передачи файлов. Однако он терпит неудачу, когда речь идет о защите обмена аутентификацией и обеспечении конфиденциальности при передаче конфиденциальной информации. Использование FTP-сервера Microsoft и включение защиты с помощью SSL/TLS эффективно решает эти проблемы. При использовании FTPS обмен учетными данными и информацией полностью защищен надежным шифрованием. Публикация внутреннего FTPS-сервера с помощью Forefront TMG может быть выполнена легко, хотя и требует выполнения нескольких дополнительных действий для поддержки зашифрованного канала данных. Если вы все еще используете стандартный (незащищенный) FTP для передачи данных, пришло время подумать о переходе на решение для безопасной передачи файлов с использованием Windows Server и Forefront TMG 2010.