Публикация нескольких веб-сайтов без SSL с одним IP-адресом с использованием брандмауэров ISA

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

Публикация нескольких веб-сайтов без SSL с одним IP-адресом с использованием брандмауэров ISA
Томас Шиндер, доктор медицинских наук, MVP
Изображение 25815







Есть вопросы по статье?
Спроси их ЗДЕСЬ



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


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


В этой статье мы сделаем следующее:



  • Изучите различия между тем, как простые брандмауэры с проверкой состояния и расширенные брандмауэры с проверкой на уровне приложений (например, ISA) обрабатывают публикацию нескольких сайтов.
    Простые межсетевые экраны для проверки пакетов с отслеживанием состояния и устройства NAT не могут выполнять расширенную проверку заголовков протокола HTTP. Здесь вы узнаете о различиях и поймете, почему брандмауэр ISA эффективен и почему аппаратные брандмауэры не выдерживают проверки.
  • Опишите пример среды публикации, использованной в этой статье.
    Здесь я дам общий обзор лабораторной сети и предоставлю вам диаграмму с именем и подробностями IP-адресации.
  • Опубликуйте два веб-сайта с помощью правил веб-публикации.
    Это мясо и картошка статьи. Здесь вы создадите два правила веб-публикации, которые позволят вам публиковать несколько веб-сайтов, используя один IP-адрес на внешнем интерфейсе брандмауэра ISA.

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




Рисунок 1: Блок-схема для этой статьи


Сравнение того, как простые устройства проверки пакетов с отслеживанием состояния обрабатывают веб-публикацию по сравнению с брандмауэрами расширенной проверки приложений (ISA)


На рисунке ниже показано, что происходит, когда вы пытаетесь предоставить удаленный доступ к веб-сайтам с помощью простого брандмауэра с проверкой пакетов с отслеживанием состояния или устройства NAT.



  1. Внешний клиент вводит имя сайта в веб-браузер, и это генерирует DNS-запрос к внешнему DNS-серверу. Например, внешний клиент отправляет запрос на запись узла (A) для www.msfirewall.org. DNS возвращает адрес 192.168.1.71.
  2. Внешний клиент отправляет запрос GET на адрес 192.168.1.71 и включает в заголовок узла прикладного уровня имя www.msfirewall.org. Запрос на подключение поступает на внешний интерфейс устройства проверки пакетов с отслеживанием состояния. У устройства есть правило, согласно которому все входящие соединения с 192.168.1.71 TCP 80 пересылаются на 10.0.0.11 TCP 80. Вот и все. Простое устройство проверки пакетов с отслеживанием состояния не имеет возможности проверять информацию прикладного уровня и полностью игнорирует заголовок узла.
  3. Запрос на подключение перенаправляется на веб-сервер во внутренней сети, прослушивающий 10.0.0.11 TCP 80.



Рисунок 2. Простое устройство проверки пакетов с отслеживанием состояния не может принимать интеллектуальные решения на основе информации заголовка прикладного уровня.


До сих пор все работало достаточно хорошо с простым устройством проверки пакетов. Но что происходит, когда у вас есть только один IP-адрес на внешнем интерфейсе устройства проверки пакетов с отслеживанием состояния, и вы хотите опубликовать второй веб-сайт во внутренней сети? Это не сработает, потому что первый сокет (комбинация транспортного протокола, IP-адреса и порта) занят первым правилом переадресации портов.


В заголовке уровня 3 (или ниже) нет информации, которая позволяет простому устройству проверки пакетов с отслеживанием состояния выяснить, к какому веб-сайту должно идти соединение, все, что оно знает, это если оно получает соединение по определенному IP-адресу, протоколу и порт, то он должен следовать правилу, которое говорит ему отправлять соединение на определенный IP-адрес, протокол и порт.


Есть несколько альтернатив. Вы можете использовать заголовки узлов на внутренних сайтах, чтобы отличать их друг от друга, но каждый из этих сайтов должен размещаться на одном и том же веб-сервере, поскольку правило переадресации портов может перенаправлять только на один и тот же IP-адрес.


