Configura una política de firewall de red global para habilitar el tráfico de entrada


En una red de nube privada virtual (VPC) personalizada con varias subredes, de forma predeterminada, se permite el tráfico de salida, pero se deniega el tráfico de entrada. Para habilitar el tráfico de entrada y permitir que las instancias de VM en diferentes subredes se comuniquen entre sí, puedes crear una política de firewall de red global en Cloud Next Generation Firewall en la red de VPC, que permite el tráfico de entrada desde un rango de direcciones IP específico de la subred.

En este instructivo, se describe cómo configurar una política de firewall de red global para permitir el tráfico interno entre subredes de VM en una red de VPC personalizada.

Objetivos

En este instructivo, se muestra cómo completar las siguientes tareas:

  • Crear una red de VPC personalizada con dos subredes.
  • Crea dos instancias de VM de Linux (una VM del cliente y una VM del servidor) sin direcciones IP externas en subredes independientes de la red de VPC.
  • Crear un Cloud Router y una puerta de enlace de Cloud NAT como práctica recomendada para descargar paquetes de software.
  • Instalar el servidor Apache en la VM del servidor.
  • Crear una política de firewall de red global con las siguientes reglas:
    • Permitir el tráfico de salida a cualquier destino.
    • Habilitar el registro de firewall.
    • Usa Identity-Aware Proxy (IAP) para permitir la conectividad SSH a las VMs.
    • Permitir que la VM del cliente se conecte a la VM del servidor que ejecuta el servidor Apache.
  • Prueba la conexión.

En el siguiente diagrama, se muestra el flujo de tráfico entre subredes de una red de VPC personalizada después de que una política de firewall de red global permite el tráfico de entrada interno.

Una política de firewall de red global que permite el tráfico de entrada de una subred en una red de VPC personalizada.
Una política de firewall de red global que permite el tráfico de entrada de una subred en una red de VPC personalizada (haz clic para ampliar).

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. Habilita la API de Compute Engine para tu proyecto.
  7. Asegúrate de tener el rol Administrador de red de Compute (roles/compute.networkAdmin) de Identity and Access Management.
  8. Si prefieres trabajar desde la línea de comandos, instala Google Cloud CLI. Para obtener información conceptual y de instalación sobre la herramienta, consulta Descripción general de gcloud CLI.

    Nota: Si no ejecutaste Google Cloud CLI antes, primero ejecuta gcloud init para inicializar el directorio de gcloud CLI.

Crea una red de VPC personalizada con subredes

En esta sección, crearás una red de VPC de modo personalizado con dos subredes IPv4.

Consola

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haz clic en Crear red de VPC.

  3. En Nombre, ingresa vpc-fw-rules.

  4. En Descripción, ingresa VPC network for the firewall rules tutorial.

  5. En Modo de creación de subred, selecciona Personalizado.

  6. En la sección Subred nueva, especifica los siguientes parámetros de configuración para una subred:

    • Nombre: subnet-fw-rules-server
    • Región: us-central1 (Iowa)
    • Rango IPv4: 10.0.0.0/24
    • Acceso privado a Google: activado
  7. Haz clic en Listo.

  8. Haz clic en Agregar subred y especifica los siguientes parámetros de configuración:

    • Nombre: subnet-fw-rules-client
    • Región: us-central1 (Iowa)
    • Rango IPv4: 192.168.10.0/24
    • Acceso privado a Google: activado
  9. Haz clic en Listo.

  10. Desplázate hacia abajo y haz clic en Crear.

gcloud

  1. Para crear una red de VPC, ejecuta el siguiente comando:

    gcloud compute networks create vpc-fw-rules \
      --subnet-mode=custom \
      --description="VPC network for the firewall rules tutorial"
    
  2. Opcional: En el cuadro de diálogo Autorizar Cloud Shell, haz clic en Autorizar.

  3. Para crear una subred, ejecuta el siguiente comando:

    gcloud compute networks subnets create subnet-fw-rules-server \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=10.0.0.0/24 \
      --enable-private-ip-google-access
    
  4. Para crear otra subred, ejecuta el siguiente comando:

    gcloud compute networks subnets create subnet-fw-rules-client \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=192.168.10.0/24 \
      --enable-private-ip-google-access
    

