Поделиться через


Развертывание и настройка Брандмауэра Azure с помощью Azure CLI

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

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

  • Правила приложений, определяющие полные доменные имена (FQDN), к которым можно получить доступ из подсети. Полное доменное имя может также содержать экземпляры SQL.
  • Правила сети, определяющие адрес источника, протокол, порт назначения и адрес назначения.

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

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

  • AzureFirewallSubnet — в этой подсети находится брандмауэр.
  • Workload-SN — в этой подсети находится сервер рабочей нагрузки. Трафик этой подсети проходит через брандмауэр.
  • Jump-SN — в этой подсети находится сервер перехода. Сервер перехода имеет общедоступный IP-адрес, к которому можно подключиться с помощью удаленного рабочего стола. Затем вы можете подключиться к серверу рабочей нагрузки (используя другой удаленный рабочий стол).

Схема сетевой инфраструктуры.

В этой статье вы узнаете, как:

  • настройка тестовой сетевой среды;
  • развертывание брандмауэра;
  • Создание маршрута по умолчанию
  • Настройка правила приложения для предоставления доступа к www.microsoft.com
  • настройка сетевых правил для предоставления доступа к внешним DNS-серверам;
  • тестирование брандмауэра.

Вы можете также выполнить эту процедуру, используя портал Azure или Azure PowerShell.

Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

Предварительные условия

  • Для этой статьи требуется версия 2.55.0 или более поздняя версия Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Настройка сети

Сначала создайте группу ресурсов, необходимых для развертывания брандмауэра. Затем создайте виртуальную сеть, подсети и тестовые серверы.

Создать группу ресурсов

Группа ресурсов содержит все ресурсы, необходимые для этого развертывания.

az group create --name Test-FW-RG --location eastus

Создание виртуальной сети

Эта виртуальная сеть содержит три подсети.

Примечание.

Размер подсети AzureFirewallSubnet равен /26. Дополнительные сведения о размере подсети см. в статье с часто задаваемыми вопросами о Брандмауэре Azure.

az network vnet create \
  --name Test-FW-VN \
  --resource-group Test-FW-RG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name AzureFirewallSubnet \
  --subnet-prefix 10.0.1.0/26
az network vnet subnet create \
  --name Workload-SN \
  --resource-group Test-FW-RG \
  --vnet-name Test-FW-VN   \
  --address-prefix 10.0.2.0/24
az network vnet subnet create \
  --name Jump-SN \
  --resource-group Test-FW-RG \
  --vnet-name Test-FW-VN   \
  --address-prefix 10.0.3.0/24

Создание виртуальных машин

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

Создайте виртуальную машину Srv-Jump.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Jump \
    --location eastus \
    --image win2016datacenter \
    --vnet-name Test-FW-VN \
    --subnet Jump-SN \
    --admin-username azureadmin
az vm open-port --port 3389 --resource-group Test-FW-RG --name Srv-Jump

Создайте сетевой адаптер для Srv-Work с конкретными IP-адресами DNS-сервера и без общедоступного IP-адреса для тестирования.

az network nic create \
    -g Test-FW-RG \
    -n Srv-Work-NIC \
   --vnet-name Test-FW-VN \
   --subnet Workload-SN \
   --public-ip-address "" \
   --dns-servers <replace with External DNS ip #1> <replace with External DNS ip #2>

Теперь создайте виртуальную машину с рабочей нагрузкой. При появлении запроса введите пароль для виртуальной машины.

az vm create \
    --resource-group Test-FW-RG \
    --name Srv-Work \
    --location eastus \
    --image win2016datacenter \
    --nics Srv-Work-NIC \
    --admin-username azureadmin

Примечание.

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

IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:

  • Общедоступный IP-адрес назначается виртуальной машине.
  • Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
  • Ресурс Azure NAT Gateway назначается в подсеть виртуальной машины.

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

Дополнительные сведения об исходящих подключениях в Azure см. в статье об исходящем доступе по умолчанию в Azure и использовании преобразования исходящих сетевых адресов (SNAT) для исходящих подключений.

Развертывание брандмауэра

Теперь разверните брандмауэр в виртуальной сети.

az network firewall create \
    --name Test-FW01 \
    --resource-group Test-FW-RG \
    --location eastus
