Proteger o tráfego destinado a pontos de extremidade privados na WAN Virtual do Azure
Observação
Este artigo aplica-se somente ao hub virtual seguro. Se você quiser inspecionar o tráfego destinado a pontos de extremidade privados usando o Firewall do Azure em uma rede virtual de hub, confira Usar o Firewall do Azure para inspecionar o tráfego destinado a um ponto de extremidade privado.
O ponto de extremidade privado do Azure é o bloco de construção básico do Link Privado do Azure. Pontos de extremidade privados permitem que recursos do Azure implantados em uma rede virtual se comuniquem de maneira privada com recursos de link privado.
Pontos de extremidade privados permitem que recursos acessem o serviço de link privado implantado em uma rede virtual. O acesso ao ponto de extremidade privado por meio do emparelhamento de rede virtual e as conexões de rede locais estendem a conectividade.
Talvez seja necessário filtrar o tráfego de clientes locais ou no Azure destinado a serviços expostos por meio de pontos de extremidade privados em uma rede virtual conectada da WAN Virtual. Este artigo descreve essa tarefa usando o hub virtual seguro com o Firewall do Azure como o provedor de segurança.
O Firewall do Azure filtra o tráfego usando qualquer um dos seguintes métodos:
- FQDN em regras de rede para os protocolos TCP e UDP
- FQDN em regras de aplicativo para HTTP, HTTPS e MSSQL.
- Endereços IP de origem e de destino, porta e protocolo usando regras de rede
As regras de aplicativo são preferenciais em relação às regras de rede para inspecionar o tráfego destinado a pontos de extremidade privados porque o Firewall do Azure sempre usará o tráfego SNAT com regras de aplicativo. O SNAT é recomendado ao inspecionar o tráfego destinado a um ponto de extremidade privado devido à limitação descrita aqui: O que é um ponto de extremidade privado?. Se você estiver planejando usar regras de rede, é recomendável configurar o Firewall do Azure para sempre executar SNAT: Intervalos de endereços IP privados de SNAT do Firewall do Azure.
A Microsoft gerencia hubs virtuais seguros, que não podem ser vinculados a uma Zona de DNS privado. Isso é necessário para resolver o FQDN de um recurso de link privado para o endereço IP do ponto de extremidade privado correspondente.
A filtragem de FQDN do SQL tem suporte apenas no modo de proxy (porta 1433). O modo de proxy pode gerar mais latência em comparação ao redirecionamento. Se quiser continuar usando o modo de redirecionamento, que é o padrão para clientes que se conectam no Azure, filtre o acesso usando o FQDN nas regras de rede do firewall.
Filtrar o tráfego usando regras de rede ou de aplicativo no Firewall do Azure
As seguintes etapas permitem que o Firewall do Azure filtre o tráfego usando regras de rede (baseadas em FQDN ou endereço IP) ou regras de aplicativo:
Regras de rede:
Implante uma máquina virtual do encaminhador de DNS em uma rede virtual conectada ao hub virtual seguro e vinculada às zonas de DNS privado que hospedam os tipos de registro A dos pontos de extremidade privados.
Configure servidores DNS personalizados para as redes virtuais conectadas ao hub virtual seguro:
- Regras de rede baseadas em FQDN - defina as configurações de DNS personalizado para apontar para o endereço IP da máquina virtual do encaminhador de DNS e habilite o proxy DNS na política de firewall associada ao Firewall do Azure. Será necessário habilitar o proxy DNS se você quiser fazer a filtragem de FQDN em regras de rede.
- Regras de rede baseadas em endereço IP - as configurações de DNS personalizado descritas no ponto anterior são opcionais. Você pode simplesmente configurar os servidores DNS para apontar para o IP privado da máquina virtual do encaminhador de DNS.
Dependendo da configuração escolhida na etapa 2, configurar os servidores DNS locais para encaminhar consultas DNS para as zonas DNS públicas de pontos de extremidade privados para o endereço IP privado do Firewall do Azure ou da máquina virtual do encaminhador de DNS.
Configure uma regra de rede conforme necessário na política de firewall associada ao Firewall do Azure. Escolha os Endereços IP de Tipo de Destino se estiver usando uma regra baseada em endereço IP e configure o endereço IP do ponto de extremidade privado como Destino. Para as regras de rede baseadas em FQDN, escolha o FQDN de Tipo de Destino e configure o FQDN público do recurso de link privado como Destino.
Navegue até a política de firewall associada ao Firewall do Azure implantado no hub virtual seguro. Selecione Intervalos de IP privados (SNAT) e selecione a opção Sempre executar SNAT.
Regras de aplicativo:
Para regras de aplicativo, as etapas 1. a 3. da seção anterior ainda se aplicam. Para a configuração personalizada do servidor DNS, você pode optar por usar o Firewall do Azure como proxy DNS ou apontar diretamente para a máquina virtual do encaminhador de DNS.
Configure uma regra de aplicativo conforme necessário na política de firewall associada ao Firewall do Azure. Escolha o FQDN de Tipo de Destino e o FQDN público do recurso de link privado como Destino.
Por fim e, independentemente do tipo de regras configuradas no Firewall do Azure, verifique se as Políticas de Rede (pelo menos para suporte a UDR) estão habilitadas nas sub-redes em que os pontos de extremidade privados foram implantados. Isso garantirá que o tráfego destinado a pontos de extremidade privados não ignore o Firewall do Azure.
Importante
Por padrão, os prefixos de RFC 1918 são incluídos automaticamente nos Prefixos de Tráfego Privado do Firewall do Azure. Para a maioria dos pontos de extremidade privados, isso será suficiente para garantir que o tráfego de clientes locais ou em redes virtuais diferentes conectadas ao mesmo hub seguro seja inspecionado pelo firewall. Caso o tráfego destinado a pontos de extremidade privados não esteja sendo registrado no firewall, tente adicionar o prefixo /32 para cada ponto de extremidade privado à lista de Prefixos de Tráfego Privado.
Se necessário, você pode editar os prefixos CIDR que serão inspecionados por meio do Firewall do Azure em um hub seguro, da seguinte maneira:
Navegue até os Hubs virtuais seguros na política de firewall associada ao Firewall do Azure implantado no hub virtual seguro e selecione o hub virtual seguro em que a filtragem de tráfego destinado a pontos de extremidade privados está configurada.
Navegue até Configuração de segurança, selecione Enviar por meio do Firewall do Azure em Tráfego privado.
Selecione Prefixos de tráfego privado para editar os prefixos CIDR que serão inspecionados por meio do Firewall do Azure no hub virtual seguro e adicione um prefixo /32 para cada ponto de extremidade privado.
Para inspecionar o tráfego de clientes na mesma rede virtual como pontos de extremidade privados, não é necessário substituir as rotas /32 de pontos de extremidade privados. Desde que as Políticas de Rede estejam habilitadas nas sub-redes de pontos de extremidade privados, uma UDR com um intervalo de endereços mais amplo terá precedência. Por exemplo, configure essa UDR com o Tipo do próximo salto definido como Solução de Virtualização, Endereço do próximo salto definido como o IP privado do Firewall do Azure e destino do Prefixo de Endereço definido como a sub-rede dedicada a todos os pontos de extremidade privados implantados na rede virtual. Propagar rotas de gateway deve estar definido como Sim.
O diagrama a seguir ilustra os fluxos de tráfego de dados e do DNS para que os diferentes clientes se conectem a um ponto de extremidade privado implantado na WAN virtual do Azure:
Solução de problemas
Os principais problemas que você pode encontrar ao tentar filtrar o tráfego destinado a pontos de extremidade privados por meio do hub virtual seguro são:
Os clientes não conseguem se conectar a pontos de extremidade privados.
O Firewall do Azure é ignorado. Esse sintoma pode ser validado pela ausência de entradas de log das regras de aplicativo ou de rede no Firewall do Azure.
Na maioria dos casos, um dos seguintes problemas causa esses problemas:
Resolução de nomes DNS incorreta
Configuração de roteamento incorreta
Resolução de nomes DNS incorreta
Verifique se os servidores DNS da rede virtual estão definidos como Personalizados e se o endereço IP é o endereço IP privado do Firewall do Azure no hub virtual seguro.
CLI do Azure:
az network vnet show --name <VNET Name> --resource-group <Resource Group Name> --query "dhcpOptions.dnsServers"
Verifique se os clientes na mesma rede virtual que a máquina virtual do encaminhador de DNS podem resolver o FQDN público do ponto de extremidade privado para o endereço IP privado correspondente consultando diretamente a máquina virtual configurada como encaminhador de DNS.
Linux:
dig @<DNS forwarder VM IP address> <Private endpoint public FQDN>
Inspecione as entradas do log AzureFirewallDNSProxy do Firewall do Azure e valide que elas podem receber e resolver consultas DNS dos clientes.
AzureDiagnostics | where Category contains "DNS" | where msg_s contains "database.windows.net"
Verifique se o proxy DNS foi habilitado e se um servidor DNS Personalizado apontando para o endereço IP da máquina virtual do encaminhador de DNS foi configurado na política de firewall associada ao Firewall do Azure no hub virtual seguro.
CLI do Azure:
az network firewall policy show --name <Firewall Policy> --resource-group <Resource Group Name> --query dnsSettings
Configuração de roteamento incorreta
Verifique a Configuração de segurança na política de firewall associada ao Firewall do Azure implantado no hub virtual seguro. Verifique se na coluna TRÁFEGO PRIVADO, aparece Protegido pelo Firewall do Azure para todas as conexões de rede virtual e de branches para as quais você deseja filtrar o tráfego.
Verifique a Configuração de segurança na política de firewall associada ao Firewall do Azure implantado no hub virtual seguro. Caso o tráfego destinado a pontos de extremidade privados não esteja sendo registrado no firewall, tente adicionar o prefixo /32 para cada ponto de extremidade privado à lista de Prefixos de Tráfego Privado.
No hub virtual seguro na WAN virtual, inspecione rotas efetivas para as tabelas de rotas associadas às conexões de branches e redes virtuais para as quais você deseja filtrar o tráfego. Se entradas /32 foram adicionadas para cada ponto de extremidade privado em que você deseja inspecionar o tráfego, verifique se elas estão listadas nas rotas efetivas.
Inspecione as rotas efetivas nas NICs anexadas às máquinas virtuais implantadas nas redes virtuais para as quais deseja filtrar o tráfego. Verifique se há entradas /32 para cada endereço IP privado do ponto de extremidade privado para o qual deseja filtrar o tráfego (se adicionado).
CLI do Azure:
az network nic show-effective-route-table --name <Network Interface Name> --resource-group <Resource Group Name> -o table
Inspecione as tabelas de roteamento dos dispositivos de roteamento locais. Verifique se você está aprendendo os espaços de endereço das redes virtuais em que os pontos de extremidade privados são implantados.
A WAN virtual do Azure não anuncia os prefixos configurados em Prefixos de tráfego privado na Configuração de segurança da política de firewall para local. Espera-se que as entradas /32 não sejam mostradas nas tabelas de roteamento dos dispositivos de roteamento locais.
Inspecione os logs AzureFirewallApplicationRule e AzureFirewallNetworkRule do Firewall do Azure. Verifique se o tráfego destinado aos pontos de extremidade privados está sendo registrado em log.
As entradas de log AzureFirewallNetworkRule não incluem informações de FQDN. Filtre segundo o endereço IP e a porta ao inspecionar as regras de rede.
Ao filtrar o tráfego destinado aos pontos de extremidade privados dos Arquivos do Azure, entradas do log AzureFirewallNetworkRule serão geradas apenas na primeira vez em que um cliente montar ou se conectar ao compartilhamento de arquivos. O Firewall do Azure não gerará logs para operações CRUD para arquivos no compartilhamento de arquivo. Isso ocorre porque operações CRUD são transportadas pelo canal TCP persistente aberto na primeira vez em que o cliente se conecta ou monta no compartilhamento de arquivos.
Exemplo de consulta de log da regra de aplicativo:
AzureDiagnostics | where msg_s contains "database.windows.net" | where Category contains "ApplicationRule"