Настройка маршрутизации запросов на сервере в DMZ

Последние изменения: 25.10.2021

Настройка маршрутизации запросов на сервере в DMZ

Зачем необходима маршрутизация?

Маршрутизация запросов может быть необходима в случаях:

  1. Если на сервере клиента заблокирован какой-либо внешний адрес. Например, Telegram или другой мессенджер. В этом случае настраивается первичный запрос на внешнем сервере (например, нашем) и дальнейшая переадресация на сервер клиента.
  2. В случае размещения основного сервера в защищенной зоне без прямого доступа из Internet. В данной ситуации маршрутизация настраивается на сервере DMZ для последующей переадресации запросов на основной сервер.

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

Требуемые компоненты

Для настройки переадресации на шлюзовом сервере необходимо установить:

  1. Internet Information Server
  2. Компоненты IIS для поддержки ASP.Net 6 и сокетов
  3. Модуль переопределения URL адресов (смотри https://www.microsoft.com/ru-RU/download/details.aspx?id=7435)
  4. Модуль ARR (https://www.iis.net/downloads/microsoft/application-request-routing) Для его установки требуется ряд предварительно установленных компонент. Лучше запускать Web Platfrom Installer. Если это не возможно (например, сервер находится в закрытой зоне), то выполняется по следующей инструкции: https://blogs.technet.microsoft.com/erezs_iis_blog/2013/11/27/installing-arr-manually-without-webpi/

Примечание: для IIS 10 данные модули могут сразу не ставиться. В случае возникновения ошибки с тем, что требуется версия IIS 7 и позднее смотрите документацию http://markimarta.ru/windowsos/oshibka-pri-ustanovke-modulya-pereopredeleniya-url-adresov-2-dlya-iis-10-v-windows-10.html

Инструкция по настройке входящего траффика

Для настройки переадресации необходимо настроить на шлюзовом сервере:

  1. Настроить сайт IIS. Для него привязать используемый внешний адрес по протоколу https. Например, https://<endpoint>.ru.
  2. Открыть оснастку IIS [Переопределение URL адресов] для созданного сайтаRedirect_rule_module.png
  3. Добавить правило “Обратный прокси-сервер” для входящего трафикаAdd_back_proxy_rule.png
  4. В открывшейся форме заполните
    1. Адрес внутреннего сервера
    2. Если внутренний сервер доступен по http протоколу, поставьте галочку для [Включить разгрузку SSL]
      back_proxy_settings.png
  5. Проверьте работу настроенной переадресации. Для этого откройте в браузере из внешней сети адрес сервера (внешний) и проверьте, что по данному адресу открывается интерфейс Sherlock Platform

 

Примечания:

  1. Для ограничения доступа к платформе можно ограничить маской открытие только API или отдельным страницам, которые обеспечивают получение сообщений от мессенджеров
  2. По результатам настройки в web.config сайта добавляются следующие строки:
<rewrite>
  <rules>
    <rule name=" Переадресация на внутренний сервер" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" />
        <conditions>
          <add input="{HTTP_HOST}" pattern="^(https?)://" />
        </conditions>
        <action type="Redirect" url="{C:1}://<внутренний_адрес>/{R:1}" />
    </rule>
  </rules>
</rewrite>

Инструкция по настройке исходящего траффика

Для настройки переадресации необходимо настроить:

  1. Создать на шлюзовом сервере отдельный сайт или приложение внутри созданного выше сайта с названием Proxy. Скопировать для данного сайта содержимое приложения Proxy из дистрибутива Sherlock Platform.
  2. В случае, если приложение установлено внутри созданного для обработки внешних запросов сайт, то создать дополнительное правило переадресации:
    • Добавить правило “Пустое правило” для входящего трафика
      Add_redirect_rule.png
    • В открывшейся форме заполните
      • Название правила. Например, “Proxy”
      • Для фильтрации трафика надо настроить шаблон для выбора запросов к приложению Proxy:
        proxy_rule_settings.png
        Для этого [Using] установить в “Regular Expressions” и [Pattern] в “proxy(.*)”.
    • Тип действия установите в Нет, установите опцию “Остановить обработку последующих правил” в Да. (Action type = none)
      proxy_rule_action.png
    • Поставьте приоритет для данного правила выше настроенного ранее правила для обратного Proxy сервера
  3. В конфигурационных файлах на внутреннем сервере укажите дополнительную настройку:

    <add key="SherlockProxyURL" value="<внутренний адрес DMZ сервера>" />

    Данную настройку надо указать в следующих конфигурационных файлах:

    • \www\appsettings.config
    • \www\API\appsettings.config
    • \ServiceManager\SherlockCRM.ServiceManager.exe.config
  4. Проверьте работу настроенной переадресации. Для этого отправьте сообщение из Sherlock Platform в мессенджеры.

Помогла ли вам статья?