У этого подхода есть несколько проблем, в том числе тот факт, что не все веб-серверы поддерживают заголовки хостов, которые позволяют использовать несколько сайтов на одном IP-адресе, когда требуется SSL и когда все сайты размещены на одном и том же физическом веб-сервере. Если заголовки хостов не работают, другой вариант — назначить каждому сайту отдельный порт. Однако это может стать проблемой, потому что внешние пользователи должны помнить, какой порт использовать, и если вы используете другой пост во внутренней сети, тем же пользователям нужно будет помнить, какой порт использовать для доступа к тем же ресурсам, когда они находятся. во внутренней сети.


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


На рисунке ниже показано, как все работает, когда вы используете интеллектуальный механизм проверки прикладного уровня брандмауэра ISA:



  1. Внешний пользователь вводит www.msfirewall.org в браузере, и DNS-запрос отправляется на внешний DNS-сервер для этого имени. IP-адрес 192.168.1.71 возвращается DNS-сервером.
  2. Затем внешний клиент отправляет запрос GET на адрес 192.168.1.71 TCP 80 с включенным в запрос заголовком хоста HTTP www.msfirewall.org. Брандмауэр ISA выполняет проверку пакетов с отслеживанием состояния при обмене данными, и как только соединение очищается, информация пересылается фильтру веб-прокси. Фильтр веб-прокси проверяет информацию прикладного уровня. В этом случае интересующей информацией прикладного уровня является заголовок хоста. Фильтр веб-прокси на брандмауэре ISA определяет, что запрос относится к www.msfirewall.org.
  3. Правило веб-публикации в брандмауэре ISA настроено на перенаправление запросов с www.msfirewall.org на www.msfirewall.org во внутренней сети. Запрос перенаправляется на прослушивающий веб-сайт 10.0.0.11, который разрешается на www.msfirewall.org во внутренней сети.
  4. Во втором сценарии на шаге 1 веб-браузер отправляет запрос на www2.msfirewall.org, а DNS-запрос к общедоступному DNS-серверу разрешает запрос на IP-адрес 192.168.1.71. Веб-браузер отправляет запрос GET на IP-адрес 192.168.1.71 с включенным в запрос заголовком узла www2.msfirewall.org.
  5. Брандмауэр ISA настроен с помощью правила веб-публикации, которое настроено для пересылки HTTP-запросов для www2.msfirewall.org на веб-сайт во внутренней сети, который разрешается в www2.msfirewall.org при использовании DNS-сервера внутренней сети. В этом примере www2.msfirewall.org во внутренней сети разрешается в IP-адрес 10.0.0.12.



Рисунок 3. Брандмауэры с контролем состояния на уровне приложений, такие как брандмауэр ISA, могут проверять заголовки уровня приложений HTTP и принимать разумные решения на основе этой информации.


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







Есть вопросы по статье?
Спроси их ЗДЕСЬ



Сетевое окружение, используемое в этой статье


В этой статье мы опубликуем два веб-сайта, расположенных на одном и том же веб-сервере IIS 6.0. Соответствующая информация о веб-сайтах приведена в таблице ниже.


























Название/функция сайта


Веб-сайт 1


Веб-сайт 2


Публичное имя


www.msfirewall.org


www2.msfirewall.org


Общедоступный IP-адрес


192.168.1.71


192.168.1.71


Частное имя


www.msfirewall.org


www2.msfirewall.org


Частный IP-адрес


10.0.0.11


10.0.0.12

Таблица 1: Имена веб-сайтов и IP-адреса


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


Разделенная инфраструктура DNS позволяет предоставлять доступ к веб-ресурсам как внутренним, так и внешним клиентам с использованием одного и того же имени. Разделенная инфраструктура DNS обеспечивает следующие стратегические преимущества:



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

При использовании разделенной инфраструктуры DNS брандмауэр ISA преобразует полное имя опубликованного веб-сервера в IP-адрес веб-сайта во внутренней сети. Брандмауэр ISA никогда не должен разрешать имена опубликованных веб-сайтов во внешний адрес на брандмауэре ISA, используемый внешними пользователями для доступа к сайту.


