Las reglas de firewall de la nube privada virtual (VPC) generan entradas de registro cuando se aplican al tráfico. Si bien un flujo de paquetes puede generar varias entradas de registro, una regla de firewall de VPC genera, como máximo, una entrada de registro por conexión desde una instancia de máquina virtual (VM). En los siguientes ejemplos, se muestra cómo funciona el registro de reglas de firewall de VPC en diferentes situaciones.
Ejemplo de denegación de salida
En este ejemplo, se muestra el registro de una regla de firewall de VPC de denegación de salida que bloquea el tráfico entre dos instancias de VM en la misma red de VPC.
En este ejemplo, el tráfico fluye entre las instancias de VM en la red de VPC example-net en el proyecto example-proj.
Las dos instancias de VM son:
- La VM1 en la zona
us-west1-acon la dirección IP10.10.0.99en lawest-subnet(regiónus-west1) - La VM2 en la zona
us-east1-bcon la dirección IP10.20.0.99en laeast-subnet(regiónus-east1)
- La VM1 en la zona
Regla A: una regla de firewall de denegación de salida se orienta a todas las instancias de la red y se aplica al puerto TCP
80, y su destino es10.20.0.99(VM2). El registro está habilitado para esta regla.Regla B: una regla de firewall de permiso de entrada se orienta a todas las instancias de la red y se aplica al puerto TCP
80, y su origen es10.10.0.99(VM1). El registro también está habilitado para esta regla.
Para crear las reglas de firewall de VPC, usa los siguientes comandos gcloud:
Regla A: regla de denegación de salida para el puerto TCP
80, aplicable a todas las instancias y con el destino10.20.0.99, como se muestra a continuación:gcloud compute firewall-rules create rule-a \ --network example-net \ --action deny \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-loggingRegla B: regla de permiso de entrada para el puerto TCP
80, aplicable a todas las instancias y con el origen10.10.0.99:gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
En una situación en la que la VM1 intenta conectarse a la VM2 en el puerto TCP 80, sucede lo siguiente:
- Se genera una entrada de registro para la regla A desde la perspectiva de la VM1 cuando, en esta VM, se intenta establecer la conexión con
10.20.0.99(VM2). - Debido a que la regla A bloquea el tráfico, la regla B no se tiene en cuenta, por lo que no hay entrada de registro para la regla B desde la perspectiva de la VM2.
La VM1 informa el siguiente registro de reglas de firewall de VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
DENIED |
rule_details |
reference = "network:example-net/firewall:rule-a" priority = 10 action = DENY destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location |
No hay información. Este campo solo se usa si el destino está fuera de tu red de VPC. |
Ejemplo de reglas de permiso de salida y permiso de entrada
En este ejemplo, se muestra el registro de una regla de firewall de VPC de permiso de salida y una regla de firewall de VPC de permiso de entrada que, en conjunto, permiten el tráfico entre dos instancias de VM en la misma red de VPC.
En este ejemplo, el tráfico fluye entre las instancias de VM en la red de VPC example-net en el proyecto example-proj.
Las dos instancias de VM son:
- La VM1 en la zona
us-west1-acon la dirección IP10.10.0.99en lawest-subnet(regiónus-west1) - La VM2 en la zona
us-east1-bcon la dirección IP10.20.0.99en laeast-subnet(regiónus-east1)
- La VM1 en la zona
Regla A: una regla de firewall de permiso de salida se orienta a todas las instancias de la red y se aplica al puerto TCP
80, y su destino es10.20.0.99(VM2). El registro está habilitado para esta regla.Regla B: una regla de firewall de permiso de entrada se orienta a todas las instancias de la red y se aplica al puerto TCP
80, y su origen es10.10.0.99(VM1). El registro también está habilitado para esta regla.
Para crear las reglas de firewall de VPC, usa los siguientes comandos gcloud:
Regla A: regla de permiso de salida para el puerto TCP
80, aplicable a todas las instancias y con el destino10.20.0.99(VM2), como se muestra a continuación:gcloud compute firewall-rules create rule-a \ --network example-net \ --action allow \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-loggingRegla B: regla de permiso de entrada para el puerto TCP
80, aplicable a todas las instancias y con el origen10.10.0.99(VM1):gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
En una situación en la que la VM1 intenta conectarse a la VM2 en el puerto TCP 80, sucede lo siguiente:
- Se genera una entrada de registro para la regla A desde la perspectiva de la VM1 cuando esta se conecta a
10.20.0.99(VM2). - Se genera una entrada de registro para la regla B desde la perspectiva de la VM2 cuando, en esta VM, se permiten las conexiones entrantes desde
10.10.0.99(VM1).
La VM1 informa el siguiente registro de reglas de firewall de VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
PERMITIDA |
rule_details |
reference = "network:example-net/firewall:rule-a" priority = 10 action = ALLOW destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location |
No hay información. Este campo solo se usa si el destino está fuera de tu red de VPC. |
La VM2 informa el siguiente registro de reglas de firewall de VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
PERMITIDA |
rule_details |
reference = "network:example-net/firewall:rule-b" priority = 10 action = ALLOW source_range = 10.10.0.99/32 ip_port_info = tcp:80 direction = ingress |
instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location |
No hay información. Este campo solo se usa si el destino está fuera de tu red de VPC. |
Ejemplo de tráfico de entrada de Internet
En este ejemplo, se muestra el registro de una regla de firewall de permiso de entrada que permite el tráfico de Internet a una instancia de VM. También se muestra cómo el comportamiento del firewall con estado afecta una regla de denegación de salida.
En este ejemplo, el tráfico fluye desde un recurso externo a una instancia de VM dentro de la red de VPC example-net. La red está en el proyecto example-proj.
- El sistema en Internet tiene la dirección IP
203.0.113.114. - La VM1 de la zona
us-west1-atiene la dirección IP10.10.0.99en lawest-subnet(regiónus-west1). - Regla C: una regla de firewall de permiso de entrada se orienta a todas las instancias de la red, puede tener cualquier dirección IP (
0.0.0.0/0) como origen y se aplica al puerto TCP80. El registro está habilitado para esta regla. - Regla D: una regla de firewall de denegación de salida se orienta a todas las instancias de la red, puede tener cualquier dirección IP (
0.0.0.0/0) como destino y se aplica a todos los protocolos. El registro está habilitado para esta regla.
Para crear las reglas de firewall de VPC, usa los siguientes comandos gcloud:
Regla C: la siguiente regla de permiso de entrada para el puerto TCP
80es aplicable a todas las instancias y puede tener cualquier origen:gcloud compute firewall-rules create rule-c \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 0.0.0.0/0 \ --priority 10 \ --enable-loggingRegla D: regla de denegación de salida para todos los protocolos, aplicable a todas las instancias, a cualquier destino:
gcloud compute firewall-rules create rule-d \ --network example-net \ --action deny \ --direction EGRESS \ --rules all \ --destination-ranges 0.0.0.0/0 \ --priority 10 \ --enable-logging
En una situación en la que el sistema con la dirección IP 203.0.113.114 intenta conectarse a la VM1 en el puerto TCP 80, sucede lo siguiente:
- La VM1 genera una entrada de registro para la regla C mientras acepta tráfico de
203.0.113.114. - A pesar de la regla D, la VM1 puede responder a la solicitud entrante porque Google Cloud las reglas de firewall tienen estado. Si se permite la solicitud entrante, ninguna regla de salida puede bloquear las respuestas establecidas.
- Debido a que la regla D no se aplica, el sistema no la tiene en cuenta, por lo que no hay entrada de registro para ella.
La VM1 informa el siguiente registro de reglas de firewall de VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=203.0.113.114 src_port=[EPHEMERAL_PORT] dest_ip=10.10.0.99 dest_port=80 protocol=6 |
disposition |
PERMITIDA |
rule_details |
reference = "network:my-vpc/firewall:rule-c" priority = 10 action = ALLOW source_range = 0.0.0.0/0 ip_port_info = tcp:80 direction = ingress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location |
continent country region city |
¿Qué sigue?
- Descripción general del registro de reglas de firewall de VPC
- Administra el registro de reglas de firewall de VPC.
- Descripción general de Cloud Logging.