Como configuro minhas regras de firewall de rede para bloquear ou permitir domínios específicos?

10 minuto de leitura
0

Quero filtrar o tráfego externo da web dos recursos na minha Amazon Virtual Cloud (Amazon VPC) usando o AWS Network Firewall.

Breve descrição

As políticas e grupos de regras do firewall de rede são definidos por sua ordem de avaliação de regras, com ordem de ação padrão ou ordem de avaliação estrita. Uma política de firewall configurada para a ordem de ação padrão avalia as regras na seguinte ordem: passar, descartar, rejeitar e alertar. A ação padrão de estado para uma política padrão é passar.

Com uma ordem de avaliação estrita, os grupos de regras são avaliados em ordem de prioridade, da menor para a maior. As regras dentro de um grupo são então avaliadas na ordem em que são configuradas. A ação padrão de estado para uma política de pedidos estrita é configurável, como configurar Descartar estabelecido. Os grupos de regras padrão estão associados às políticas de ordem de ação padrão, enquanto os grupos de regras de ordem estrita estão associados a políticas estritas de ordem de avaliação.

Você pode configurar o firewall de rede para permitir ou bloquear o acesso a domínios específicos. Isso pode ser feito para políticas ou regras usando a ordem de ação padrão ou a ordem de avaliação estrita usando uma das seguintes opções:

  • Grupo de regras da lista de domínios de estado
  • Regras IPS compatíveis com Suricata

A inspeção de nomes de domínio de estado pode ser configurada para protocolos HTTP e HTTPS. Para HTTP, a solicitação não é criptografada e permite que o firewall de rede veja o valor do nome do host no cabeçalho do host HTTP. Para HTTPS, o firewall de rede usa a extensão Server Name Indication (SNI) no handshake TLS para determinar o nome do host. O firewall então compara o nome do host (ou nome do domínio) com as regras HTTP ou TLS configuradas.

Com uma lista de permissões de domínio, o firewall passa solicitações HTTP ou HTTPS somente para domínios especificados. As solicitações para todos os outros domínios são descartadas.

Resolução

Ordem de ação padrão

Para políticas com ordem de ação padrão, configure um grupo de regras da lista de domínios para permitir solicitações HTTP e HTTPS para domínios específicos.

1.    Abra o console do Amazon VPC.

2.    Crie um firewall.

3.    No painel de navegação, em Firewall de rede, escolha Políticas de firewall.

4.    Escolha a política de firewall de ordem de ação padrão que você deseja editar.

5.    Em Grupos de regras de estado, escolha Ações e, em seguida, escolha Criar grupo de regras de estado.

6.    Insira um nome exclusivo para o grupo de regras.

7.    Em Reserva de capacidade, insira um número estimado de domínios que a lista incluirá. Esse valor não pode ser alterado após a criação do grupo de regras.

8.    Em Opções de grupo de regras de estado, escolha Lista de domínios.
Observação: a ordem das regras de estado não pode ser alterada porque é herdada da política. A Ordem das regras aparece como Padrão.

9.    Em Lista de domínios, em Origem do nome de domínio, insira os nomes de domínio que você deseja corresponder. Os domínios podem ser definidos como uma correspondência exata, como abc.exemplo.com. Eles também podem ser definidos como curinga, como .exemplo.com.

10.    Em Tipo de IPs de origem, escolha Padrão se o IP de origem existir na mesma VPC do firewall. Escolha Definido se o IP de origem existir em uma VPC remota. Ao escolher Definido, insira as sub-redes de origem que você deseja que o firewall inspecione nos intervalos CIDR de IP de origem.

11.    Em Protocolos, selecione HTTP e HTTPS.

12.    Em Ação, escolha Permitir.

13.    Escolha Criar e adicionar à política.

Para definir manualmente as regras de IPS compatíveis com Suricata para HTTP e HTTPS, configure uma regra de IPS compatível com Suricata de ordem de ação padrão no grupo de regras.

