Безопасный трафик для частных конечных точек в Виртуальной глобальной сети Azure
Примечание.
Сведения из этой статьи относятся только к защищенному виртуальному концентратору. Если вы хотите проверить трафик, предназначенный для частных конечных точек, с помощью Брандмауэра Azure в виртуальной сети концентратора, см. эту статью.
Частная конечная точка Azure — ключевой компонент для создания Приватного канала Azure. Частные конечные точки позволяют ресурсам Azure, развернутым в виртуальной сети, конфиденциально взаимодействовать с ресурсами приватного канала.
Частные конечные точки позволяют ресурсам обращаться к службе приватного канала, развернутой в виртуальной сети. Доступ к частной конечной точке через пиринг между виртуальными сетями и локальные сетевые подключения расширяет возможности подключения.
Возможно, вам потребуется фильтровать трафик от клиентов локальной или в Azure, предназначенных для служб, предоставляемых через частные конечные точки в подключенной виртуальной сети Виртуальная глобальная сеть. В этой статье описано, как выполнить эту задачу с помощью защищенного виртуального концентратора с Брандмауэром Azure в качестве поставщика безопасности.
Брандмауэр Azure фильтрует трафик, используя любой из следующих методов:
- используя полное доменное имя в правилах сети для протоколов TCP и UDP;
- используя полное доменное имя в правилах приложений для протоколов HTTP, HTTPS и MSSQL.
- исходные и конечные IP-адреса, порты и протоколы, а также правила сети.
Правила приложений предпочтительнее правил сети для проверки трафика, предназначенного для частных конечных точек, так как Брандмауэр Azure всегда трафик SNATs с правилами приложения. При проверке трафика, предназначенного для частной конечной точки, рекомендуется использовать SNAT из-за ограничения, описанного здесь: Что такое частная конечная точка?. Если вы планируете использовать правила сети вместо этого, рекомендуется настроить Брандмауэр Azure всегда выполнять SNAT: Брандмауэр Azure диапазоны частных IP-адресов SNAT.
Корпорация Майкрософт управляет защищенными виртуальными центрами, которые не могут быть связаны с зоной Частная зона DNS. Это необходимо для разрешения FQDN ресурса частной ссылки в соответствующий IP-адрес частной конечной точки.
Фильтрация полных доменных имен SQL поддерживается только в прокси-режиме (порт 1433). В режиме прокси может наблюдаться увеличенная задержка по сравнению с режимом перенаправления. Если вы хотите продолжить пользоваться режимом перенаправления, который применяется для клиентов, подключающихся внутри Azure, по умолчанию можно фильтровать доступ, используя полные доменные имена в правилах сети брандмауэра.
Фильтрация трафика с помощью правил сети или приложений в Брандмауэр Azure
Следующие шаги позволяют Брандмауэр Azure фильтровать трафик с помощью правил сети (FQDN или IP-адресов) или правил приложения:
Правила сети.
Разверните виртуальную машину DNS-сервера пересылки в виртуальной сети, подключенной к защищенному виртуальному концентратору и связанной с Частными зонами DNS, где размещены записи типа "A" для частных конечных точек.
Настройте настраиваемые DNS-серверы для виртуальных сетей, подключенных к защищенному виртуальному концентратору:
- Правила сети на основе полного доменного имени — настройте настраиваемые параметры DNS, чтобы указать IP-адрес виртуальной машины пересылки DNS и включить DNS-прокси в политике брандмауэра, связанной с Брандмауэр Azure. Включение DNS-прокси требуется, если требуется выполнить фильтрацию полного доменного имени в правилах сети.
- Правила сети на основе IP-адресов — настраиваемые параметры DNS, описанные в предыдущей точке, являются необязательными. Настраиваемые DNS-серверы можно настроить для указания частного IP-адреса виртуальной машины пересылки DNS.
В зависимости от конфигурации, выбранной на шаге 2., настройте локальные DNS-серверы для пересылки DNS-запросов для частных конечных точек общедоступных зон DNS в частный IP-адрес Брандмауэр Azure или виртуальной машины пересылки DNS.
Настройте правило сети в соответствии с политикой брандмауэра, связанной с Брандмауэр Azure. Выберите IP-адреса типа назначения при переходе с правилом на основе IP-адресов и настройте IP-адрес частной конечной точки в качестве назначения. Для правил сети на основе FQDN выберите полное доменное имя типа назначения и настройте общедоступный полный доменный домен ресурса приватного канала в качестве назначения.
Перейдите к политике брандмауэра, связанной с Брандмауэр Azure, развернутой в защищенном виртуальном концентраторе. Выберите диапазоны частных IP-адресов (SNAT) и выберите параметр "Всегда выполнять SNAT".
Правила приложений.
Для правил приложения шаги 1. До 3. Из предыдущего раздела по-прежнему применяются. Для настраиваемой конфигурации DNS-сервера можно использовать Брандмауэр Azure в качестве DNS-прокси или напрямую указать виртуальную машину пересылки DNS.
Настройте правило приложения в соответствии с политикой брандмауэра, связанной с Брандмауэр Azure. Выберите полное доменное имя типа назначения и общедоступное полное доменное имя ресурса приватного канала в качестве назначения.
Наконец, и независимо от типа правил, настроенных в Брандмауэр Azure, убедитесь, что политики сети (по крайней мере для поддержки UDR) включены в подсетях, где развертываются частные конечные точки. Это гарантирует, что трафик, предназначенный для частных конечных точек, не обходит Брандмауэр Azure.
Внимание
По умолчанию префиксы RFC 1918 автоматически включаются в префиксы частного трафика Брандмауэр Azure. Для большинства частных конечных точек это будет достаточно, чтобы убедиться, что трафик из локальных клиентов или в разных виртуальных сетях, подключенных к одному защищенному концентратору, будет проверен брандмауэром. Если трафик, предназначенный для частных конечных точек, не регистрируется в брандмауэре, попробуйте добавить префикс /32 для каждой частной конечной точки в список префиксов частного трафика.
При необходимости можно изменить префиксы CIDR, которые проверяются с помощью Брандмауэр Azure в защищенном концентраторе следующим образом:
Перейдите к защищенным виртуальным центрам в политике брандмауэра, связанной с Брандмауэр Azure, развернутой в защищенном виртуальном концентраторе, и выберите защищенный виртуальный концентратор, где настроена фильтрация трафика, предназначенная для частных конечных точек.
Перейдите к элементу Конфигурация безопасности и в разделе Частный трафик выберите Send via Azure Firewall (Отправить через брандмауэр Azure).
Выберите префиксы частного трафика, чтобы изменить префиксы CIDR, которые проверяются с помощью Брандмауэр Azure в защищенном виртуальном концентраторе и добавьте один префикс /32 для каждой частной конечной точки.
Чтобы проверить трафик от клиентов в той же виртуальной сети, что и частные конечные точки, не обязательно переопределить маршруты /32 из частных конечных точек. Если политики сети включены в подсети частных конечных точек, UDR с более широким диапазоном адресов имеет приоритет. Например, настройте этот UDR с типом следующего прыжка для виртуального устройства, адрес следующего прыжка, заданный для частного IP-адреса Брандмауэр Azure, а для целевого префикса адреса — подсеть, выделенная для всех частных конечных точек, развернутых в виртуальной сети. Для параметра Propagate gateway routes (Распространение маршрутов шлюза) необходимо задать значение Да.
На следующей схеме показаны потоки DNS и данных трафика для разных клиентов, которые должны подключаться к частной конечной точке, развернутой в виртуальной глобальной сети Azure.
Устранение неполадок
Основные проблемы, которые могут возникнуть при попытке фильтрации трафика для частных конечных точек через защищенный виртуальный концентратор:
Клиенты не могут подключиться к частным конечным точкам.
Происходит обход Брандмауэра Azure. Этот симптом можно проверить отсутствие записей журнала правил сети или приложений в Брандмауэр Azure.
В большинстве случаев одна из следующих проблем вызывает следующие проблемы:
неправильное разрешение имен DNS;
Неправильная конфигурация маршрутизации
неправильное разрешение имен DNS;
Убедитесь, что для DNS-серверов виртуальной сети задано значение Пользовательский и IP-адрес является частным IP-адресом Брандмауэра Azure в защищенном виртуальном концентраторе.
Azure CLI:
az network vnet show --name <VNET Name> --resource-group <Resource Group Name> --query "dhcpOptions.dnsServers"
Убедитесь, что клиенты в той же виртуальной сети, что и виртуальная машина DNS-сервера пересылки, могут разрешить общедоступное полное доменное имя частной конечной точки в соответствующий частный IP-адрес, напрямую запросив виртуальную машину, настроенную как DNS-сервер пересылки.
Linux:
dig @<DNS forwarder VM IP address> <Private endpoint public FQDN>
Проверьте записи журнала Брандмауэра Azure AzureFirewallDNSProxy и убедитесь, что он может принимать и разрешать запросы DNS от клиентов.
AzureDiagnostics | where Category contains "DNS" | where msg_s contains "database.windows.net"
Убедитесь, что прокси-сервер DNS включен, а пользовательский DNS-сервер, указывающий на IP-адрес виртуальной машины DNS пересылки, настроен в политике брандмауэра, связанной с Брандмауэром Azure в защищенном виртуальном концентраторе.
Azure CLI:
az network firewall policy show --name <Firewall Policy> --resource-group <Resource Group Name> --query dnsSettings
Неправильная конфигурация маршрутизации
Проверьте раздел Конфигурация безопасности в политике брандмауэра, связанной с Брандмауэром Azure, развернутым в защищенном виртуальном концентраторе. Убедитесь, что в столбце PRIVATE TRAFFIC (ЧАСТНЫЙ ТРАФИК) указано Secured by Azure Firewall (Защищено брандмауэром Azure) для всех подключений виртуальной сети и ветвей, для которых требуется фильтровать трафик.
Проверьте раздел Конфигурация безопасности в политике брандмауэра, связанной с Брандмауэром Azure, развернутым в защищенном виртуальном концентраторе. Если трафик, предназначенный для частных конечных точек, не регистрируется в брандмауэре, попробуйте добавить префикс /32 для каждой частной конечной точки в список префиксов частного трафика.
В защищенном виртуальном концентраторе в разделе виртуальной глобальной сети проверьте действующие маршруты для таблиц маршрутов, связанных с подключениями виртуальных сетей и ветвей, для которых требуется фильтровать трафик. Если записи /32 были добавлены для каждой частной конечной точки, для которой требуется проверить трафик, убедитесь, что они указаны в эффективных маршрутах.
Проверьте действующие маршруты для сетевых адаптеров, подключенных к виртуальным машинам, развернутым в виртуальных сетях, для которых требуется фильтровать трафик. Убедитесь, что для каждого частного IP-адреса частной конечной точки есть записи /32, для которых требуется отфильтровать трафик (при добавлении).
Azure CLI:
az network nic show-effective-route-table --name <Network Interface Name> --resource-group <Resource Group Name> -o table
Проверьте таблицы маршрутизации локальных устройств маршрутизации. Запишите диапазоны адресов виртуальных сетей, в которых развернуты частные конечные точки.
Виртуальная глобальная сеть Azure не объявляет префиксы, настроенные в префиксах частного трафика в конфигурации политики безопасности брандмауэра в локальную среду. Ожидается, что записи /32 не отображаются в таблицах маршрутизации локальных устройств маршрутизации.
Проверьте журналы Брандмауэра Azure AzureFirewallApplicationRule и AzureFirewallNetworkRule. Убедитесь, что в журнал записывается трафик, предназначенный для частных конечных точек.
Записи журнала AzureFirewallNetworkRule не содержат сведений о полном доменном имени. Необходимо фильтровать по IP-адресу и порту при проверке правил сети.
При фильтрации трафика, предназначенного для Файлы Azure частных конечных точек, записи журнала AzureFirewallNetworkRule создаются только при первом подключении клиента или подключении к общей папке. Брандмауэр Azure не создает журналы для Операции CRUD для файлов в общей папке. Это обусловлено тем, что операции CRUD передаются с помощью постоянного канала TCP, открытого при первом подключении клиента к общей папке.
Пример запроса журнала правил приложений:
AzureDiagnostics | where msg_s contains "database.windows.net" | where Category contains "ApplicationRule"