az network public-ip create \
    --name fw-pip \
    --resource-group Test-FW-RG \
    --location eastus \
    --allocation-method static \
    --sku standard
az network firewall ip-config create \
    --firewall-name Test-FW01 \
    --name FW-config \
    --public-ip-address fw-pip \
    --resource-group Test-FW-RG \
    --vnet-name Test-FW-VN
az network firewall update \
    --name Test-FW01 \
    --resource-group Test-FW-RG 
az network public-ip show \
    --name fw-pip \
    --resource-group Test-FW-RG
fwprivaddr="$(az network firewall ip-config list -g Test-FW-RG -f Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"

Запишите частный IP-адрес. Вы будете использовать его позже при создании маршрута по умолчанию.

Создание маршрута по умолчанию

Создание таблицы маршрутов с отключенным распространением маршрутов BGP

az network route-table create \
    --name Firewall-rt-table \
    --resource-group Test-FW-RG \
    --location eastus \
    --disable-bgp-route-propagation true

Создайте маршрут.

az network route-table route create \
  --resource-group Test-FW-RG \
  --name DG-Route \
  --route-table-name Firewall-rt-table \
  --address-prefix 0.0.0.0/0 \
  --next-hop-type VirtualAppliance \
  --next-hop-ip-address $fwprivaddr

Свяжите таблицу маршрутов с подсетью.

az network vnet subnet update \
    -n Workload-SN \
    -g Test-FW-RG \
    --vnet-name Test-FW-VN \
    --address-prefixes 10.0.2.0/24 \
    --route-table Firewall-rt-table

Настройка правила приложения

Правило приложения разрешает исходящий доступ к www.microsoft.com.

az network firewall application-rule create \
   --collection-name App-Coll01 \
   --firewall-name Test-FW01 \
   --name Allow-Microsoft \
   --protocols Http=80 Https=443 \
   --resource-group Test-FW-RG \
   --target-fqdns www.microsoft.com \
   --source-addresses 10.0.2.0/24 \
   --priority 200 \
   --action Allow

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

Настройка правила сети

Правило сети разрешает исходящий доступ к двум общедоступным IP-адресам DNS, выбранным через порт 53 (DNS).

az network firewall network-rule create \
   --collection-name Net-Coll01 \
   --destination-addresses <replace with DNS ip #1> <replace with DNS ip #2> \
   --destination-ports 53 \
   --firewall-name Test-FW01 \
   --name Allow-DNS \
   --protocols UDP \
   --resource-group Test-FW-RG \
   --priority 200 \
   --source-addresses 10.0.2.0/24 \
   --action Allow

тестирование брандмауэра.

Теперь проверьте брандмауэр, чтобы убедиться, что он работает должным образом.

  1. Запишите частный IP-адрес для виртуальной машины Srv-Work.

    az vm list-ip-addresses \
    -g Test-FW-RG \
    -n Srv-Work
    
  2. Подключите удаленный рабочий стол к виртуальной машине Srv-Jump и выполните вход. Откройте из нее подключение удаленного рабочего стола по частному IP-адресу Srv-Work и выполните вход.

  3. На виртуальной машине Srv-Work откройте окно PowerShell и выполните следующие команды:

    nslookup www.google.com
    nslookup www.microsoft.com
    

    Обе команды должны вернуть ответы, подтверждающие успешное прохождение DNS-запросов через брандмауэр.

  4. Выполните следующие команды:

    Invoke-WebRequest -Uri https://www.microsoft.com
    Invoke-WebRequest -Uri https://www.microsoft.com
    
    Invoke-WebRequest -Uri <Replace with external website>
    Invoke-WebRequest -Uri <Replace with external website>
    

    Запросы www.microsoft.com должны завершиться успешно, а другие External Website запросы должны завершиться ошибкой. Это подтвердит, что правила брандмауэра работают правильно.

Итак, теперь вы убедились в том, что правила брандмауэра работают:

  • Вы можете разрешить имена DNS с помощью настроенного внешнего DNS-сервера.
  • Вы можете перейти к одному разрешенному полному доменному имени (FQDN), но не к другим.

Очистка ресурсов

Вы можете сохранить ресурсы брандмауэра для следующего руководства или удалить группу ресурсов Test-FW-RG вместе со всеми ресурсами брандмауэра, если они больше не нужны.

az group delete \
  -n Test-FW-RG

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