¿Cómo configuro mis reglas de Network Firewall para bloquear o permitir dominios específicos?

11 minutos de lectura
0

Quiero filtrar el tráfico web saliente de los recursos de mi Amazon Virtual Cloud (Amazon VPC) mediante AWS Network Firewall.

Breve descripción

Las políticas y los grupos de reglas de Network Firewall se definen según su orden de evaluación de reglas, con un orden de acción predeterminado o un orden de evaluación estricto. Una política de firewall configurada según el orden de acción predeterminado evalúa las reglas en el siguiente orden: aprobar, eliminar, rechazar y alertar. La acción predeterminada con estado para una política predeterminada es aprobar.

Con un orden de evaluación estricto, los grupos de reglas se evalúan en orden de prioridad de menor a mayor. A continuación, las reglas de un grupo se evalúan en el orden en que están configuradas. La acción predeterminada con estado para una política de orden estricto es configurable, como configurar Descartar los que están en conexiones establecidas. Los grupos de reglas predeterminados están asociados a las políticas de orden de acción predeterminada, mientras que los grupos de reglas de orden estricto están asociados a políticas de orden de evaluación estricto.

Puede configurar Network Firewall para permitir o bloquear el acceso a dominios específicos. Esto se puede hacer para las políticas o reglas que utilizan un orden de acción predeterminado o un orden de evaluación estricto mediante una de las siguientes opciones:

  • Grupo de reglas de la lista de dominios con estado
  • Reglas de IPS compatibles con Suricata

La inspección de nombres de dominio con estado se puede configurar para los protocolos HTTP y HTTPS. En el caso de HTTP, la solicitud no está cifrada y permite que Network Firewall vea el valor del nombre del host en el encabezado del host de HTTP. En el caso de HTTPS, Network Firewall usa la extensión de indicación del nombre del servidor (SNI) del protocolo de enlace de TLS para determinar el nombre del host. A continuación, el firewall compara el nombre del host (o nombre de dominio) con las reglas de HTTP o TLS configuradas.

Con una lista de dominios permitidos, el firewall pasa las solicitudes HTTP o HTTPS solo a los dominios especificados. Se descartan las solicitudes a todos los demás dominios.

Resolución

Orden de acción predeterminado

Para las políticas con un orden de acción predeterminado, configure un grupo de reglas de la lista de dominios para permitir las solicitudes HTTP y HTTPS a dominios específicos.

1.    Abra la consola de Amazon VPC.

2.    Cree un firewall.

3.    En el panel de navegación, en Network Firewall, elija Políticas de firewall.

4.    Elija la política de firewall de orden de acción predeterminado que desee editar.

5.    En Grupos de reglas con estado, elija Acciones y, a continuación, elija Crear grupo de reglas con estado.

6.    Introduzca un nombre de grupo de reglas único.

7.    En Reserva de capacidad, introduzca el número estimado de dominios que incluirá la lista. Este valor no se puede cambiar una vez creado el grupo de reglas.

8.    En Opciones de grupo de reglas con estado, elija Lista de dominios.
Nota: El orden de reglas con estado no se puede cambiar porque se hereda de la política. El Orden de las reglas aparece como Predeterminado.

9.    En Lista de dominios, en Origen de nombre de dominio, introduzca los nombres de dominio que desee que coincidan. Los dominios se pueden definir con una coincidencia exacta, como abc.example.com. También se pueden definir con un comodín, como .example.com.

10.    En Tipo de direcciones IP fuente, elija Predeterminado si la IP de origen existe en la misma VPC que el firewall. Elija Definido si la IP de origen existe en una VPC remota. Al elegir Definido, introduzca las subredes de origen que desea que el firewall inspeccione en Rangos de CIDR de IP fuente.

11.    En Protocolos, elija HTTP y HTTPS.

12.    En Acción, elija Permitir.

13.    Elija Crear y agregar a la política.

Para definir manualmente las reglas de IPS compatibles con Suricata para HTTP y HTTPS, configure una regla de IPS compatible con Suricata con un orden de acción predeterminado en el grupo de reglas.

1.    Abra la consola de Amazon VPC.

2.    Cree un firewall.

3.    En el panel de navegación, en Network Firewall, elija Políticas de firewall.

4.    Elija la política de firewall de orden de acción predeterminado que desee editar.

5.    En Grupos de reglas con estado, elija Acciones y, a continuación, elija Crear grupo de reglas con estado.

6.    Introduzca un nombre de grupo de reglas único.

7.    En Reserva de capacidad, introduzca el número estimado de reglas que incluirá la lista. Este valor no se puede cambiar una vez creado el grupo de reglas.

8.    En Opciones de grupo de reglas con estado, elija Reglas de IPS compatibles con Suricata.
Nota: El orden de reglas con estado no se puede cambiar porque se hereda de la política. El Orden de las reglas aparece como Predeterminado.

9.    (Opcional) Defina variables de reglas personalizadas para usarlas en las firmas de Suricata.

10.    (Opcional) Defina las referencias del conjunto de direcciones IP para usarlas en las firmas de Suricata.

