¿Cómo configuro los grupos de reglas estándar de Network Firewall y las reglas del grupo de reglas de listas de dominios juntos?
Quiero configurar las reglas del grupo de reglas estándar de AWS Network Firewall y las reglas del grupo de reglas de listas de dominios para que trabajen juntas a fin de controlar el tráfico correctamente.
Descripción corta
Configura reglas de grupos de reglas estándar para eliminar el tráfico TCP establecido. A continuación, configura las reglas del grupo de reglas de listas de dominios para permitir que los flujos TCP (TLS) se envíen a los dominios permitidos desde el grupo de reglas de listas de dominios. Para ello, configura un grupo de reglas de listas de dominios y reglas de grupos de reglas estándar con la palabra clave flow.
En este artículo se utiliza uno de los modelos de despliegue distribuido. Este modelo protege el tráfico entre una subred pública de carga de trabajo con una instancia cliente de Amazon Elastic Compute Cloud (Amazon EC2) y una puerta de enlace de Internet. El orden de las reglas de la política de firewall está establecido en el orden de acción predeterminado.
Nota: La consola de Amazon Virtual Private Cloud (Amazon VPC) muestra solo las opciones de reglas configuradas previamente. No permite añadir opciones de reglas. Para obtener más información, consulta Standard stateful rule groups in AWS Network Firewall (Grupos de reglas estándar del firewall con estado en AWS Network Firewall).
Usa AWS CloudFormation o una API para especificar opciones de reglas para las reglas de grupos de reglas estándar. En los ejemplos de este artículo se utiliza la Interfaz de la línea de comandos de AWS (AWS CLI).
Resolución
Nota: Si se muestran errores al ejecutar comandos de AWS CLI, consulta Solución de errores de AWS CLI. Además, asegúrate de utilizar la versión más reciente de AWS CLI.
Requisitos previos
Confirma que ka instancia de Amazon EC2 puede enviar tráfico al puerto TCP 443 del grupo de seguridad de VPC y de la ACL de red.
Nota: En los ejemplos de código de este artículo, los puntos suspensivos (...) abrevian las salidas.
Configuración de un grupo de reglas de listas de dominios y un grupo de reglas estándar sin una palabra clave flow
Al configurar un grupo de reglas de listas de dominios y un grupo de reglas estándar, la configuración puede ser similar a la de este ejemplo. Si creas un grupo de reglas de listas de dominios y un grupo de reglas estándar, debes usar la palabra clave flow. Si no utilizas la palabra clave flow, es posible que aparezcan problemas como el de este ejemplo.
En el siguiente ejemplo, la consola de Amazon VPC crea un grupo de reglas de listas de dominios. La regla permite el tráfico HTTPS a example.com:
Domain name source: example.com Source IPs type: Default Protocol: HTTPs Action: Allow
Nota: Un grupo de reglas de listas de dominios con la acción establecida en Allow genera otra regla. La regla está configurada para denegar el tráfico del tipo de protocolo especificado que no coincida con las especificaciones del dominio. Para obtener más información, consulta Domain filtering (Filtrado de dominios).
La consola de Amazon VPC crea una regla de grupo de reglas estándar con la siguiente configuración: protocolo TCP, origen Any, destino Any, puerto de origen Any, puerto de destino Any, dirección Forward y acción Drop.
Al enviar una solicitud a un dominio permitido para probar la configuración de la regla, el tráfico se bloquea y se muestra el error "connection timed out" (se ha agotado el tiempo de espera de la conexión):
$ curl -kv -so /dev/null https://example.com * Trying [IP_ADDRESS]... * connect to [IP_ADDRESS] port 443 failed: Connection timed out * Failed to connect to example.com port 443 after 129180 ms: Connection timed out * Closing connection 0
La configuración hace que se elimine todo el tráfico TCP y que se agote el tiempo de espera de la conexión. Esto incluye el bloqueo del tráfico basado en TCP en el dominio permitido example.com.
La regla del grupo de reglas de listas de dominios que permite que example.com utilice HTTPS no funciona porque TCP es el primero que aparece en el flujo inicial. El flujo comienza con el protocolo de enlace TCP de la capa inferior y se evalúa la regla de denegación. En ese momento, no hay ningún protocolo TLS que coincida, por lo que coincide la regla de eliminación. Esto hace que se elimine todo el tráfico a example.com.
Nota: Puedes configurar los niveles de registro del firewall con estado para acceder a información detallada sobre el tráfico filtrado. Para obtener más información, consulta Logging network traffic from AWS Network Firewall (Registro del tráfico de red desde AWS Network Firewall).
Grupo de reglas de listas de dominios y regla de grupo de reglas estándar con palabra clave flow
Usa los comandos describe-rule-group y update-rule-group de Network Firewall para actualizar las reglas de grupos de reglas estándar e incluir la palabra clave flow.
-
Para recuperar el valor UpdateToken del grupo de reglas con estado, ejecuta el siguiente comando describe-rule-group de AWS CLI:
$ aws network-firewall describe-rule-group --rule-group-arn "arn:aws:network-firewall:us-east-1:XXXXXXXX0575:stateful-rulegroup/stateful-rg-5-tuple" --output jsonNota: Sustituye XXXXXXXX0575 por el identificador de tu cuenta de AWS. Sustituye stateful-rg-5-tuple por el nombre de tu grupo de reglas. Parte del resultado de este comando se utiliza como plantilla JSON para realizar otros ajustes posteriores.
El resultado es similar al siguiente:
{ "UpdateToken": "40b87af5-a20c-4f8c-8afd-6777c81add3c", (...) "RulesSource": { "StatefulRules": [{ "Action": "DROP", "Header": { "Protocol": "TCP", "Source": "Any", "SourcePort": "Any", "Direction": "FORWARD", "Destination": "Any", "DestinationPort": "Any" }, "RuleOptions": [{ "Keyword": "sid", "Settings": [ "5" ] }] }] } (...) } -
Para verificar el contenido del archivo de reglas JSON, crea un archivo de reglas JSON con una configuración de reglas modificada y ejecuta el siguiente comando:
$ cat tcp-drop-rule-updated.json { "RulesSource": { "StatefulRules": [ { "Action": "DROP", "Header": { "Direction": "FORWARD", "Protocol": "TCP", "Destination": "Any", "Source": "Any", "DestinationPort": "Any", "SourcePort": "Any" }, "RuleOptions": [ { "Keyword": "sid", "Settings": [ "5" ] }, { "Keyword": "flow", "Settings": [ "established, to_server" ] } ] } ] } }En este ejemplo, la palabra clave flow permite que se complete el protocolo de enlace TCP antes de que se evalúe la regla de eliminación de TCP al enviar una solicitud a example.com. Después de esto, prevalece el orden de acción predeterminado de la regla. La lista de dominios permite la regla HTTPS para las coincidencias de example.com, lo que permite que el resto del tráfico pase por ese flujo. Se bloquea todo el tráfico a los dominios no permitidos, así como cualquier otro tráfico TCP establecido.
-
Para actualizar el grupo de reglas estándar, ejecuta el siguiente comando update-rule-group de AWS CLI con el valor UpdateToken y el archivo de reglas JSON:
$ aws network-firewall update-rule-group --rule-group-arn "arn:aws:network-firewall:us-east-1:XXXXXXXX0575:stateful-rulegroup/stateful-rg-5-tuple" --update-token 40b87af5-a20c-4f8c-8afd-6777c81add3c --rule-group file://tcp-drop-rule-updated.json --output jsonNota: Sustituye XXXXXXXX0575 por el identificador de tu cuenta de AWS. Sustituye stateful-rg-5-tuple por el nombre de tu grupo de reglas. Sustituye 40b87af5-a20c-4f8c-8afd-6777c81add3c por el valor UpdateToken del paso 1.
El resultado es similar a este resultado:
{ "UpdateToken": "bf8fe6d4-f13e-406c-90c1-9e3bad2118a7", "RuleGroupResponse": {...}, "LastModifiedTime": "2023-02-07T14:12:14.993000+11:00" } } -
Para verificar los cambios en el grupo de reglas con estado, ejecuta el siguiente comando describe-rule-group de AWS CLI:
$ aws network-firewall describe-rule-group --rule-group-arn "arn:aws:network-firewall:us-east-1:XXXXXXXX0575:stateful-rulegroup/stateful-rg-5-tuple" --output jsonNota: Sustituye XXXXXXXX0575 por el ID de tu cuenta de AWS y stateful-rg-5-tuple por el nombre del grupo de reglas.
El resultado es similar al siguiente:
{(...) "RulesSource": { "StatefulRules": [ { "Action": "DROP", "Header": { "Protocol": "TCP", "Source": "Any", (...) }, "RuleOptions": [ { "Keyword": "sid", "Settings": [ "5" ] }, { "Keyword": "flow", "Settings": [ "established, to_server" ] (...) } }, "RuleGroupResponse": {...}, "LastModifiedTime": "2023-02-07T14:12:14.993000+11:00" } }Nota: En el resultado anterior, established, to_server refleja el cambio con respecto al comando update-rule-group.
-
Para comprobar que tanto el grupo de reglas de la lista de dominios como el grupo de reglas estándar filtran el tráfico correctamente, ejecuta el siguiente comando:
$ curl -kv -so /dev/null https://example.com * Trying [IP_ADDRESS]... * Connected to example.com ([IP_ADDRESS]) port 443 (#0) (...) > GET / HTTP/1.1 > Host: example.com (...) < HTTP/1.1 200 OK (...)El resultado muestra que el tráfico HTTPS se dirige correctamente al dominio permitido example.com, tal como está configurado.
En el siguiente ejemplo, se bloquea el tráfico HTTPS a los dominios que no están permitidos, tal y como se esperaba:
$ curl -m 5 -kv -so /dev/null https://www.amazon.com * Trying [IP_ADDRESS]... * Connected to www.amazon.com ([IP_ADDRESS]) port 443 (#0) (...) * TLSv1.2 (OUT), TLS handshake, Client hello (1): (...) * Operation timed out after 5000 milliseconds with 0 out of 0 bytes received * Closing connection 0
Opcionalmente, para comprobar que otro tráfico TCP establecido también está bloqueado, ejecuta el siguiente comando s3 ls de AWS CLI:
aws s3 ls --cli-read-timeout 30 --debug
Información relacionada
Hands-on walkthrough of the AWS Network Firewall flexible rules engine – Part 1 (Tutorial práctico del motor de reglas flexibles de AWS Network Firewall [parte 1])
- Etiquetas
- AWS Network Firewall
- Idioma
- Español

This article was reviewed and updated on 2026-02-22.
Contenido relevante
preguntada hace un año
preguntada hace un año
preguntada hace un año
preguntada hace un año
preguntada hace un año