De forma predeterminada, la red de VPC tiene dos reglas IPv4 implícitas:

  • Una regla de salida allow con destino 0.0.0.0/0 y la prioridad más baja posible (65,535) que permite que cualquier instancia envíe tráfico a cualquier destino, excepto el tráfico que bloquea Google Cloud.
  • Una entrada de deny con origen 0.0.0.0/0 y la prioridad más baja posible (65,535) que protege todas las instancias, ya que bloquea las conexiones entrantes.

Para obtener más información, consulta Reglas implícitas.

Crea VMs del cliente y del servidor

En esta sección, crearás dos VMs de Linux sin direcciones IP externas en las subredes de la red de VPC que creaste en la sección anterior.

Crea la VM del servidor

Consola

Para crear la VM del servidor, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. En Nombre, ingresa vm-fw-rules-server.

  3. En Región, selecciona us-central1 (Iowa).

  4. Desplázate hacia abajo y expande Opciones avanzadas y, luego, expande Herramientas de redes.

  5. En la sección Interfaces de red, especifica los siguientes parámetros de configuración:

    • Red: vpc-fw-rules
    • Subred: subnet-fw-rules-server IPv4 (10.0.0.0/24)
    • Dirección IPv4 externa: ninguna
  6. Haz clic en Listo.

  7. Haz clic en Crear.

gcloud

Para crear la VM del servidor, ejecuta el siguiente comando:

gcloud compute instances create vm-fw-rules-server \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-server \
    --stack-type=IPV4_ONLY \
    --no-address

Crea la VM del cliente

Consola

Para crear la VM del cliente, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. En Nombre, ingresa vm-fw-rules-client.

  3. En Región, selecciona us-central1 (Iowa).

  4. Desplázate hacia abajo y expande Opciones avanzadas y, luego, expande Herramientas de redes.

  5. En la sección Interfaces de red, especifica los siguientes parámetros de configuración:

    • Red: vpc-fw-rules
    • Subred: subnet-fw-rules-client IPv4 (192.168.10.0/24)
    • Dirección IPv4 externa: ninguna
  6. Haz clic en Listo.

  7. Haz clic en Crear.

gcloud

Para crear la VM del cliente, ejecuta el siguiente comando:

gcloud compute instances create vm-fw-rules-client \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-client \
    --stack-type=IPV4_ONLY \
    --no-address

Crea un Cloud Router y una puerta de enlace de Cloud NAT

En la sección anterior, creaste dos VMs de Linux sin direcciones IPv4 públicas. Para permitir que esas VMs accedan a la Internet pública, debes crear un Cloud Router y una puerta de enlace de Cloud NAT.

Consola

  1. En la consola de Google Cloud, ve a la página de Cloud NAT.

    Ir a Cloud NAT

  2. Haz clic en Comenzar o Crear la puerta de enlace NAT.

  3. En Nombre de la puerta de enlace, ingresa gateway-fw-rules.

  4. Para Tipo de NAT, selecciona Pública.

  5. En la sección Seleccionar Cloud Router, especifica los siguientes parámetros de configuración:

    • Red: vpc-fw-rules
    • Región: us-central1
    • Cloud Router: crear router nuevo.
      1. En Nombre, ingresa router-fw-rules.
      2. Haz clic en Crear.
  6. Haga clic en Crear.

gcloud

  1. Para crear un Cloud Router, ejecuta el siguiente comando:

    gcloud compute routers create router-fw-rules \
      --network=vpc-fw-rules \
      --region=us-central1
    
  2. Para crear una puerta de enlace de Cloud NAT, ejecuta el siguiente comando:

    gcloud compute routers nats create gateway-fw-rules \
      --router=router-fw-rules \
      --region=us-central1 \
      --auto-allocate-nat-external-ips \
      --nat-all-subnet-ip-ranges
    

Crea una política de firewall de red global

En esta sección, crearás una política de firewall de red global con lo siguiente:

  • Una regla de salida con 0.0.0.0./0 como destino.
  • Registros habilitados. Los registros de reglas de firewall te permiten inspeccionar, verificar y analizar los efectos de tus reglas de firewall.

Consola

  1. En la consola de Google Cloud, ve a la página Políticas de firewall.

    Ir a Políticas de firewall

  2. Haz clic en Crear política de firewall.

  3. En la sección Configurar la política, en Nombre de la política, ingresa fw-policy.

  4. En Permiso de la implementación, selecciona Global y haz clic en Continuar.

  5. Para crear reglas para tu política, en la sección Agregar reglas, haz clic en Agregar regla.

    1. En Prioridad, ingresa 65534.
    2. En Dirección del tráfico, selecciona Salida.
    3. En Registros, selecciona Activar.
    4. En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.
    5. En la sección Destino, para Rangos de IP, ingresa 0.0.0.0/0.
    6. En la sección Protocolo y puertos, selecciona Permitir todo.
    7. Haz clic en Crear.
  6. Haz clic en Continuar.

  7. Para asociar una red de VPC con la política, en la sección Asociar política con redes de VPC, haz clic en Asociar.

  8. Selecciona la casilla de verificación de vpc-fw-rules y haz clic en Asociar.

  9. Haz clic en Continuar.

  10. Haz clic en Crear.

gcloud

  1. Para crear una política de firewall, ejecuta el siguiente comando:

    gcloud compute network-firewall-policies create fw-policy \
        --global
    
  2. Para crear una regla de firewall que permita el tráfico a todos los destinos y que habilite los registros, ejecute el siguiente comando:

    gcloud compute network-firewall-policies rules create 65534 \
        --firewall-policy=fw-policy \
        --direction=EGRESS \
        --action=ALLOW \
        --dest-ip-ranges=0.0.0.0/0 \
        --layer4-configs=all \
        --global-firewall-policy \
        --enable-logging
    
  3. Para asociar la política de firewall con la red de VPC, ejecuta el siguiente comando:

    gcloud compute network-firewall-policies associations create \
        --firewall-policy=fw-policy \
        --network=vpc-fw-rules \
        --name=pol-association-fw-rules \
        --global-firewall-policy
    

Agrega una regla de firewall para IAP

En la sección anterior, creaste VMs de Linux sin direcciones IP externas. En esta sección, habilitarás Identity-Aware Proxy (IAP) para permitir el acceso de administrador a las instancias de VM que no tienen direcciones IP externas.

Para permitir que IAP se conecte a tus instancias de VM, crea una regla de firewall que cumpla con lo siguiente:

  • Se aplica a todas las instancias de VM a las que deseas acceder mediante IAP.
  • Permite el tráfico de entrada desde el rango de IP 35.235.240.0/20. Este rango contiene todas las direcciones IP que IAP usa para el reenvío de TCP.
  • Permite conexiones a todos los puertos a los que deseas acceder a través del reenvío IAP de TCP, por ejemplo, el puerto 22 para SSH y el puerto 3389 para RDP.

Consola

Para permitir el acceso de RDP y SSH a todas las instancias de VM en la red vpc-fw-rules, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Firewall.

    Ir a Políticas de firewall

  2. En la sección Políticas de firewall de red, haz clic en fw-policy.

  3. Haz clic en Crear regla.

  4. En Prioridad, ingresa 500.

  5. En Dirección del tráfico, selecciona Ingress.

  6. En Registros, selecciona Activar.

  7. En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.

  8. En la sección Origen, en Rangos de IP, ingresa 35.235.240.0/20.

  9. En la sección Protocolos y puertos, selecciona Protocolos y puertos especificados.

  10. Selecciona la casilla de verificación TCP y, en Puertos, ingresa 22 y 3389 separados por comas.

  11. Haz clic en Crear.

gcloud

Para permitir el acceso de RDP y SSH a todas las instancias de VM en la red vpc-fw-rules, ejecuta el siguiente comando:

gcloud compute network-firewall-policies rules create 500 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=35.235.240.0/20 \
    --global-firewall-policy \
    --layer4-configs tcp:22,tcp:3389 \
    --enable-logging

Instala el servidor Apache

