Configurando o Azure Firewall para Proteção de Rede Avançada
08/08/2024
Este artigo técnico e educativo tem como objetivo guiar analistas de segurança, administradores de TI e engenheiros de sistemas na configuração e utilização do Azure Firewall para proteção de rede avançada. O Azure Firewall é um serviço de segurança de rede gerenciado e baseado em nuvem que fornece proteção de ameaças de Camada 4 e Camada 7 para recursos de rede do Azure, permitindo a centralização do controle de rede e a implementação de políticas de segurança consistentes em ambientes de nuvem [1].
Introdução
Em um cenário de nuvem em constante crescimento, a segurança da rede é um pilar fundamental para proteger aplicações e dados. O Azure Firewall oferece uma solução robusta para inspecionar e controlar o tráfego de rede, atuando como um ponto central de aplicação de políticas de segurança. Ele vai além das Network Security Groups (NSGs) básicas, fornecendo recursos avançados como filtragem de tráfego baseada em FQDN (Fully Qualified Domain Name), inteligência de ameaças, IDPS (Intrusion Detection and Prevention System) e inspeção TLS, tornando-o essencial para arquiteturas de rede seguras no Azure, especialmente em modelos Hub-and-Spoke [2].
Este guia prático abordará a implantação do Azure Firewall, a configuração de regras de rede e aplicação, a ativação de inteligência de ameaças e IDPS, a integração com outros serviços Azure e as melhores práticas para a governança de rede. Serão fornecidas instruções passo a passo, exemplos de comandos Azure CLI e para que o leitor possa implementar e validar uma estratégia de proteção de rede eficaz, reduzindo a superfície de ataque e fortalecendo a resiliência cibernética de sua infraestrutura Azure.
Por que o Azure Firewall é crucial para a Proteção de Rede Avançada?
- Filtragem de Tráfego Avançada: Permite filtrar o tráfego de rede com base em endereços IP, portas, protocolos, FQDNs e URLs, oferecendo um controle granular.
- Inteligência de Ameaças: Bloqueia automaticamente o tráfego de/para domínios e endereços IP maliciosos conhecidos, com base em feeds de inteligência de ameaças da Microsoft.
- IDPS (Intrusion Detection and Prevention System): Detecta e bloqueia ataques baseados em assinatura em tempo real, incluindo explorações de vulnerabilidades e malware.
- Inspeção TLS: Descriptografa o tráfego TLS/SSL de saída para inspecionar ameaças ocultas e aplica políticas de segurança, re-criptografando-o antes de enviá-lo ao destino.
- Implantação Centralizada: Pode ser implantado em uma rede virtual hub para proteger várias redes virtuais spoke, simplificando o gerenciamento e a aplicação de políticas.
- Alta Disponibilidade e Escalabilidade: É um serviço totalmente gerenciado, com alta disponibilidade integrada e escalabilidade automática para lidar com picos de tráfego.
- Integração com o Ecossistema Azure: Integra-se perfeitamente com o Azure Monitor, Azure Sentinel e Azure Firewall Manager para monitoramento, análise e gerenciamento centralizado.
Pré-requisitos
Para configurar o Azure Firewall para proteção de rede avançada, você precisará dos seguintes itens:
- Assinatura Azure Ativa: Uma assinatura Azure para criar e gerenciar recursos.
- Acesso Administrativo: Uma conta com a função de
ProprietárioouColaboradorna assinatura Azure, ou no grupo de recursos onde o Firewall e as VNets serão implantados. - Redes Virtuais Azure (VNets): Pelo menos uma VNet para implantar o Azure Firewall e, idealmente, uma arquitetura Hub-and-Spoke para demonstração.
- Opcional: Máquinas Virtuais (VMs): VMs implantadas em VNets spoke para testar as regras do firewall.
- Azure CLI ou Azure PowerShell: Ferramentas de linha de comando instaladas e configuradas para interagir com o Azure.
Passo a Passo: Configurando o Azure Firewall para Proteção Avançada
Vamos implantar um Azure Firewall e configurar suas principais funcionalidades.
1. Preparando a Arquitetura Hub-and-Spoke
Uma arquitetura Hub-and-Spoke é uma topologia de rede comum no Azure, onde a VNet hub contém serviços compartilhados (como o Azure Firewall) e as VNets spoke contêm as cargas de trabalho. O tráfego entre as spokes e para a internet é roteado através do hub.
- Criar Grupo de Recursos: Crie um grupo de recursos para todos os recursos.
bash az group create --name RG-Firewall-Artigos --location eastus - Criar VNet Hub: Crie uma VNet para o hub com uma sub-rede dedicada para o Azure Firewall (
AzureFirewallSubnet).bash az network vnet create --name VNet-Hub --resource-group RG-Firewall-Artigos --address-prefix 10.0.0.0/16 --location eastus az network vnet subnet create --name AzureFirewallSubnet --vnet-name VNet-Hub --resource-group RG-Firewall-Artigos --address-prefix 10.0.1.0/24 - Criar VNet Spoke: Crie uma VNet para a spoke com uma sub-rede para as VMs.
bash az network vnet create --name VNet-Spoke --resource-group RG-Firewall-Artigos --address-prefix 10.1.0.0/16 --location eastus az network vnet subnet create --name WorkloadSubnet --vnet-name VNet-Spoke --resource-group RG-Firewall-Artigos --address-prefix 10.1.1.0/24 - Configurar Peering de VNets: Conecte a VNet hub e a VNet spoke via peering.
bash az network vnet peering create --name HubToSpoke --resource-group RG-Firewall-Artigos --vnet-name VNet-Hub --remote-vnet VNet-Spoke --allow-vnet-access az network vnet peering create --name SpokeToHub --resource-group RG-Firewall-Artigos --vnet-name VNet-Spoke --remote-vnet VNet-Hub --allow-vnet-access
2. Implantando o Azure Firewall
-
Criar Azure Firewall: Implante o Azure Firewall na
AzureFirewallSubnetda VNet hub.bash az network firewall create --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --location eastus --sku Standard az network firewall ip-config create --firewall-name AzureFirewall-01 --name AzureFirewall-IP --resource-group RG-Firewall-Artigos --vnet-name VNet-Hub --public-ip-address az-firewall-pip- Nota: O comando
az network firewall ip-config createcriará automaticamente um IP Público para o Firewall se você fornecer um nome (ex:az-firewall-pip).
- Nota: O comando
-
Obter IP Privado do Firewall: Anote o IP privado do Azure Firewall, pois ele será usado para roteamento.
bash az network firewall show --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --query ipConfigurations[0].privateIpAddress -o tsv
3. Configurando o Roteamento para o Azure Firewall
Para que o tráfego da VNet spoke passe pelo Azure Firewall, precisamos criar uma Tabela de Rotas (Route Table) e associá-la à sub-rede da spoke.
- Criar Tabela de Rotas: Crie uma tabela de rotas.
bash az network route-table create --name FirewallRouteTable --resource-group RG-Firewall-Artigos --location eastus - Adicionar Rota Padrão: Adicione uma rota padrão (0.0.0.0/0) que direcione todo o tráfego para o IP privado do Azure Firewall.
bash # Substitua <FIREWALL_PRIVATE_IP> pelo IP privado obtido no passo anterior FIREWALL_PRIVATE_IP=$(az network firewall show --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --query ipConfigurations[0].privateIpAddress -o tsv) az network route-table route create --name DefaultRouteToFirewall --resource-group RG-Firewall-Artigos --route-table-name FirewallRouteTable --address-prefix 0.0.0.0/0 --next-hop-type VirtualAppliance --next-hop-ip-address $FIREWALL_PRIVATE_IP - Associar Tabela de Rotas à Sub-rede da Spoke: Associe a tabela de rotas à
WorkloadSubnetdaVNet-Spoke.bash az network vnet subnet update --name WorkloadSubnet --vnet-name VNet-Spoke --resource-group RG-Firewall-Artigos --route-table FirewallRouteTable
4. Configurando Regras do Azure Firewall
O Azure Firewall usa coleções de regras para controlar o tráfego. Existem três tipos de regras: Regras de Rede, Regras de Aplicação e Regras NAT.
4.1. Regras de Rede (Network Rules)
Controlam o tráfego de Camada 3 e Camada 4 (IP, portas, protocolos).
-
Permitir Tráfego de Saída para DNS: Essencial para a resolução de nomes.
bash az network firewall network-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-DNS" --name "Allow-DNS-Outbound" --resource-group RG-Firewall-Artigos --priority 100 --action Allow --source-addresses "*" --destination-addresses "*" --protocols UDP --destination-ports 53 -
Permitir Tráfego de Saída para um IP Específico: Exemplo: permitir acesso a um servidor de patch.
bash az network firewall network-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-Patch-Server" --name "Allow-Patch-Server-Outbound" --resource-group RG-Firewall-Artigos --priority 110 --action Allow --source-addresses "10.1.1.0/24" --destination-addresses "20.1.2.3" --protocols TCP --destination-ports 443
4.2. Regras de Aplicação (Application Rules)
Controlam o tráfego de Camada 7 (HTTP/HTTPS) com base em FQDNs.
-
Permitir Acesso a Sites da Microsoft: Exemplo: permitir acesso a
learn.microsoft.com.bash az network firewall application-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-Microsoft-Sites" --name "Allow-Learn-Microsoft" --resource-group RG-Firewall-Artigos --priority 100 --action Allow --source-addresses "10.1.1.0/24" --protocols Http=80 Https=443 --fqdn-tags "Microsoft.Websites" --target-fqdns "learn.microsoft.com"- Dica:
Fqdn-tagssão grupos de FQDNs pré-definidos pela Microsoft para serviços comuns.
- Dica:
-
Bloquear Acesso a Sites Maliciosos: Por padrão, o Azure Firewall bloqueia tudo que não é explicitamente permitido. No entanto, você pode criar regras de negação explícitas para FQDNs específicos.
bash az network firewall application-rule create --firewall-name AzureFirewall-01 --collection-name "Block-Malicious-Sites" --name "Block-Bad-Site" --resource-group RG-Firewall-Artigos --priority 200 --action Deny --source-addresses "10.1.1.0/24" --protocols Https=443 --target-fqdns "badsite.com"
4.3. Regras NAT (Network Address Translation)
Permitem que você direcione o tráfego de entrada para recursos internos (DNAT - Destination NAT).
-
Permitir Acesso RDP Externo a uma VM (com cautela!): Exemplo: permitir RDP para uma VM de um IP público específico. ```bash # Crie uma VM na WorkloadSubnet para testar az vm create --name TestVM --resource-group RG-Firewall-Artigos --image UbuntuLTS --size Standard_B1s --vnet-name VNet-Spoke --subnet WorkloadSubnet --admin-username azureuser --admin-password "P@ssw0rd12345!" --no-wait
Obtenha o IP privado da VM
VM_PRIVATE_IP=$(az vm show --name TestVM --resource-group RG-Firewall-Artigos --query privateIps -o tsv)
Obtenha o IP público do Firewall
FIREWALL_PUBLIC_IP=$(az network public-ip show --name az-firewall-pip --resource-group RG-Firewall-Artigos --query ipAddress -o tsv)
Crie a regra DNAT
az network firewall nat-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-RDP-Inbound" --name "RDP-to-TestVM" --resource-group RG-Firewall-Artigos --priority 100 --action Dnat --source-addresses "YOUR_PUBLIC_IP" --destination-addresses $FIREWALL_PUBLIC_IP --protocols TCP --destination-ports 3389 --translated-address $VM_PRIVATE_IP --translated-port 3389
`` * **ATENÇÃO**: SubstituaYOUR_PUBLIC_IP` pelo seu endereço IP público real para restringir o acesso. Não use "*" em produção para regras DNAT.
5. Configurando o Azure Firewall Premium (IDPS e Inspeção TLS)
Para recursos de proteção avançada como IDPS e Inspeção TLS, você precisa de um Azure Firewall Premium.
-
Atualizar SKU do Firewall (se necessário): Se você criou um Firewall Standard, pode atualizá-lo para Premium.
bash az network firewall update --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --sku Premium -
Configurar Inspeção TLS: Para inspeção TLS, você precisa de um certificado SSL/TLS emitido por uma CA corporativa ou pública, armazenado no Azure Key Vault.
- Pré-requisito: Certificado no Azure Key Vault (veja o artigo anterior sobre Azure Key Vault para detalhes).
- Crie uma política de Firewall (Firewall Policy) e associe-a ao Firewall.
bash az network firewall policy create --name FirewallPolicy-01 --resource-group RG-Firewall-Artigos --location eastus az network firewall policy update --name FirewallPolicy-01 --resource-group RG-Firewall-Artigos --threat-intel-mode Alert az network firewall update --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --firewall-policy FirewallPolicy-01 - No portal do Azure, navegue até a
Firewall Policy-> Configurações -> Inspeção TLS. - Habilite a inspeção TLS e selecione o certificado raiz do seu Key Vault.
-
Configurar IDPS: O IDPS é habilitado e configurado através da Firewall Policy.
- No portal do Azure, navegue até a
Firewall Policy-> Configurações -> IDPS. - Você pode configurar o modo IDPS (Alerta ou Alerta e Negar) e criar regras de assinatura IDPS personalizadas.
- No portal do Azure, navegue até a
6. Ativando a Inteligência de Ameaças
A inteligência de ameaças do Azure Firewall pode ser configurada para Alertar ou Alertar e Negar o tráfego para/de endereços IP e FQDNs maliciosos conhecidos.
- No portal do Azure, navegue até o seu Azure Firewall (
AzureFirewall-01). - No painel de navegação esquerdo, selecione Inteligência de ameaças.
- Defina o
ModoparaAlertar e negar.
Validação e Teste
Validar a configuração do Azure Firewall é crucial para garantir que as políticas de segurança estejam sendo aplicadas corretamente.
1. Testando Regras de Rede
-
Teste de Conectividade DNS: De uma VM na
WorkloadSubnet, tente resolver um nome de domínio. Isso deve funcionar se a regra DNS estiver configurada.bash nslookup google.com- Resultado Esperado: Resolução de DNS bem-sucedida.
-
Teste de Bloqueio de Porta: Tente acessar uma porta não permitida para um IP externo.
bash nc -vz 8.8.8.8 80- Resultado Esperado: Conexão recusada ou timeout.
2. Testando Regras de Aplicação
-
Teste de Acesso a FQDN Permitido: De uma VM na
WorkloadSubnet, tente acessarlearn.microsoft.comvia navegador.- Resultado Esperado: Acesso bem-sucedido.
-
Teste de Bloqueio de FQDN: Tente acessar
badsite.com(se você configurou a regra de negação para ele).- Resultado Esperado: Acesso bloqueado pelo firewall, com uma mensagem de erro no navegador.
3. Testando Regras NAT (DNAT)
- De um computador fora do Azure (com o IP público que você especificou na regra DNAT), tente conectar-se via RDP/SSH ao IP público do Azure Firewall na porta 3389/22.
- Resultado Esperado: Conexão bem-sucedida à VM interna.
4. Verificando Logs do Azure Firewall
Os logs do Azure Firewall são essenciais para monitorar o tráfego e validar as regras.
- No portal do Azure, navegue até o seu Azure Firewall (
AzureFirewall-01). - No painel de navegação esquerdo, selecione Logs.
- Você pode usar o Log Analytics para consultar os logs do Firewall. Procure por eventos de
AzureFirewallNetworkRuleeAzureFirewallApplicationRulepara ver quais regras foram acionadas e se o tráfego foi permitido ou negado.
5. Testando Inteligência de Ameaças e IDPS (Premium)
- Inteligência de Ameaças: Tente acessar um IP ou FQDN conhecido por ser malicioso (use um site de teste de malware seguro, como
test.malware.testing.comou um IP de teste de inteligência de ameaças). O Firewall deve bloquear o acesso. - IDPS: Tente simular um ataque que seria detectado pelo IDPS (ex: use uma ferramenta de teste de vulnerabilidade para tentar uma injeção SQL em uma aplicação web na VM spoke, se aplicável). O Firewall deve gerar um alerta e/ou bloquear o tráfego.
Dicas de Segurança e Melhores Práticas
- Modelo Hub-and-Spoke: Sempre que possível, utilize o modelo Hub-and-Spoke com o Azure Firewall no hub para centralizar o controle de rede e simplificar a gestão de políticas.
- Princípio do Privilégio Mínimo: Crie regras de firewall com o menor privilégio possível, permitindo apenas o tráfego essencial. Bloqueie todo o tráfego por padrão e permita explicitamente o que for necessário.
- Priorização de Regras: Entenda a ordem de processamento das regras (NAT > Rede > Aplicação) e a prioridade dentro de cada coleção para evitar conflitos e garantir que as regras desejadas sejam aplicadas.
- Inteligência de Ameaças Ativada: Mantenha a inteligência de ameaças ativada no modo
Alertar e negarpara proteção automática contra fontes maliciosas conhecidas. - Azure Firewall Premium: Para ambientes que exigem proteção avançada, utilize o SKU Premium para aproveitar recursos como IDPS e Inspeção TLS.
- Inspeção TLS: Implemente a inspeção TLS para o tráfego de saída para detectar ameaças ocultas em sessões criptografadas, mas planeje cuidadosamente a gestão de certificados.
- Monitoramento e Auditoria: Integre os logs do Azure Firewall com o Azure Monitor e o Azure Sentinel para monitoramento contínuo, análise de segurança e resposta a incidentes.
- Azure Firewall Manager: Para ambientes com múltiplos Firewalls e políticas complexas, utilize o Azure Firewall Manager para gerenciamento centralizado e hierárquico de políticas.
- Documentação: Mantenha uma documentação clara das suas regras de firewall e da justificativa para cada uma.
Troubleshooting Comum
- Tráfego Bloqueado Inesperadamente: Verifique os logs do Azure Firewall no Log Analytics. Eles indicarão qual regra (seja de rede, aplicação ou inteligência de ameaças) bloqueou o tráfego. Ajuste a regra conforme necessário.
- Conectividade Lenta: Se o tráfego estiver lento, verifique a utilização da CPU do Firewall no Azure Monitor. O Firewall pode estar atingindo seus limites de desempenho. Considere escalar o SKU ou otimizar as regras.
- Regras NAT não funcionam: Verifique se o IP público e as portas de destino e traduzidas estão corretas. Certifique-se de que o IP de origem na regra NAT está correto (se restringido). Verifique se há NSGs na VM de destino que possam estar bloqueando o tráfego.
- Problemas com Inspeção TLS: Certifique-se de que o certificado raiz está corretamente configurado no Key Vault e na Firewall Policy. Verifique se os clientes confiam na CA raiz usada para a inspeção TLS.
- IDPS não detecta ataques: Verifique se o IDPS está no modo
Alerta e Negare se as assinaturas relevantes estão ativadas. Certifique-se de que o tráfego está realmente passando pelo Firewall. - Roteamento Incorreto: Verifique a tabela de rotas associada à sub-rede da sua VM. Certifique-se de que a rota padrão (0.0.0.0/0) aponta para o IP privado do Azure Firewall.
Conclusão
O Azure Firewall é uma ferramenta poderosa e essencial para estabelecer uma postura de segurança de rede robusta no Azure. Ao implementar filtragem de tráfego avançada, inteligência de ameaças, IDPS e inspeção TLS, as organizações podem proteger suas cargas de trabalho contra uma ampla gama de ameaças cibernéticas. A adoção de um modelo Hub-and-Spoke com o Azure Firewall no centro, juntamente com a aplicação de melhores práticas e monitoramento contínuo, garante que o tráfego de rede seja inspecionado e controlado de forma eficaz. Com este guia prático, os profissionais de segurança estarão bem equipados para configurar e gerenciar o Azure Firewall, fortalecendo a segurança de rede e a resiliência de seus ambientes Azure contra as ameaças mais recentes.
Referências:
[1] Microsoft Learn. O que é o Azure Firewall?. Disponível em: https://learn.microsoft.com/pt-br/azure/firewall/overview [2] Microsoft Learn. Visão geral da arquitetura do Azure Firewall. Disponível em: https://learn.microsoft.com/pt-br/azure/firewall/firewall-architecture [3] Microsoft Learn. Recursos do Azure Firewall Premium. Disponível em: https://learn.microsoft.com/pt-br/azure/firewall/premium-features [4] Microsoft Learn. Filtragem baseada em inteligência de ameaças do Azure Firewall. Disponível em: https://learn.microsoft.com/pt-br/azure/firewall/threat-intel