Включение безопасного FTP-доступа через брандмауэры ISA 2006 (часть 2)

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

Эта статья была отредактирована доктором Томасом Шиндером.

ПРЕДУПРЕЖДЕНИЕ:
Официально брандмауэр ISA не поддерживает протокол FTPS, поскольку переговоры по протоколу зашифрованы, и, таким образом, никакие фильтры приложений не могут обрабатывать эти согласования. В этой серии статей представлен жизнеспособный обходной путь. Однако побочным эффектом метода, описанного в этих статьях, является то, что никакие незашифрованные (FTP) соединения работать не будут. Альтернативой нашему решению является создание пользовательского определения протокола сервера для FTPS, а затем использование метода Песаха Шелница для предотвращения конфликтов с определением протокола сервера FTP по умолчанию.

Введение

В части 1 этой серии из двух частей мы продемонстрировали проблему с защищенной публикацией FTP-сервера с использованием брандмауэра ISA 2006. Используя сетевые снифферы, мы говорим, что попытка согласования TLS со стороны клиента была отклонена, но она не была отклонена опубликованным FTP-сервером. Вместо этого мы увидели, что попытка согласования безопасности была отклонена брандмауэром ISA. Брандмауэр ISA имеет фильтр прикладного уровня FTP для поддержки FTP-соединений, но он не настраивается (в отличие от SMTP-фильтра, который допускает некоторый уровень настройки). Поскольку встроенный фильтр прикладного уровня FTP в брандмауэре ISA не поддерживает согласование TLS, вам необходимо отключить фильтр прикладного уровня FTP либо для всего набора правил, либо для конкретных правил. Мы предпочитаем отключать фильтр FTP для определенных правил, поскольку клиенты SecureNAT не смогут использовать протокол FTP для исходящего доступа, если фильтр отключен глобально. После отключения фильтра FTP-приложений мы продемонстрировали, что безопасное FTP-соединение было успешно установлено через брандмауэр ISA к опубликованному безопасному FTP-серверу IIS 7.0. Однако есть еще один шаг — пока мы включили безопасное FTP-соединение, мы еще не включили безопасную передачу данных по каналу. В этой статье, второй части этой серии, мы рассмотрим, что вам нужно сделать, чтобы разрешить передачу данных по защищенному каналу FTP.

У каждой истории FTP есть две стороны. Канал аутентификации — это только первая часть истории. После аутентификации на FTP-сервере нам нужно составить список каталогов и передать файлы, это делается по вторичному каналу данных.


фигура 1

Как вы можете видеть выше, процесс аутентификации проходит хорошо, но система зависает на команде 150 Opening Binary mode data connection, и если мы подождем достаточно долго, то в конечном итоге получим тайм-аут.

Посмотрим, что происходит на проводе:


фигура 2

Как мы видели ранее, вы можете видеть трехсторонние TCP-пакеты рукопожатия, затем начинается поток FTP-аутентификации, и в конце трассировки мы видим ряд TCP-пакетов рукопожатия, которые создают канал данных.


Рисунок 3

Канал данных FTP — это второе открывающееся TCP-соединение. В процессе аутентификации FTP-сервер отправляет FTP-клиенту информацию о динамическом вторичном порте, который он должен открыть. После этого клиент открывает сокет на этом вторичном порту и устанавливает соединение для передачи данных. Важно отметить, что этот вторичный порт является случайным динамическим портом высокого уровня. Вплоть до Windows Vista высокие порты выбирались динамически, начиная с порта 1024 и заканчивая портом 5000. Но начиная с Windows Vista Microsoft изменила выбор случайного порта, поэтому случайный порт, который вы видите здесь, установлен на 49198 TCP. Если вам нужна дополнительная информация об изменениях, внесенных в селектор случайных портов, перейдите по этой ссылке. В этой статье базы знаний показано, что Windows Vista и Windows Server 2008 используют динамический диапазон портов от 49152 до 65535.

По умолчанию фильтр FTP-приложений брандмауэра ISA заботится о случайном порте, используемом для вторичного соединения, динамически открывая порты, когда клиенты подключаются к опубликованному FTP-серверу. Однако, поскольку нам нужно было отключить фильтр приложений для передачи команды Auth TLS, нам нужно будет вручную компенсировать отсутствие фильтра приложений FTP на брандмауэре ISA.

Шаг 1:

Первое, что нам нужно сделать, это манипулировать тем, как FTP-сервер выделяет случайные порты. Мы хотим отказаться от случайного назначения портов и контролировать, какие порты используются. В качестве второй настройки нам также нужно сообщить FTPS-серверу, какой общедоступный IP-адрес является нашим брандмауэром ISA.

Это можно сделать в окне конфигурации IIS. Чтобы установить статические порты , вы должны находиться на узле сервера, а не на уровне веб-сайта, как показано на рисунке ниже. Дважды щелкните значок поддержки брандмауэра FTP.


Рисунок 4

Здесь вы можете ввести любой диапазон портов, но для этого примера мы выберем 5000-5003 > затем нажмите «Применить», как показано на рисунке ниже.


Рисунок 5/6

Шаг 2:

Второе, что мы должны сделать, это установить IP-адрес на уровне веб-сайта. Разверните Сайты и щелкните Веб-сайт по умолчанию. Затем дважды щелкните значок поддержки брандмауэра FTP.


Рисунок 7

Введите общедоступный IP-адрес, который вы используете для слушателя, в правиле публикации FTP-сервера на брандмауэре ISA. Затем нажмите «Применить».


Рисунок 8/9

По какой-то причине мой опыт показывает, что нажатие «Применить» не приводит к тому, что эти изменения становятся активными. Лучше всего перезапустить службу Microsoft FTP из консоли управления службами.


Рисунок 10

Шаг 3:

Последнее, что нам нужно сделать, это настроить правило публикации FTP-сервера на брандмауэре ISA. Здесь мы добавим наш диапазон портов в качестве основных портов подключения. Когда вы перейдете к редактированию правила публикации FTP-сервера, вы увидите, что не можете изменить параметры. Это связано с тем, что это определение протокола по умолчанию, и Microsoft не позволяет изменять эти определения.


Рисунок 11

Чтобы решить эту проблему, мы создадим собственное определение протокола сервера FTPS. Вернитесь на вкладку «Трафик» и нажмите «Создать».


Рисунок 12

Введите имя для нового определения протокола на странице Добро пожаловать на страницу мастера определения нового протокола. В этом примере мы назовем определение протокола FTPS. Нажмите «Далее».


Рисунок 13

На странице «Информация об основном подключении» нажмите кнопку «Создать».


Рисунок 14

В диалоговом окне New/Edit Protocol Connection выберите TCP для типа протокола. Установите направление для входящего трафика и установите диапазон портов от 21 до 21. Нажмите ОК.


Рисунок 15

Нажмите «Создать» еще раз на странице «Информация об основном подключении». Установите Тип протокола на TCP. Установите Направление на Входящее и установите Диапазон портов на От 5000 до 5003. Нажмите ОК.


Рисунок 16

Вы увидите новое основное соединение на странице «Информация об основном соединении». Нажмите «Далее».


Рисунок 17

Выберите «Нет» на странице «Вторичные подключения» и нажмите «Далее».


Рисунок 18

Нажмите «Готово» на странице «Завершение работы мастера определения нового протокола».


Рисунок 19

На вкладке «Трафик» вы увидите, что наше новое определение протокола теперь отображается в раскрывающемся списке «Разрешить сетевой трафик с использованием следующего протокола».


Рисунок 20

Нажмите «Применить», чтобы сохранить изменения и обновить политику брандмауэра. Нажмите «ОК» в диалоговом окне «Сохранение изменений конфигурации ».

Изображение 23870
Рисунок 21

Шаг 4:

Вернитесь к FTP-клиенту и повторите попытку подключения, теперь вы должны увидеть, что подключение работает.

Изображение 23871
Рисунок 22

Резюме

В этой статье, второй части нашей серии из двух частей, посвященных публикации защищенных FTP-серверов, мы увидели, что, хотя мы можем установить соединение для аутентификации на опубликованном FTP-сервере с использованием определения протокола FTP по умолчанию, мы не можем установить соединение для передачи данных. Чтобы поддерживать подключение для передачи данных, нам сначала пришлось внести изменения в сервер FTPS, чтобы мы ограничили высокие порты, используемые для подключения; нам также пришлось настроить FTP-сервер с IP-адресом на внешнем интерфейсе брандмауэра ISA, используемом для слушателя в правиле публикации FTPS-сервера. После внесения изменений на сервере FTPS мы изменили правило публикации сервера FTPS, чтобы оно использовало новое определение протокола сервера FTPS. После внесения изменений мы продемонстрировали, что подключение клиента FTPS к серверу FTPS прошло успешно.