Несмотря на то, что мы используем одно и то же доменное имя второго уровня для двух веб-сайтов, ограничений в этой области нет. Я мог бы опубликовать два сайта, например www.msfirewall.org и www.isafirewall.org, используя один IP-адрес, используя те же методы, которые мы будем использовать для публикации двух сайтов, перечисленных в таблице. Процедуры точно такие же.


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



ПРЕДУПРЕЖДЕНИЕ:
Последняя вещь. Эта статья не дает полного описания правил веб-публикации и того, как они работают. Существуют настройки безопасности и нюансы, которые не раскрываются мастером правил веб-публикации. Для получения подробной информации о правилах веб-публикации и о том, как извлечь из них максимальную пользу, ознакомьтесь с нашей книгой «Настройка ISA Server 2004».


Публикация веб-сайтов с использованием правил веб-публикации брандмауэра ISA


Я предполагаю, что вы уже установили программное обеспечение брандмауэра ISA, но еще не создали никаких правил веб-публикации или веб-слушателей.


Первым шагом является создание веб-прослушивателя. Вам не нужно сначала создавать веб-прослушиватель, так как вы можете создать веб-прослушиватель на лету при создании правила веб-публикации. Но мне нравится делать что-то по-другому время от времени. Так что в этом случае мы отойдем от нашего обычного MO и сначала создадим веб-прослушиватель.


Создайте веб-прослушиватель


Выполните следующие шаги, чтобы создать веб-прослушиватель:



  1. В консоли брандмауэра ISA разверните имя сервера в левой панели консоли и щелкните узел Политики брандмауэра. Перейдите на вкладку «Панель инструментов», а затем щелкните заголовок «Сетевой объект». Нажмите меню «Создать», а затем нажмите «Веб-прослушиватель».
  2. На странице Добро пожаловать на новую страницу мастера веб-прослушивателя введите имя прослушивателя в текстовом поле Имя веб-прослушивателя. В этом примере мы назовем прослушиватель HTTP Listener и нажмем Next.
  3. На странице «IP-адреса» поставьте галочку в поле «Внешний» и нажмите «Далее».



Рисунок 4



  1. На странице «Спецификация порта» убедитесь, что флажок «Включить HTTP» установлен, а порт HTTP указан как 80. Убедитесь, что флажок Включить SSL не установлен. Мы не хотим, чтобы этот прослушиватель обслуживал запросы SSL. В другой статье я покажу вам, как публиковать несколько веб-сайтов SSL. Нажмите «Далее».
  2. Нажмите «Готово» на странице «Завершение работы мастера создания нового веб-прослушивателя».

Создайте правило веб-публикации для www.msfirewall.org