En esta sección, instalarás el servidor Apache en la VM del servidor.

  1. En la consola de Google Cloud, ve a la página Instancias de  VM.

    Ir a Instancias de VM

  2. En la columna Conectar de la VM de vm-fw-rules-server, haz clic en SSH.

  3. En el cuadro de diálogo SSH en el navegador, haz clic en Autorizar y espera a que se establezca la conexión.

  4. Para instalar el paquete apache2, en el símbolo del sistema, ejecuta el siguiente comando:

    sudo apt update && sudo apt -y install apache2
    

    Después de instalar Apache, el sistema operativo inicia el servidor Apache de forma automática.

  5. Para verificar que Apache esté en ejecución, ejecuta el siguiente comando:

    sudo systemctl status apache2 --no-pager
    
  6. Para reemplazar la página web predeterminada del servidor web Apache, ejecuta el siguiente comando:

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
    
  7. Cierra el cuadro de diálogo SSH en el navegador.

Prueba la conexión

Después de instalar el servidor Apache en la VM del servidor, conéctate a la VM del servidor desde la VM del cliente con la dirección IP interna de la VM del servidor.

  1. En la consola de Google Cloud, ve a la página Instancias de  VM.

    Ir a Instancias de VM

  2. En la columna IP interna de la VM de vm-fw-rules-server, copia la dirección IP interna de la VM.

  3. En la columna Conectar de la VM de vm-fw-rules-client, haz clic en SSH.

  4. En el cuadro de diálogo SSH en el navegador, haz clic en Autorizar y espera a que se establezca la conexión.

  5. Para verificar la conexión, ejecuta el siguiente comando:

    curl INTERNAL_IP -m 2
    

    Reemplaza INTERNAL_IP por la dirección IP de la VM de vm-fw-rules-server.

    Se espera el mensaje Connection timed out porque cada VM crea una regla de firewall de entrada implícita que deniega todo el tráfico. Para permitir el tráfico, agrega una regla de entrada a la política de firewall.

  6. Cierra el cuadro de diálogo SSH en el navegador.

Actualiza la política de firewall de red global para permitir el tráfico interno

En esta sección, actualizarás la política de firewall de red global para permitir el tráfico interno desde la subred de la VM del cliente.

Consola

  1. En la consola de Google Cloud, ve a la página Políticas de firewall.

    Ir a Políticas de firewall

  2. En la sección Políticas de firewall de red, haz clic en fw-policy.

  3. Haz clic en Crear regla.

  4. En Prioridad, ingresa 501.

  5. En Dirección del tráfico, selecciona Ingress.

  6. En Registros, selecciona Activar.

  7. En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.

  8. En la sección Origen, en Rangos de IP, ingresa 192.168.10.0/24.

    Recuerda que el rango de IP 192.168.10.0/24 se asigna a subnet-fw-rules-client.

  9. En la sección Destino, en Tipo de IP, selecciona IPv4. En Rangos de IP, especifica 10.0.0.0/24.

    Recuerda que el rango de IP 10.0.0.0/24 se asigna a subnet-fw-rules-server.

  10. Haz clic en Crear.

gcloud

Para actualizar la política de firewall, ejecuta el siguiente comando:

gcloud compute network-firewall-policies rules create 501 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=192.168.10.0/24 \
    --dest-ip-ranges=10.0.0.0/24 \
    --layer4-configs=all \
    --global-firewall-policy \
    --enable-logging

Prueba la conexión

Después de crear la política de firewall, conéctate a la VM del servidor desde la VM del cliente con la dirección IP interna de la VM del servidor.

  1. En la consola de Google Cloud, ve a la página Instancias de  VM.

    Ir a Instancias de VM

  2. En la columna IP interna de la VM de vm-fw-rules-server, copia la dirección IP interna de la VM.

  3. En la columna Conectar de la VM de vm-fw-rules-client, haz clic en SSH.

  4. En el cuadro de diálogo SSH en el navegador, haz clic en Autorizar y espera a que se establezca la conexión.

  5. Para verificar la conexión, ejecuta el siguiente comando:

    curl INTERNAL_IP -m 2
    

    Reemplaza INTERNAL_IP por la dirección IP de la VM de vm-fw-rules-server.

    El mensaje esperado es <!doctype html><html><body><h1>Hello World!</h1></body></html>.

  6. Cierra el cuadro de diálogo SSH en el navegador.