11.    En Reglas de IPS compatibles con Suricata, introduzca las siguientes reglas. Cambie los dominios a los dominios específicos a los que desee dirigirse.

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.    Elija Crear y agregar a la política.
Nota: La palabra clave de flujo establecida se usa comúnmente en las reglas de dominio, pero es posible que no tenga en cuenta todos los casos en la periferia de intercambio de paquetes fuera de flujo. Antes de usar cualquier lista de reglas de ejemplo, examine la regla para comprobar que funciona según lo esperado.

Orden de evaluación estricto

Para las políticas con un orden de evaluación estricto, configure un grupo de reglas de la lista de dominios para permitir las solicitudes HTTP y HTTPS a dominios específicos.

1.    Abra la consola de Amazon VPC.

2.    Cree un firewall.

3.    En el panel de navegación, en Network Firewall, elija Políticas de firewall.

4.    Elija la política de firewall de orden de evaluación estricto que desee editar.

5.    En Grupos de reglas con estado, elija Acciones y, a continuación, elija Crear grupo de reglas con estado.

6.    Introduzca un nombre de grupo de reglas único.

7.    En Reserva de capacidad, introduzca el número estimado de dominios que incluirá la lista. Este valor no se puede cambiar una vez creado el grupo de reglas.

8.    En Opciones de grupo de reglas con estado, elija Lista de dominios.
Nota: El orden de reglas con estado no se puede cambiar porque se hereda de la política. El Orden de las reglas aparece como Estricto.

9.    En Lista de dominios, en Origen de nombre de dominio, introduzca los nombres de dominio que desee que coincidan. Los dominios se pueden definir con una coincidencia exacta, como abc.example.com. También se pueden definir con un comodín, como .example.com.

10.    En Tipo de direcciones IP fuente, elija Predeterminado si la IP de origen existe en la misma VPC que el firewall. Elija Definido si la IP de origen existe en una VPC remota. Al elegir Definido, introduzca las subredes de origen que desea que el firewall inspeccione en Rangos de CIDR de IP fuente.

11.    En Protocolos, elija HTTP y HTTPS.

12.    En Acción, elija Permitir.

13.    Elija Crear y agregar a la política.

14.    En el panel de navegación, en Network Firewall, elija Políticas de firewall.

15.    Elija la política de orden estricto a la que ha añadido este grupo de reglas.

16.    En Orden de evaluación de las reglas con estado y acciones predeterminadas, elija Editar.

17.    En Acciones predeterminadas, elija Descartar los que están en conexiones establecidas. A continuación, seleccione Guardar.

Para definir manualmente las reglas de IPS compatibles con Suricata para HTTP y HTTPS, configure una regla de IPS compatible con Suricata con un orden de evaluación estricto en el grupo de reglas.

1.    Abra la consola de Amazon VPC.

2.    Cree un firewall.

3.    En el panel de navegación, en Network Firewall, elija Políticas de firewall.

4.    Elija la política de firewall de orden de evaluación estricto que desee editar.

5.    En Grupos de reglas con estado, elija Acciones y, a continuación, elija Crear grupo de reglas con estado.

6.    Introduzca un nombre de grupo de reglas único.

7.    En Reserva de capacidad, introduzca el número estimado de reglas que incluirá la lista. Este valor no se puede cambiar una vez creado el grupo de reglas.

8.    En Opciones de grupo de reglas con estado, elija Reglas de IPS compatibles con Suricata.
Nota: El orden de reglas con estado no se puede cambiar porque se hereda de la política. El Orden de las reglas aparece como Estricto.

9.    (Opcional) Defina variables de reglas personalizadas para usarlas en las firmas de Suricata que defina.

10.    (Opcional) Defina las referencias del conjunto de direcciones IP para usarlas en las firmas de Suricata que defina.

11.    En Reglas de IPS compatibles con Suricata, introduzca las siguientes reglas. Cambie los dominios a los dominios específicos a los que desee dirigirse.

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.    Elija Crear y agregar a la política.

13.    En el panel de navegación, en Network Firewall, elija Políticas de firewall.

14.    Elija la política de orden estricto a la que ha añadido este grupo de reglas.

15.    En Orden de evaluación de las reglas con estado y acciones predeterminadas, elija Editar.

16.    En Acciones predeterminadas, elija Descartar los que están en conexiones establecidas. A continuación, seleccione Guardar.

Nota: La palabra clave de flujo establecida se usa comúnmente en las reglas de dominio, pero es posible que no tenga en cuenta todos los casos en la periferia de intercambio de paquetes fuera de flujo. Antes de usar cualquier lista de reglas de ejemplo, examine la regla para comprobar que funciona según lo esperado.

Verificación

Puede comprobar que los dominios se gestionan correctamente en función de sus configuraciones mediante la ejecución de comandos de prueba en los dominios especificados.

En el siguiente ejemplo, se permite el dominio https://example.com y se devuelve al cliente una respuesta 200 OK:

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

En el siguiente ejemplo, el dominio 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: /

En el siguiente ejemplo, el dominio 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):

Información relacionada

Políticas de firewall en Network Firewall

Create a stateful rule group

Ejemplos de reglas con estado para Network Firewall

Orden de evaluación para grupo de reglas establecido

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año