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.

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.

Console

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

    Ir a 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. 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 (65535) 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

Console

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 el panel Configuración de la máquina, haz lo siguiente:

    1. En Nombre, ingresa vm-fw-rules-server.
    2. En Región, selecciona us-central1 (Iowa).
  3. En el menú de navegación, haz clic en Herramientas de redes.

    1. En la sección Interfaces de red, haz clic en default y 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
    2. Haz clic en Listo.
  4. 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

Console

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 el panel Configuración de la máquina, haz lo siguiente:

    1. En Nombre, ingresa vm-fw-rules-client.
    2. En Región, selecciona us-central1 (Iowa).
  3. En el menú de navegación, haz clic en Herramientas de redes.

    1. En la sección Interfaces de red, haz clic en default y 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
    2. Haz clic en Listo.
  4. 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.

Console

  1. En la Google Cloud consola, 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. Haz 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.

Console

  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.

    Para las VMs IPv6, usa el siguiente rango de IP: 2600:2d00:1:7::/64.

  • 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.

Console

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 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 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 Google Cloud consola, 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 Google Cloud consola, 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.

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 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 Google Cloud consola, 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.