Использование сетевых групп безопасности (NSG) Azure для создания DMZ сети

Все больше предприятий начинают помимо собственных ЦОД, использовать облачные ресурсы. Как и в случае с внутренней (on-premises) инфраструктурой, в облаке также возникает необходимость создавать различные зоны безопасности (например, доверенные зоны и DMZ).

В собственной инфраструктуре для сегментации сети как правило используются маршрутизаторы, коммутаторы 3 уровня и файерволы. Однако, в случае использования Azure, это не применимо. В Azure управлять трафиком между различными подсетями можно с помощью технологии Network Security Group (NSG). С помощью NSG администратор может ограничить доступ из одной подсети Azure в другую, а также в собственную сеть предприятия.

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

В моем случае цель использования NSG – развёртывание в Azure службы ADFS. Типичная конфигурация представляет собой 2 DC, 2 сервера ADFS, один сервер ADSync в доверенной подсети и 2 сервера WAP в подсети DMZ.

ADFS + WAP в DMZ сети Azure

Настройка групп NSG выполняется с помощью Azure PowerShell.

Сначала создадим дефолтную группу NSG. Нужно указать ее имя, местоположение и описание.

New-AzureNetworkSecurityGroup -Name "WAP-HTTPS" -Location "West Europe" -Label "Security group for DMZ"

После того, как группа NSG создана, можно отобразить привязанные к ней правила.

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" –Detailed

Пока разрешен весь трафик.

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

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" | Set-AzureNetworkSecurityRule -Name "Allow Inbound RDP from Internal Netks" -Type Inbound -Priority 101 -Action Allow -SourceAddressPrefix 'VIRTUAL_NETWORK'  -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '3389' -Protocol TCP

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" | Set-AzureNetworkSecurityRule -Name "Allow Inbound HTTPS from Internet" -Type Inbound -Priority 105 -Action Allow -SourceAddressPrefix 'INTERNET'  -SourcePortRange '*' -DestinationAddressPrefix "DMZ Subnet" -DestinationPortRange '443' -Protocol TCP

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" | Set-AzureNetworkSecurityRule -Name "Allow Inbound RDP from Internet" -Type Inbound -Priority 107 -Action Allow -SourceAddressPrefix 'INTERNET'  -SourcePortRange '*' -DestinationAddressPrefix "DMZ Subnet" -DestinationPortRange '3389' -Protocol TCP

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" | Set-AzureNetworkSecurityRule -Name "Deny Inbound traffic to Trusted Subnet" -Type Inbound -Priority 200 -Action Deny -SourceAddressPrefix 'VIRTUAL_NETWORK'  -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '*' -Protocol '*'

После того, как заданы правила для входящего трафика, теперь можно описать правила для исходящего из DMZ трафика (открываем только 443 порт).

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" | Set-AzureNetworkSecurityRule -Name "Allow Outbound HTTPS from DMZ" -Type Outbound -Priority 100 -Action Allow -SourceAddressPrefix 'VIRTUAL_NETWORK'  -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '443' -Protocol TCP

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" | Set-AzureNetworkSecurityRule -Name "Deny Outbound traffic from DMZ" -Type Outbound -Priority 200 -Action Deny -SourceAddressPrefix 'VIRTUAL_NETWORK'  -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '*' -Protocol '*'

Еще раз выведем полный список правил для нашей группы:

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" –Detailed

Get-AzureNetworkSecurityGroup –Detailed

Ну и наконец, нужно привязать созданное правило к подсети DMZ

Get-AzureNetworkSecurityGroup -Name "WAP-HTTPS" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName "vNET" -SubnetName "DMZ Subnet"

Совет. При изменении правил в NSG, они не применяются немедленно, приходится ждать некоторое время.

Опубликовано в Azure

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *