Configurar as regras do Azure Firewall
Você pode configurar regras NAT, regras de rede e regras de aplicativos no Firewall do Azure usando regras clássicas ou a Política de Firewall. O Azure Firewall nega todo o tráfego por predefinição, até que as regras sejam configuradas manualmente para permitir o tráfego. As regras estão terminando, portanto, o processamento de regras para em uma partida.
Processamento de regras usando regras clássicas
As coleções de regras são processadas de acordo com o tipo de regra em ordem de prioridade, números mais baixos para números mais altos de 100 a 65.000. Um nome de coleção de regras pode ter apenas letras, números, sublinhados, pontos ou hífenes. Deve começar com uma letra ou número e terminar com uma letra, número ou sublinhado. O comprimento máximo do nome é de 80 caracteres.
É melhor inicialmente espaçar os números de prioridade da coleção de regras em 100 incrementos (100, 200, 300 e assim por diante) para que você tenha espaço para adicionar mais coleções de regras, se necessário.
Processamento de regras usando a Política de Firewall
Com a Política de Firewall, as regras são organizadas dentro de Coleções de Regras e Grupos de Coleta de Regras. Os Grupos de Recolha de Regras contêm zero ou mais Coleções de Regras. As Coleções de Regras são do tipo NAT, Rede ou Aplicativos. Você pode definir vários tipos de Coleção de Regras em um único Grupo de Regras. Você pode definir zero ou mais Regras em uma Coleção de Regras. As regras em uma Coleção de Regras devem ser do mesmo tipo (NAT, Rede ou Aplicativo).
As regras são processadas com base na prioridade do Grupo de Recolha de Regras e na prioridade da Recolha de Regras. Prioridade é qualquer número entre 100 (prioridade mais alta) a 65.000 (prioridade mais baixa). Os Grupos de Coleta de Regras de prioridade mais alta são processados primeiro. Dentro de um grupo de coleta de regras, as Coleções de Regras com prioridade mais alta (número mais baixo) são processadas primeiro.
Se uma Política de Firewall for herdada de uma política pai, os Grupos de Recolha de Regras na política principal terão sempre precedência, independentemente da prioridade de uma política subordinada.
Nota
As regras de aplicativo são sempre processadas após as regras de rede, que são processadas após as regras DNAT, independentemente do grupo de coleta de regras ou da prioridade de coleta de regras e herança de políticas.
Assim, resumindo:
A política de pais sempre tem precedência.
- Os grupos de coleta de regras são processados em ordem de prioridade.
- As coleções de regras são processadas em ordem de prioridade.
- Regras DNAT, regras de rede e, em seguida, regras de aplicativo são processadas.
Aqui está um exemplo de política:
Supondo que BaseRCG1 é uma prioridade de grupo de coleta de regras (200) que contém as coleções de regras: DNATRC1, DNATRC3,NetworkRC1.
BaseRCG2 é uma prioridade de grupo de coleta de regras (300) que contém as coleções de regras: AppRC2, NetworkRC2.
ChildRCG1 é uma prioridade de grupo de coleta de regras (300) que contém as coleções de regras: ChNetRC1, ChAppRC1.
ChildRCG2 é uma prioridade de grupo de coleta de regras (650) que contém as coleções de regras: ChNetRC2, ChAppRC2, ChDNATRC3.
De acordo com a tabela a seguir:
Nome | Tipo | Prioridade | Regras | Herdado de |
---|---|---|---|---|
BaseRCG1 | Grupo de recolha de regras | 200 | 8 | Política de pais |
DNATRC1 | Coleção de regras DNAT | 600 | 7 | Política de pais |
DNATRC3 | Coleção de regras DNAT | 610 | 3 | Política de pais |
RedeRC1 | Recolha de regras de rede | 800 | 1 | Política de pais |
BaseRCG2 | Grupo de recolha de regras | 300 | 3 | Política de pais |
AppRC2 | Coleção de regras de aplicativo | 1200 | 2 | Política de pais |
RedeRC2 | Recolha de regras de rede | 1300 | 1 | Política de pais |
CriançaRCG1 | Grupo de recolha de regras | 300 | 5 | - |
ChNetRC1 | Recolha de regras de rede | 700 | 3 | - |
ChAppRC1 | Coleção de regras de aplicativo | 900 | 2 | - |
CriançaRCG2 | Grupo de recolha de regras | 650 | 9 | - |
ChNetRC2 | Recolha de regras de rede | 1100 | 2 | - |
ChAppRC2 | Coleção de regras de aplicativo | 2000 | 7 | - |
ChDNATRC3 | Coleção de regras DNAT | 3000 | 2 | - |
Iteração inicial para regras DNAT:
O processo começa examinando o grupo de coleta de regras (RCG) com o número mais baixo, que é BaseRCG1 com uma prioridade de 200. Dentro desse grupo, ele busca por coleções de regras do DNAT e as avalia de acordo com suas prioridades. Neste caso, DNATRC1 (prioridade 600) e DNATRC3 (prioridade 610) são encontradas e processadas em conformidade.
Em seguida, ele passa para o próximo RCG, BaseRCG2 (prioridade 300), mas não encontra nenhuma coleção de regras DNAT.
Em seguida, prossegue para o ChildRCG1 (prioridade 300), também sem uma coleta de regras DNAT.
Finalmente, verifica o ChildRCG2 (prioridade 650) e encontra a coleção de regras ChDNATRC3 (prioridade 3000).
Iteração para regras de rede:
Voltando ao BaseRCG1, a iteração continua, desta vez para as regras NETWORK. Apenas NetworkRC1 (prioridade 800) é encontrado.
Em seguida, ele se move para BaseRCG2, onde NetworkRC2 (prioridade 1300) está localizado.
Passando para ChildRCG1, ele descobre ChNetRC1 (prioridade 700) como a regra NETWORK.
Por fim, no ChildRCG2, ele encontra ChNetRC2 (prioridade 1100) como a coleção de regras NETWORK.
Iteração final para regras de APLICAÇÃO:
Voltando ao BaseRCG1, o processo itera para regras APPLICATION, mas nenhuma é encontrada.
Em BaseRCG2, identifica AppRC2 (prioridade 1200) como a regra APPLICATION.
Em ChildRCG1, ChAppRC1 (prioridade 900) é encontrado como a regra APPLICATION.
Finalmente, no ChildRCG2, ele localiza ChAppRC2 (prioridade 2000) como a regra APPLICATION.
Em resumo, a sequência de processamento de regras é a seguinte: DNATRC1, DNATRC3, ChDNATRC3, NetworkRC1, NetworkRC2, ChNetRC1, ChNetRC2, AppRC2, ChAppRC1, ChAppRC2.
Esse processo envolve a análise de grupos de coleta de regras por prioridade e, dentro de cada grupo, ordenando as regras de acordo com suas prioridades para cada tipo de regra (DNAT, NETWORK e APPLICATION).
Assim, primeiro, todas as regras DNAT são processadas a partir de todos os grupos de coleta de regras, analisando os grupos de coleta de regras por ordem de prioridade e ordenando as regras DNAT dentro de cada grupo de coleta de regras por ordem de prioridade. Em seguida, o mesmo processo para regras de rede e, finalmente, para regras de aplicação.
Para obter mais informações sobre conjuntos de regras de Política de Firewall, consulte Conjuntos de regras de Política de Firewall do Azure.
Informações sobre Ameaças
Se você habilitar a filtragem baseada em inteligência de ameaças, essas regras terão prioridade máxima e serão sempre processadas primeiro (antes das regras de rede e aplicativo). A filtragem de inteligência de ameaças pode negar o tráfego antes que quaisquer regras configuradas sejam processadas. Para obter mais informações, consulte Filtragem baseada em inteligência de ameaças do Firewall do Azure.
IDPS
Quando o IDPS é configurado no modo de alerta , o mecanismo IDPS funciona em paralelo à lógica de processamento da regra e gera alertas sobre assinaturas correspondentes para fluxos de entrada e saída. Para uma correspondência de assinatura IDPS, um alerta é registrado nos logs do firewall. No entanto, como o mecanismo IDPS funciona em paralelo ao mecanismo de processamento de regras, o tráfego negado ou permitido pelas regras de aplicativo/rede ainda pode gerar outra entrada de log.
Quando o IDPS é configurado no modo Alerta e Negar , o mecanismo IDPS é embutido e ativado após o mecanismo de processamento de regras. Assim, ambos os mecanismos geram alertas e podem bloquear fluxos correspondentes.
As interrupções de sessão feitas pelo IDPS bloqueiam o fluxo silenciosamente. Portanto, nenhum RST é enviado no nível TCP. Como o IDPS inspeciona o tráfego sempre depois que a regra de Rede/Aplicativo foi correspondida (Permitir/Negar) e marcada em logs, outra mensagem de Drop pode ser registrada onde o IDPS decide negar a sessão devido a uma correspondência de assinatura.
Quando a inspeção TLS está habilitada, o tráfego não criptografado e criptografado é inspecionado.
Conectividade de saída
Regras de rede e regras de aplicações
Se você configurar regras de rede e regras de aplicativo, as regras de rede serão aplicadas em ordem de prioridade antes das regras de aplicativo. As regras estão a terminar. Portanto, se uma correspondência for encontrada em uma regra de rede, nenhuma outra regra será processada. Se configurado, o IDPS é feito em todo o tráfego percorrido e, após a correspondência de assinatura, o IDPS pode alertar e/ou bloquear o tráfego suspeito.
Em seguida, as regras de aplicativo avaliam o pacote em ordem de prioridade se não houver correspondência de regra de rede e se o protocolo for HTTP, HTTPS ou MSSQL.
Para HTTP, o Firewall do Azure procura uma correspondência de regra de aplicativo de acordo com o cabeçalho do Host. Para HTTPS, o Firewall do Azure procura uma correspondência de regra de aplicativo somente de acordo com o SNI.
Em casos HTTPS inspecionados por HTTP e TLS, o firewall ignora o endereço IP de destino do pacote e usa o endereço IP resolvido pelo DNS do cabeçalho do host. O firewall espera obter o número da porta no cabeçalho do host, caso contrário, ele assume a porta padrão 80. Se houver uma incompatibilidade de porta entre a porta TCP real e a porta no cabeçalho do host, o tráfego será descartado. A resolução de DNS é feita pelo DNS do Azure ou por um DNS personalizado, se configurado no firewall.
Nota
Os protocolos HTTP e HTTPS (com inspeção TLS) são sempre preenchidos pelo Firewall do Azure com cabeçalho XFF (X-Forwarded-For) igual ao endereço IP de origem original.
Quando uma regra de aplicativo contém inspeção TLS, o mecanismo de regras de firewall processa SNI, Host Header e também a URL para corresponder à regra.
Se ainda assim nenhuma correspondência for encontrada nas regras do aplicativo, o pacote será avaliado em relação à coleção de regras de infraestrutura. Se ainda não houver correspondência, o pacote será negado por padrão.
Nota
As regras de rede podem ser configuradas para TCP, UDP, ICMP ou qualquer protocolo IP. Qualquer protocolo IP inclui todos os protocolos IP conforme definido no documento Números de Protocolo da Internet Assigned Numbers Authority (IANA). Se uma porta de destino estiver explicitamente configurada, a regra será convertida para uma regra TCP+UDP. Antes de 9 de novembro de 2020, qualquer significava TCP, ou UDP, ou ICMP. Portanto, você pode ter configurado uma regra antes dessa data com Protocol = Any, e destination ports = '*'. Se você não pretende permitir nenhum protocolo IP como definido atualmente, modifique a regra para configurar explicitamente o(s) protocolo(s) desejado(s) (TCP, UDP ou ICMP).
Conectividade de entrada
Regras DNAT e regras de rede
A conectividade de entrada da Internet ou intranet (visualização) pode ser habilitada configurando a Tradução de Endereço de Rede de Destino (DNAT), conforme descrito em Filtrar tráfego de entrada da Internet ou da intranet com o DNAT do Firewall do Azure usando o portal do Azure. As regras NAT são aplicadas com prioridade antes das regras de rede. Se for encontrada uma correspondência, o tráfego é traduzido de acordo com a regra DNAT e permitido pelo firewall. Assim, o tráfego não está sujeito a qualquer processamento adicional por outras regras de rede. Por razões de segurança, a abordagem recomendada é adicionar uma fonte de Internet específica para permitir o acesso DNAT à rede e evitar o uso de curingas.
As regras de aplicativo não são aplicadas para conexões de entrada. Portanto, se você quiser filtrar o tráfego HTTP/S de entrada, use o Web Application Firewall (WAF). Para obter mais informações, consulte O que é o Firewall de Aplicativo Web do Azure?
Exemplos
Os exemplos a seguir mostram os resultados de algumas dessas combinações de regras.
Exemplo 1
A conexão com google.com é permitida devido a uma regra de rede correspondente.
Regra de rede
- Ação: Permitir
nome | Protocolo | Source type | Origem | Tipo de destino | Endereço de destino | Portas de destino |
---|---|---|---|---|---|---|
Permitir-web | TCP | Endereço IP | * | Endereço IP | * | 80,443 |
Regra de aplicação
- Ação: Negar
nome | Source type | Origem | Protocolo:Porta | FQDNs de destino |
---|---|---|---|---|
Negar-google | Endereço IP | * | Disponível em:80,https:443 | google.com |
Resultado
A conexão com google.com é permitida porque o pacote corresponde à regra de rede Allow-web . O processamento de regras para neste ponto.
Exemplo 2
O tráfego SSH é negado porque uma prioridade mais alta Negar coleta de regras de rede o bloqueia.
Coleção de regras de rede 1
- Designação: Allow-collection
- Prioridade: 200
- Ação: Permitir
nome | Protocolo | Source type | Origem | Tipo de destino | Endereço de destino | Portas de destino |
---|---|---|---|---|---|---|
Permitir-SSH | TCP | Endereço IP | * | Endereço IP | * | 22 |
Coleção de regras de rede 2
- Designação: Deny-collection
- Prioridade: 100
- Ação: Negar
nome | Protocolo | Source type | Origem | Tipo de destino | Endereço de destino | Portas de destino |
---|---|---|---|---|---|---|
Negar-SSH | TCP | Endereço IP | * | Endereço IP | * | 22 |
Resultado
As conexões SSH são negadas porque uma coleção de regras de rede de prioridade mais alta a bloqueia. O processamento de regras para neste ponto.
Alterações às regras
Se você alterar uma regra para negar o tráfego permitido anteriormente, todas as sessões existentes relevantes serão descartadas.
Comportamento de aperto de mão de três vias
Como um serviço com monitoração de estado, o Firewall do Azure conclui um handshake TCP de três vias para o tráfego permitido, de uma origem para o destino. Por exemplo, VNet-A para VNet-B.
A criação de uma regra de permissão da VNet-A para a VNet-B não significa que as ligações iniciadas de novo a partir da VNet-B para a VNet-A sejam permitidas.
Como resultado, não há necessidade de criar uma regra de negação explícita de VNet-B para VNet-A.