1.    Abra o console do Amazon VPC.

2.    Crie um firewall.

3.    No painel de navegação, em Firewall de rede, escolha Políticas de firewall.

4.    Escolha a política de firewall de ordem de ação padrão que você deseja editar.

5.    Em Grupos de regras de estado, escolha Ações e, em seguida, escolha Criar grupo de regras de estado.

6.    Insira um nome exclusivo para o grupo de regras.

7.    Em Reserva de capacidade, insira um número estimado de regras que a lista incluirá. Esse valor não pode ser alterado após a criação do grupo de regras.

8.    Em Opções de grupo de regras de estado, escolha Regras de IPS compatíveis com Suricata.
Observação: a ordem das regras de estado não pode ser alterada porque é herdada da política. A Ordem das regras aparece como Padrão.

9.    (Opcional) Defina variáveis de regra personalizada para uso nas assinaturas Suricata.

10.    (Opcional) Defina as referências do conjunto de IPs para uso nas assinaturas Suricata.

11.    Em Regras de IPS compatíveis com Suricata, insira as seguintes regras. Altere os domínios para os domínios específicos que você deseja abordar.

pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; dotprefix; content:".amazonaws.com"; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:1; rev:1;)
pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; content:"example.com"; startswith; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:2; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; dotprefix; content:".amazonaws.com"; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:3; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; content:"example.com"; startswith; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:4; rev:1;)
drop http $HOME_NET any -> $EXTERNAL_NET any (http.header_names; content:"|0d 0a|"; startswith; msg:"not matching any HTTP allowlisted FQDNs"; flow:to_server, established; sid:5; rev:1;)
drop tls $HOME_NET any -> $EXTERNAL_NET any (msg:"not matching any TLS allowlisted FQDNs"; flow:to_server, established; sid:6; rev:1;)

12.    Escolha Criar e adicionar à política.
Observação: a palavra-chave de fluxo estabelecida é comumente usada em regras de domínio, mas pode não identificar todos os casos de borda de troca de pacotes fora do fluxo. Antes de usar qualquer exemplo de listagem de regras, teste a regra para verificar se ela funciona conforme o esperado.

Ordem de avaliação estrita

Para políticas com uma ordem de avaliação estrita, configure um grupo de regras da lista de domínios para permitir solicitações HTTP e HTTPS para domínios específicos.

1.    Abra o console do Amazon VPC.

2.    Crie um firewall.

3.    No painel de navegação, em Firewall de rede, escolha Políticas de firewall.

4.    Escolha a política de firewall de ordem de avaliação estrita que você deseja editar.

5.    Em Grupos de regras de estado, escolha Ações e, em seguida, escolha Criar grupo de regras de estado.

6.    Insira um nome exclusivo para o grupo de regras.

7.    Em Reserva de capacidade, insira um número estimado de domínios que a lista incluirá. Esse valor não pode ser alterado após a criação do grupo de regras.

8.    Em Opções de grupo de regras de estado, escolha Lista de domínios.
Observação: a ordem das regras de estado não pode ser alterada porque é herdada da política. A Ordem das regras aparece como Estrita.

9.    Em Lista de domínios, em Origem do nome de domínio, insira os nomes de domínio que você deseja corresponder. Os domínios podem ser definidos como uma correspondência exata, como abc.exemplo.com. Eles também podem ser definidos como curinga, como .exemplo.com.

10.    Em Tipo de IPs de origem, escolha Padrão se o IP de origem existir na mesma VPC do firewall. Escolha Definido se o IP de origem existir em uma VPC remota. Ao escolher Definido, insira as sub-redes de origem que você deseja que o firewall inspecione nos intervalos CIDR de IP de origem.

11.    Em Protocolos, escolha HTTP e HTTPS.

12.    Em Ação, escolha Permitir.

13.    Escolha Criar e adicionar à política.