Теперь, когда у нас есть веб-приемник, мы можем создать первое правило веб-публикации. Выполните следующие шаги, чтобы создать правило веб-публикации для веб-сайта www.msfirewall.org, который прослушивает 10.0.0.11 во внутренней сети:



  1. В консоли брандмауэра ISA разверните имя сервера и щелкните узел «Политика брандмауэра». В области задач щелкните вкладку Задачи и щелкните ссылку Опубликовать веб-сервер.
  2. На странице Вас приветствует мастер создания нового правила веб-публикации введите имя правила веб-публикации в текстовом поле Имя правила веб-публикации. В примере мы назовем правило WWW Site. Нажмите «Далее».
  3. Нажмите «Разрешить» на странице «Выбор действия правила».
  4. На странице «Определить веб-сайт для публикации» введите имя веб-сайта во внутренней сети в текстовом поле Имя компьютера или IP-адрес. Обратите внимание, что это имя должно разрешаться в IP-адрес, который прослушивает внутренний веб-сайт. В этом примере www.msfirewall.org прослушивает 10.0.0.11, и на внутреннем DNS-сервере есть запись DNS, которая разрешает это имя в этот IP-адрес. Мы хотим разрешить доступ ко всем файлам и папкам на веб-сайте, поэтому мы введем /* в текстовом поле «Путь». Нажмите «Далее».



Рисунок 5



  1. На странице сведений об общедоступном имени выберите параметр Это доменное имя (введите ниже) в раскрывающемся списке Принимать запросы на. В текстовом поле Общедоступное имя введите www.msfirewall.org. Это имя, которое внешние пользователи будут использовать для доступа к сайту, и это имя должно быть включено в заголовок узла в запросе. Например, пользователи должны получить доступ к сайту, используя http://www.msfirewall.org. Они не могут использовать http://192.168.1.71, так как это не будет включать www.msfirewall.org в заголовок узла. Нажмите «Далее».
  2. На странице «Выбор веб-прослушивателя» выберите запись «Прослушиватель HTTP» в раскрывающемся списке «Веб-прослушиватель» и нажмите «Далее».
  3. Нажмите «Далее» на странице «Наборы пользователей».
  4. Нажмите «Готово» на странице «Завершение работы мастера создания правила веб-публикации».

Создайте правило веб-публикации для www2.msfirewall.org


Теперь давайте создадим правило веб-публикации для www2.msfirewall.org:



  1. В консоли брандмауэра ISA разверните имя сервера и щелкните узел Политика брандмауэра. В области задач щелкните вкладку Задачи и щелкните ссылку Опубликовать веб-сервер.
  2. На странице Вас приветствует мастер создания нового правила веб-публикации введите имя правила веб-публикации в текстовом поле Имя правила веб-публикации. В примере мы назовем правило WWW2 Site. Нажмите «Далее».
  3. Нажмите «Разрешить» на странице «Выбор действия правила».
  4. На странице «Определить веб-сайт для публикации» введите имя веб-сайта во внутренней сети в текстовом поле Имя компьютера или IP-адрес. Обратите внимание, что это имя должно разрешаться в IP-адрес, который прослушивает внутренний веб-сайт. В этом примере www2.msfirewall.org прослушивает 10.0.0.12, и на внутреннем DNS-сервере есть запись DNS, которая разрешает это имя в этот IP-адрес. Мы хотим разрешить доступ ко всем файлам и папкам на веб-сайте, поэтому мы введем /* в текстовом поле «Путь». Нажмите «Далее».



Рисунок 6



  1. На странице сведений об общедоступном имени выберите параметр Это доменное имя (введите ниже) в раскрывающемся списке Принимать запросы на. В текстовом поле Общедоступное имя введите www2.msfirewall.org. Это имя, которое внешние пользователи будут использовать для доступа к сайту, и это имя должно быть включено в заголовок узла в запросе. Например, пользователи должны получить доступ к сайту, используя http://www2.msfirewall.org. Они не могут использовать http://192.168.1.71, так как это не будет включать www2.msfirewall.org в заголовок узла. Нажмите «Далее».
  2. На странице «Выбор веб-прослушивателя» выберите запись «Прослушиватель HTTP» в раскрывающемся списке «Веб-прослушиватель» и нажмите «Далее».
  3. Нажмите «Далее» на странице «Наборы пользователей».
  4. Нажмите «Готово» на странице «Завершение работы мастера создания правила веб-публикации».

Протестируйте решение


Теперь давайте проверим решение. На внешнем клиентском компьютере введите www.msfirewall.org в Internet Explorer. Вы должны увидеть домашнюю страницу по умолчанию для этого сайта.


Сделайте то же самое для www2.msfirewall.org. Вы должны увидеть домашнюю страницу по умолчанию для этого сайта.


Хорошо, это было не очень интересно, но вы поняли – вы можете опубликовать два веб-сайта, используя один IP-адрес на внешнем интерфейсе брандмауэра ISA. Обратите внимание, что этот тест работает только в том случае, если вы настроили внешний клиент с адресом DNS-сервера, который разрешает www.msfirewall.org и www2.msfirewall.org в IP-адрес, используемый веб-прослушивателем, который принимает входящие подключения для двух правил веб-публикации, которые вы созданный.







Есть вопросы по статье?
Спроси их ЗДЕСЬ



Резюме


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