Para ver los registros de firewall, consulta Visualiza registros.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

En esta sección, borrarás los recursos que creaste en este instructivo.

Borra la política de firewall

Console

  1. En la consola de Google Cloud, ve a la página Políticas de firewall.

    Ir a Políticas de firewall

  2. En la sección Políticas de firewall de red, haz clic en el nombre fw-policy.

  3. Haz clic en la pestaña Asociaciones.

  4. Selecciona la casilla de verificación de vpc-fw-rules y haz clic en Quitar asociación.

  5. En el cuadro de diálogo Quitar una asociación de política de firewall, haz clic en Quitar.

  6. Junto al título fw-policy, haz clic en Borrar.

  7. En el cuadro de diálogo Borrar una política de firewall, haz clic en Borrar.

    Después de borrar una política, la consola de Google Cloud muestra la página Políticas de firewall.

gcloud

  1. Quita la asociación entre la política de firewall y la red de VPC.

    gcloud compute network-firewall-policies associations delete \
      --name=pol-association-fw-rules \
      --firewall-policy=fw-policy \
      --global-firewall-policy
    

    Si configuras la asociación entre la política de firewall y la red de VPC a través de la consola de Google Cloud, no uses el comando de gcloud CLI para quitar la asociación. Si no recuerdas cómo creaste la asociación ni recibes el error The network firewall policy does not have an association with pol-association-fw-rules. cuando ejecutas el comando, usa la consola de Google Cloud para quitar la asociación.

  2. Borra la política de firewall.

    gcloud compute network-firewall-policies delete fw-policy \
        --global
    

Borra las VMs

Console

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona las casillas de verificación de las VMs de vm-fw-rules-client y vm-fw-rules-server.

  3. Haz clic en Borrar.

  4. En el cuadro de diálogo ¿Quieres borrar 2 instancias?, haz clic en Borrar.

gcloud

Para borrar las VMs de vm-fw-rules-client y vm-fw-rules-server, ejecuta el siguiente comando:

gcloud compute instances delete vm-fw-rules-client vm-fw-rules-server \
    --zone=us-central1-a

Cuando se te solicite, presiona Y para confirmar y, luego, Intro.

Borra la puerta de enlace de Cloud NAT y Cloud Router

Console

  1. En la consola de Google Cloud, ve a la página Cloud Routers.

    Ir a Cloud Routers

  2. Selecciona la casilla de verificación router-fw-rules.

  3. Haz clic en Borrar.

  4. En el cuadro de diálogo Delete router-fw-rules, haz clic en Borrar.

Cuando borras un Cloud Router, también se borra la puerta de enlace de Cloud NAT asociada.

gcloud

Para borrar el Cloud Router de router-fw-rules, ejecuta el siguiente comando:

gcloud compute routers delete router-fw-rules \
    --region=us-central1

Cuando se te solicite, presiona Y para confirmar y, luego, Intro.

Cuando borras un Cloud Router, también se borra la puerta de enlace de Cloud NAT asociada.

Borra la red de VPC y sus subredes

Console

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. En la columna Nombre, haz clic en vpc-fw-rules.

  3. Haz clic en Borrar la red de VPC.

  4. En el diálogo Borrar una red, haz clic en Borrar.

Cuando borras una VPC, también se borran sus subredes.

gcloud

  1. Para borrar las subredes de la red de VPC vpc-fw-rules, ejecuta el siguiente comando:

    gcloud compute networks subnets delete subnet-fw-rules-client subnet-fw-rules-server \
        --region=us-central1
    

    Cuando se te solicite, presiona Y para confirmar y presiona Intro.

  2. Para borrar la red de VPC vpc-fw-rules, ejecuta el siguiente comando:

    gcloud compute networks delete vpc-fw-rules
    

    Cuando se te solicite, presiona Y para confirmar y, luego, Intro.