14.    No painel de navegação, em Firewall de rede, escolha Políticas de firewall.

15.    Escolha a política de ordem estrita à qual você adicionou esse grupo de regras.

16.    Em Ordem de avaliação da regra de estado e ações padrão, escolha Editar.

17.    Em Ações padrão, escolha Descartar estabelecido. Em seguida, escolha Salvar.

Para definir manualmente as regras de IPS compatíveis com Suricata para HTTP e HTTPS, configure uma regra de IPS compatível com Suricata de ordem de avaliação estrita no grupo de regras.

1.    Abra o console do Amazon VPC.

2.    Crie um firewall.

3.    No painel de navegação, em Firewall de rede, escolha Políticas de firewall.

4.    Escolha a política de firewall de ordem de avaliação estrita que você deseja editar.

5.    Em Grupos de regras de estado, escolha Ações e, em seguida, escolha Criar grupo de regras de estado.

6.    Insira um nome exclusivo para o grupo de regras.

7.    Em Reserva de capacidade, insira um número estimado de regras que a lista incluirá. Esse valor não pode ser alterado após a criação do grupo de regras.

8.    Em Opções de grupo de regras de estado, escolha Regras de IPS compatíveis com Suricata.
Observação: a ordem das regras de estado não pode ser alterada porque é herdada da política. A Ordem das regras aparece como Estrita.

9.    (Opcional) Defina variáveis de regra personalizadas para uso nas assinaturas Suricata que você definir.

10.    (Opcional) Defina as referências do conjunto de IPs para uso nas assinaturas Suricata que você definir.

11.    Em Regras de IPS compatíveis com Suricata, insira as seguintes regras. Altere os domínios para os domínios específicos que você deseja abordar.

pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; dotprefix; content:".amazonaws.com"; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:1; rev:1;)
pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; content:"example.com"; startswith; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:2; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; dotprefix; content:".amazonaws.com"; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:3; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; content:"example.com"; startswith; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:4; rev:1;)

12.    Escolha Criar e adicionar à política.

13.    No painel de navegação, em Firewall de rede, escolha Políticas de firewall.

14.    Escolha a política de ordem estrita à qual você adicionou esse grupo de regras.

15.    Em Ordem de avaliação da regra de estado e ações padrão, escolha Editar.

16.    Em Ações padrão, escolha Descartar estabelecido. Em seguida, escolha Salvar.

Observação: a palavra-chave de fluxo estabelecida é comumente usada em regras de domínio, mas pode não identificar todos os casos de borda de troca de pacotes fora do fluxo. Antes de usar qualquer exemplo de listagem de regras, teste a regra para verificar se ela funciona conforme o esperado.

Verificação

Você pode verificar se os domínios são tratados corretamente com base em suas configurações executando comandos de teste nos domínios especificados.

No exemplo a seguir, o domínio https://example.com é permitido e uma resposta 200 OK é retornada ao cliente:

curl -v --silent https://example.com --stderr - | grep 200
< HTTP/2 200

No exemplo a seguir, o domínio HTTP http://www.google.com está bloqueado:

curl -v http://www.google.com
* Trying 172.253.115.99:80...
* Connected to www.google.com (http://www.google.com/) (172.253.115.99) port 80 (#0)
> GET / HTTP/1.1
> Host: www.google.com (http://www.google.com/)
> User-Agent: curl/7.79.1
> Accept: /

No exemplo a seguir, o domínio HTTPS https://www.google.com está bloqueado:

curl -v https://www.google.com
* Trying 172.253.115.147:443...
* Connected to www.google.com (http://www.google.com/) (172.253.115.147) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
* CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):

Informações relacionadas

Políticas de firewall no firewall de rede

Criar um grupo de regras de estado

Exemplos de regras de estado para o firewall de rede

Ordem de avaliação para um grupo de regras de estado

AWS OFICIAL
AWS OFICIALAtualizada há um ano