O Azure Firewall é um serviço gerenciado de segurança de rede baseado em nuvem que protege seus recursos da Rede Virtual do Azure. É um firewall como um serviço totalmente dinâmico com alta disponibilidade integrada e escalabilidade de nuvem irrestrita. Você pode criar, aplicar e registrar de forma centralizada as políticas de conectividade de rede e aplicativo em assinaturas e redes virtuais. O Firewall do Azure usa um endereço IP público estático para seus recursos de rede virtual, permitindo que firewalls externos identifiquem o tráfego originado de sua rede virtual. O serviço é totalmente integrado ao Azure Monitor para registro e análise.
O controle do acesso à saída de rede é uma parte importante de um plano geral de segurança de rede. Por exemplo, você talvez queira limitar o acesso a sites. Ou você talvez queira limitar os endereços IP e portas de saída que podem ser acessados.
Uma maneira de controlar o acesso à saída de rede em uma sub-rede do Azure é com o Firewall do Azure. Com o Firewall do Azure, você pode configurar:
- Regras de aplicativo que definem FQDNs (nomes de domínio totalmente qualificados) que podem ser acessados em uma sub-rede.
- Regras de rede que definem endereço de origem, protocolo, porta de destino e endereço de destino.
O tráfego de rede está sujeito às regras de firewall configuradas quando o tráfego de rede para o firewall foi roteado como a sub-rede de gateway padrão.
Cenário:
- AzureFirewallSubnet: o firewall está nesta sub-rede.
- VM-01: o servidor de carga de trabalho está nessa sub-rede. O tráfego de rede dessa sub-rede passa pelo firewall.
Neste tutorial, você aprenderá como:
- Configurar um ambiente de rede
- Implantar um firewall
- Criar uma rota padrão
- Configure uma regra de aplicativo para permitir acesso a www.google.com e jadsonalves.com.br
- Configurar uma regra de rede para permitir o acesso a servidores DNS externos
- Configurar uma regra NAT para permitir uma Área de Trabalho Remota para os servidores
- Testar o firewall
Configurar a Rede
01 – Execute o script abaixo para uma virtual network e duas subnets.
O script utilizado abaixo também está disponível para download no GitHub.
## Criar virtual network e duas subnets ##
# Variáveis
$Resourcegroup = “RG-FW”
$Location = “EastUS”
$Vnet = “Vnet-Servidores”
$Sub1 = “subnet-Servidores”
$Sub2 = “AzureFirewallSubnet”
# Criar o Resource Group
New-AzResourceGroup -name $Resourcegroup -Location $Location
# Criar virtual network
$virtualNetwork = New-AzVirtualNetwork -ResourceGroupName $Resourcegroup -Location $Location -Name $Vnet -AddressPrefix 10.0.0.0/16
# Adicionar uma subnet
$subnetConfig = Add-AzVirtualNetworkSubnetConfig -Name $Sub1 -AddressPrefix 10.0.1.0/24 -VirtualNetwork $virtualNetwork
#Adicionar uma segunda subnet
$subnetConfig2 = Add-AzVirtualNetworkSubnetConfig -Name $Sub2 -AddressPrefix 10.0.100.0/26 -VirtualNetwork $virtualNetwork
# Associar a subnet à virtual network
$virtualNetwork | Set-AzVirtualNetwork
Observação: A sub-rede AzureFirewallSubnet é /26.
O Firewall do Azure deve provisionar mais instâncias de máquina virtual conforme ele se expande. Um espaço de endereço / 26 garante que o firewall tenha endereços IP suficientes disponíveis para acomodar o dimensionamento.
Como podemos observar na imagem abaixo a virtual network e subnets forma criados com sucesso.
Criar uma máquina virtual
02 – Execute o script abaixo cria uma máquina virtual Windows na virtual network Vnet-Servidores
O script utilizado abaixo também está disponível para download no github.
# Definindo as variáveis de rede
$ResourceGroup = “RG-VM-01” # Variável com o nome do grupo de recursos
$ResourceGroupvnet = “RG-FW” # Variável com o nome do grupo de recursos onde a rede virtual está
$Location = “EastUS” # Variável com o nome do grupo de recursos
$vNetName = “Vnet-Servidores” # Variável com o nome da rede virtual
$SubnetName = “subnet-Servidores” # Variável com o nome da sub-rede
$nsgName = “nsg-Vnet-Servidores” # Variável com o nome do grupo de segurança de rede
$adminUsername = ‘jadson.alves’ # Variável com o nome do administrador da máquina
$adminPassword = ‘Pa$$w0rd.qwe1234’ # Variável com a senha do usuário administrador da máquina
$vmName = “VM-01” # Variável com o nome da máquina virtual
# Criar o Resource Group
New-AzResourceGroup -name $ResourceGroup -Location $Location
# Criando o Network Security Group
$nsgRuleVMAccess = New-AzNetworkSecurityRuleConfig -Name ‘allow-vm-access’ -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389,443,80 -Access Allow
New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroup -Location $location -Name $nsgName -SecurityRules $nsgRuleVMAccess
# Definindo as variáveis da máquina virtual
$vNet = Get-AzVirtualNetwork -ResourceGroupName $ResourceGroupvnet -Name $vNetName
$Subnet = Get-AzVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $vNet
$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroup -Name $NsgName
$pubName = “MicrosoftWindowsServer”
$offerName = “WindowsServer”
$skuName = “2016-Datacenter”
$vmSize = “Standard_DS2_v2”
$pipName = “$vmName-pip”
$nicName = “$vmName-nic”
$osDiskName = “$vmName-OsDisk”
$osDiskType = “Standard_LRS”
# Definindo as credenciais de administrador
$pw = ConvertTo-SecureString $adminPassword -AsPlainText -Force
$adminCreds = New-Object System.Management.Automation.PSCredential (“$adminUsername”, $pw)
# Criando IP público e interface de rede NIC
$pip = New-AzPublicIpAddress -Name $pipName -ResourceGroupName $ResourceGroup -Location $location -AllocationMethod Static
$nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $ResourceGroup -Location $location -SubnetId $Subnet.Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Adicionando as configurações da máquina virtual
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
# Setando os parâmetros do sistema operacional
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $adminCreds
# Setando a imagem utilizada na máquina virtual
Set-AzVMSourceImage -VM $vmConfig -PublisherName $pubName -Offer $offerName -Skus $skuName -Version ‘latest’
# Setando as configurações de disco
Set-AzVMOSDisk -VM $vmConfig -Name $osDiskName -StorageAccountType $osDiskType -CreateOption fromImage
# Desabilitando o diagnóstico de boot
Set-AzVMBootDiagnostic -VM $vmConfig -Disable
# Criando a máquina virtual
New-AzVM -ResourceGroupName $ResourceGroup -Location $location -VM $vmConfig
Como podemos observar na imagem abaixo a máquina virtual e todos os recursos associados foram criados.
Implantar o firewall
03 – No portal do Azure pesquise por Firewalls.
04 – Na tela Firewalls, clique em + Add.
05 – Na tela Create firewall, para a opção Project details selecione a subscription e resource group. Para opção Instance details selecione um nome para o firewall, região e se deseja utilizar Availability zone em nosso exemplo não vamos utilizar. Para a opção Firewall Tier vamos utilizar Standard para maiores informações de como realizar a configuração Premium preview) clique nesse link, para a opção Firewall management selecione Use Firewall rules (classic) to manage this firewall, para a opção Choose a virtual network selecione Use existing e selecione a virtual network Vnet-Servidores, para a opção Public IP address clique em Add new selecione um nome para o IP publico e clique em Ok, em seguida clique em Review + create.
06 – Na tela Review + create, verifique se todas as informações estão corretas e clique em Create.
07 – Como podemos observar na imagem abaixo o firewall foi provisionado com sucesso.
Configurar a Rota
O Azure roteia o tráfego automaticamente entre redes virtuais, redes locais e sub-redes do Azure. Se você desejar alterar qualquer roteamento padrão do Azure, poderá criar uma tabela de rotas para fazer isso.
Todo o trafego vindo da internet será roteado para nosso firewall FW01-EastUS.
08 – No portal do Azure pesquise por Route table.
09 – Na tela Route tables, clique em + Add.
10 – Na tela Create Route table, selecione a subscription, resource group em seguida selecione a região, nome e clique em Review + create.
11 – Na tela Review + create, verifique se todas as informações estão corretas e clique em Create.
12 – Como podemos observar o recurso foi criado com sucesso, clique em Go to resource.
13 – Na tela Route-FW01-EastUS, navegue até settings, clique em Routes e clique em + Add.
14 – Na tela Add route, selecione um nome para a rota, para a opção Address prefix digite o seguinte endereço IP que corresponde a qualquer endereço da internet 0.0.0.0/0, para a opção Next hop type selecione virtual appliance em Next hop address digite o endereço IP privado do firewall FW01-EastUS.
Na imabem abaixo podemos observar o endereço IP privado do Firewall.
15 – Como podemos observar na imagem abaixo a rota ficou configurada da seguinte forma:
16 – Nosso próximo passo será associar a rota a uma subnet, clique em Subnets e em + Associate.
16 – Na tela Associate subnet, selecione a virtual network Vnet-Servidores para a opção Subnet selecione a subnet-Servidores e clique em OK.
17 – Como podemos observar na imagem abaixo a rota foi associada a subnet-Servidores.
Configurar uma regra de aplicativo
Vamos criar duas regras de aplicativo que permite o acesso de saída para os sites www.google.com e jadsonalves.com.br
18 – Na tela do firewall, em Settings clique em Rules (classic).
19 – Selecione Application rule collection e clique em + Add application rule collection.
20 – A tela Add application rule colelction será aberta, selecione um nome para a regra, a prioridade da regra e a ação. Em Target FQDNs selecione um nome, em Source type selecione IP address em Source digite o range de endereços IP da subnet subnet-Servidores 10.0.1.0/24 , em Protocol:Port digite http,https, em Target FWDNs digite o endereço do site que deseja liberar em nosso exemplo será www.google.com, em seguida clique em Add.
21 – Agora vamos criar a regra de aplicativo que libera o acesso ao site jadsonalves.com.br, + Add aplication rule collection, a tela Add application rule colelction será aberta, selecione um nome para a regra, a prioridade da regra e a ação. Em Target FQDNs selecione um nome em Source type selecione IP address em Source digite o range de endereços IP da subnet subnet-Servidores 10.0.1.0/24 , em Protocol:Port digite http,https, em Target FQDNs digite o endereço do site que deseja liberar em nosso exemplo será jadsonalves.com.br, em seguida clique em Add.
22 – Como podemos observar na imagem abaixo nossas regras de aplicativos foram criadas com sucesso.
Configurar uma regra de rede
Essa é a regra de rede que permite o acesso de saída para dois endereços IP na porta 53 (DNS). Nessa regra estamos liberando o endereço IP do DNS do google para nossa rede.
23 – Na tela do firewall, em Rules (classic) selecione Network rule collection e clique em + Add network rule collection.
24 – A tela Add network rule collection será aberta, digite um nome para a regra, prioridade e ação, em Rules IP addresses digite um nome para a regra, selecione o protocolo UDP em Source type selecione IP address, em source digite o endereço IP da subnet-Servidores 10.0.1.0/24, em Destination type selecione IP address em Destination Addresses digite o endereço IP dos servidores DNS do google (8.8.8.8 e 8.8.4.4), para a opção Destination Ports digite 53, em seguida clique em Add.
25 – Como podemos observar na imagem abaixo a regra de rede foi criada com sucesso.
Configurar a regra de NAT
Esta regra permite conectar na máquina virtual VM-01 utilizando o protocolo RD com o endereço IP publico do firewall.
26 – Na tela do firewall, em Rules (classic) selecione Nat rule collection e clique em + Add Nat rule collection.
27 – A tela Add Nat rule collection será aberta, selecione um nome para regra, prioridade. em Rules digite um nome, em protocolo selecione TCP, em Source type selecione IP address, em Source selecione qualquer origem, Em Destination Addresses, digite o endereço IP público do firewall 52.188.30.12, em Destination Ports digite 3389, para a opção Translated address digite o endereço IP privado da máquina virtual VM-01 (10.0.1.4), para Translated port digite 3389.
26 – Como podemos observar na imagem abaixo a regra de NAT foi criada com sucesso.
Alterando o DNS da rede
Testando o firewall
Testando a regra de NAT
Testando a regra de aplicativo
Comente suas sugestões e observações! Forte abraço, obrigado e até o próximo post.
Carreira desenvolvida na área de tecnologia da informação, com ampla experiência em Cloud
Computing e Cloud Security.
Forte atuação em projetos de Cloud Security no Microsoft Azure e com tecnologias de
segurança do Microsoft 365.
Tenho Experiência em Microsoft Azure, Microsoft 365, AWS e Windows Server.
Sou Microsoft MVP na categoria Microsoft Azure, AWS Communit Builder Security & Identity e
MCT.
Top esse, muito bom Jádson.
Obrigado Mauricio, fico feliz que tenha gostado.
Forte abraço!