Безопасный трафик для частных конечных точек в Виртуальной глобальной сети Azure

Примечание.

Сведения из этой статьи относятся только к защищенному виртуальному концентратору. Если вы хотите проверить трафик, предназначенный для частных конечных точек, с помощью Брандмауэра Azure в виртуальной сети концентратора, см. эту статью.

Частная конечная точка Azure — ключевой компонент для создания Приватного канала Azure. Частные конечные точки позволяют ресурсам Azure, развернутым в виртуальной сети, конфиденциально взаимодействовать с ресурсами приватного канала.

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

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

Брандмауэр Azure фильтрует трафик, используя любой из следующих методов:

Правила приложений предпочтительнее правил сети для проверки трафика, предназначенного для частных конечных точек, так как Брандмауэр Azure всегда трафик SNATs с правилами приложения. При проверке трафика, предназначенного для частной конечной точки, рекомендуется использовать SNAT из-за ограничения, описанного здесь: Что такое частная конечная точка?. Если вы планируете использовать правила сети вместо этого, рекомендуется настроить Брандмауэр Azure всегда выполнять SNAT: Брандмауэр Azure диапазоны частных IP-адресов SNAT.

Корпорация Майкрософт управляет защищенными виртуальными центрами, которые не могут быть связаны с зоной Частная зона DNS. Это необходимо для разрешения FQDN ресурса частной ссылки в соответствующий IP-адрес частной конечной точки.

Фильтрация полных доменных имен SQL поддерживается только в прокси-режиме (порт 1433). В режиме прокси может наблюдаться увеличенная задержка по сравнению с режимом перенаправления. Если вы хотите продолжить пользоваться режимом перенаправления, который применяется для клиентов, подключающихся внутри Azure, по умолчанию можно фильтровать доступ, используя полные доменные имена в правилах сети брандмауэра.

Фильтрация трафика с помощью правил сети или приложений в Брандмауэр Azure

Следующие шаги позволяют Брандмауэр Azure фильтровать трафик с помощью правил сети (FQDN или IP-адресов) или правил приложения:

Правила сети.

  1. Разверните виртуальную машину DNS-сервера пересылки в виртуальной сети, подключенной к защищенному виртуальному концентратору и связанной с Частными зонами DNS, где размещены записи типа "A" для частных конечных точек.

  2. Настройте настраиваемые DNS-серверы для виртуальных сетей, подключенных к защищенному виртуальному концентратору:

    • Правила сети на основе полного доменного имени — настройте настраиваемые параметры DNS, чтобы указать IP-адрес виртуальной машины пересылки DNS и включить DNS-прокси в политике брандмауэра, связанной с Брандмауэр Azure. Включение DNS-прокси требуется, если требуется выполнить фильтрацию полного доменного имени в правилах сети.
    • Правила сети на основе IP-адресов — настраиваемые параметры DNS, описанные в предыдущей точке, являются необязательными. Настраиваемые DNS-серверы можно настроить для указания частного IP-адреса виртуальной машины пересылки DNS.
  3. В зависимости от конфигурации, выбранной на шаге 2., настройте локальные DNS-серверы для пересылки DNS-запросов для частных конечных точек общедоступных зон DNS в частный IP-адрес Брандмауэр Azure или виртуальной машины пересылки DNS.

  4. Настройте правило сети в соответствии с политикой брандмауэра, связанной с Брандмауэр Azure. Выберите IP-адреса типа назначения при переходе с правилом на основе IP-адресов и настройте IP-адрес частной конечной точки в качестве назначения. Для правил сети на основе FQDN выберите полное доменное имя типа назначения и настройте общедоступный полный доменный домен ресурса приватного канала в качестве назначения.

  5. Перейдите к политике брандмауэра, связанной с Брандмауэр Azure, развернутой в защищенном виртуальном концентраторе. Выберите диапазоны частных IP-адресов (SNAT) и выберите параметр "Всегда выполнять SNAT".

Правила приложений.

  1. Для правил приложения шаги 1. До 3. Из предыдущего раздела по-прежнему применяются. Для настраиваемой конфигурации DNS-сервера можно использовать Брандмауэр Azure в качестве DNS-прокси или напрямую указать виртуальную машину пересылки DNS.

  2. Настройте правило приложения в соответствии с политикой брандмауэра, связанной с Брандмауэр Azure. Выберите полное доменное имя типа назначения и общедоступное полное доменное имя ресурса приватного канала в качестве назначения.

Наконец, и независимо от типа правил, настроенных в Брандмауэр Azure, убедитесь, что политики сети (по крайней мере для поддержки UDR) включены в подсетях, где развертываются частные конечные точки. Это гарантирует, что трафик, предназначенный для частных конечных точек, не обходит Брандмауэр Azure.

Важно!

По умолчанию префиксы RFC 1918 автоматически включаются в префиксы частного трафика Брандмауэр Azure. Для большинства частных конечных точек это будет достаточно, чтобы убедиться, что трафик из локальных клиентов или в разных виртуальных сетях, подключенных к одному защищенному концентратору, будет проверен брандмауэром. Если трафик, предназначенный для частных конечных точек, не регистрируется в брандмауэре, попробуйте добавить префикс /32 для каждой частной конечной точки в список префиксов частного трафика.

При необходимости можно изменить префиксы CIDR, которые проверяются с помощью Брандмауэр Azure в защищенном концентраторе следующим образом:

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

  2. Перейдите к элементу Конфигурация безопасности и в разделе Частный трафик выберите Send via Azure Firewall (Отправить через брандмауэр Azure).

  3. Выберите префиксы частного трафика, чтобы изменить префиксы CIDR, которые проверяются с помощью Брандмауэр Azure в защищенном виртуальном концентраторе и добавьте один префикс /32 для каждой частной конечной точки.

    Firewall Manager Security Configuration

Чтобы проверить трафик от клиентов в той же виртуальной сети, что и частные конечные точки, не обязательно переопределить маршруты /32 из частных конечных точек. Если политики сети включены в подсети частных конечных точек, UDR с более широким диапазоном адресов имеет приоритет. Например, настройте этот UDR с типомследующего прыжка для виртуального устройства, адрес следующего прыжка, заданный для частного IP-адреса Брандмауэр Azure, а для целевого префикса адреса — подсеть, выделенная для всех частных конечных точек, развернутых в виртуальной сети. Для параметра Propagate gateway routes (Распространение маршрутов шлюза) необходимо задать значение Да.

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

Traffic Flows

Устранение неполадок

Основные проблемы, которые могут возникнуть при попытке фильтрации трафика для частных конечных точек через защищенный виртуальный концентратор:

  • Клиенты не могут подключиться к частным конечным точкам.

  • Происходит обход Брандмауэра Azure. Этот симптом можно проверить отсутствие записей журнала правил сети или приложений в Брандмауэр Azure.

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

  • неправильное разрешение имен DNS;

  • Неправильная конфигурация маршрутизации

неправильное разрешение имен DNS;

  1. Убедитесь, что для DNS-серверов виртуальной сети задано значение Пользовательский и IP-адрес является частным IP-адресом Брандмауэра Azure в защищенном виртуальном концентраторе.

    Azure CLI:

    az network vnet show --name <VNET Name> --resource-group <Resource Group Name> --query "dhcpOptions.dnsServers"
    
  2. Убедитесь, что клиенты в той же виртуальной сети, что и виртуальная машина DNS-сервера пересылки, могут разрешить общедоступное полное доменное имя частной конечной точки в соответствующий частный IP-адрес, напрямую запросив виртуальную машину, настроенную как DNS-сервер пересылки.

    Linux:

    dig @<DNS forwarder VM IP address> <Private endpoint public FQDN>
    
  3. Проверьте записи журнала Брандмауэра Azure AzureFirewallDNSProxy и убедитесь, что он может принимать и разрешать запросы DNS от клиентов.

    AzureDiagnostics
    | where Category contains "DNS"
    | where msg_s contains "database.windows.net"
    
  4. Убедитесь, что прокси-сервер DNS включен, а пользовательский DNS-сервер, указывающий на IP-адрес виртуальной машины DNS пересылки, настроен в политике брандмауэра, связанной с Брандмауэром Azure в защищенном виртуальном концентраторе.

    Azure CLI:

    az network firewall policy show --name <Firewall Policy> --resource-group <Resource Group Name> --query dnsSettings
    

Неправильная конфигурация маршрутизации

  1. Проверьте раздел Конфигурация безопасности в политике брандмауэра, связанной с Брандмауэром Azure, развернутым в защищенном виртуальном концентраторе. Убедитесь, что в столбце PRIVATE TRAFFIC (ЧАСТНЫЙ ТРАФИК) указано Secured by Azure Firewall (Защищено брандмауэром Azure) для всех подключений виртуальной сети и ветвей, для которых требуется фильтровать трафик.

    Private Traffic Secured by Azure Firewall

  2. Проверьте раздел Конфигурация безопасности в политике брандмауэра, связанной с Брандмауэром Azure, развернутым в защищенном виртуальном концентраторе. Если трафик, предназначенный для частных конечных точек, не регистрируется в брандмауэре, попробуйте добавить префикс /32 для каждой частной конечной точки в список префиксов частного трафика.

    Firewall Manager Security Configuration - Private Traffic Prefixes

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

    Secured Virtual Hub Effective Routes

  4. Проверьте действующие маршруты для сетевых адаптеров, подключенных к виртуальным машинам, развернутым в виртуальных сетях, для которых требуется фильтровать трафик. Убедитесь, что для каждого частного IP-адреса частной конечной точки есть записи /32, для которых требуется отфильтровать трафик (при добавлении).

    Azure CLI:

    az network nic show-effective-route-table --name <Network Interface Name> --resource-group <Resource Group Name> -o table
    
  5. Проверьте таблицы маршрутизации локальных устройств маршрутизации. Запишите диапазоны адресов виртуальных сетей, в которых развернуты частные конечные точки.

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

  6. Проверьте журналы Брандмауэра Azure AzureFirewallApplicationRule и AzureFirewallNetworkRule. Убедитесь, что в журнал записывается трафик, предназначенный для частных конечных точек.

    Записи журнала AzureFirewallNetworkRule не содержат сведений о полном доменном имени. Необходимо фильтровать по IP-адресу и порту при проверке правил сети.

    При фильтрации трафика, предназначенного для Файлы Azure частных конечных точек, записи журнала AzureFirewallNetworkRule создаются только при первом подключении клиента или подключении к общей папке. Брандмауэр Azure не создает журналы для Операции CRUD для файлов в общей папке. Это обусловлено тем, что операции CRUD передаются с помощью постоянного канала TCP, открытого при первом подключении клиента к общей папке.

    Пример запроса журнала правил приложений:

    AzureDiagnostics
    | where msg_s contains "database.windows.net"
    | where Category contains "ApplicationRule"
    

Следующие шаги