Configurar una política de cortafuegos de red global para habilitar el tráfico de entrada

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

En este tutorial se describe cómo configurar una política de cortafuegos de red global para permitir el tráfico interno entre subredes de máquinas virtuales en una red de VPC personalizada.

Crear una red VPC personalizada con subredes

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

Consola

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

    Ir a redes de VPC

  2. Haz clic en Crear red VPC.

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

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

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

  6. En la sección Nueva subred, especifique los siguientes parámetros de configuración de una subred:

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

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

    • Nombre: subnet-fw-rules-client
    • Región: us-central1 (Iowa)
    • Intervalo de IPv4: 192.168.10.0/24
    • Acceso privado de 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 (65535) que permite que cualquier instancia envíe tráfico a cualquier destino, excepto el tráfico bloqueado por Google Cloud.
  • Un deny de entrada con la fuente 0.0.0.0/0 y la prioridad más baja posible (65535) que protege todas las instancias bloqueando las conexiones entrantes a ellas.

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

Crear máquinas virtuales de cliente y servidor

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

Crear la VM de servidor

Consola

Para crear la VM del servidor, sigue estos pasos:

  1. En la Google Cloud consola, 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, escribe vm-fw-rules-server.
    2. En Región, selecciona us-central1 (Iowa).
  3. En el menú de navegación, haga clic en Redes.

    1. En la sección Interfaces de red, haga clic en default y especifique 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

Crear la VM cliente

Consola

Para crear la VM del cliente, sigue estos pasos:

  1. En la Google Cloud consola, 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, escribe vm-fw-rules-client.
    2. En Región, selecciona us-central1 (Iowa).
  3. En el menú de navegación, haga clic en Redes.

    1. En la sección Interfaces de red, haga clic en default y especifique 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 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

Crear un router de Cloud Router y una pasarela de Cloud NAT

En la sección anterior, has creado dos máquinas virtuales Linux sin direcciones IPv4 públicas. Para permitir que esas VMs accedan a Internet público, debes crear un Cloud Router y una pasarela Cloud NAT.

Consola

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

    Ir a Cloud NAT

  2. Haz clic en Empezar o en Crear pasarela de Cloud NAT.

  3. En Nombre de la pasarela, introduce gateway-fw-rules.

  4. En Tipo de NAT, selecciona Público.

  5. En la sección Select Cloud Router (Seleccionar Cloud Router), especifique los siguientes parámetros de configuración:

    • Red: vpc-fw-rules
    • Región: us-central1
    • Cloud Router: Crear router.
      1. En Nombre, escribe 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 pasarela 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
    

Crear una política de cortafuegos de red global

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

  • Una regla de salida con 0.0.0.0./0 como destino.
  • Registro habilitado. El almacenamiento de registros de reglas de cortafuegos te permite auditar, verificar y analizar los efectos de estas.

Consola

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

    Ir a Políticas de cortafuegos

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

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

  4. En Ámbito de implementación, selecciona Global y haz clic en Continuar.

  5. Para crear reglas para su política, en la sección Añadir reglas, haga clic en Añadir regla.

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

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

  8. Marca la casilla 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 cortafuegos, ejecuta el siguiente comando:

    gcloud compute network-firewall-policies create fw-policy \
        --global
    
  2. Para crear una regla de cortafuegos que permita el tráfico a todos los destinos y habilite los registros, ejecuta 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 cortafuegos a 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
    

Añadir una regla de cortafuegos para IAP

En la sección anterior, has creado máquinas virtuales Linux sin direcciones IP externas. En esta sección, habilitarás Identity-Aware Proxy (IAP) para permitir el acceso administrativo a las instancias de VM que no tengan direcciones IP externas.

Para permitir que IAP se conecte a tus instancias de VM, crea una regla de cortafuegos que cumpla los siguientes requisitos:

  • Se aplica a todas las instancias de VM a las que quieras acceder mediante IAP.
  • permite el tráfico de entrada del intervalo de IP 35.235.240.0/20. Este intervalo contiene todas las direcciones IP que usa IAP para el reenvío de TCP.

    En las VMs IPv6, usa el siguiente intervalo de IPs: 2600:2d00:1:7::/64.

  • Permite establecer conexiones con todos los puertos a los que quieras acceder mediante el reenvío de TCP de IAP. Por ejemplo, el puerto 22 para SSH y el puerto 3389 para RDP.

Consola

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

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

    Ir a Políticas de cortafuegos

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

  3. Haz clic en Crear regla.

  4. En Prioridad, introduce 500.

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

  6. En Registros, selecciona Activado.

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

  8. En la sección Origen, en Intervalos de IPs, introduzca 35.235.240.0/20.

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

  10. Marca la casilla TCP y, en Puertos, introduce 22 y 3389 separados por una coma.

  11. Haz clic en Crear.

gcloud

Para permitir el acceso RDP y SSH a todas las instancias de VM de 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

Instalar 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 máquina virtual 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 automáticamente el servidor Apache.

  5. Para comprobar que Apache se está ejecutando, ejecuta el siguiente comando:

    sudo systemctl status apache2 --no-pager
    
  6. Para sobrescribir 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.

Probar 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 mediante 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 máquina virtual vm-fw-rules-server, copia la dirección IP interna de la máquina virtual.

  3. En la columna Conectar de la máquina virtual 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
    

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

    El mensaje Connection timed out es el esperado, ya que cada VM crea una regla de firewall de entrada implícita que deniega todo el tráfico. Para permitir el tráfico, añade una regla de entrada a la política de cortafuegos.

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

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

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

Consola

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

    Ir a Políticas de cortafuegos

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

  3. Haz clic en Crear regla.

  4. En Prioridad, introduce 501.

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

  6. En Registros, selecciona Activado.

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

  8. En la sección Origen, en Intervalos de IPs, introduzca 192.168.10.0/24.

    Recuerda que el intervalo de IP 192.168.10.0/24 se ha asignado a la subnet-fw-rules-client.

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

    Recuerda que el intervalo 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 cortafuegos, 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

Probar la conexión

Después de crear la política de cortafuegos, conéctate a la VM del servidor desde la VM del cliente mediante 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 máquina virtual vm-fw-rules-server, copia la dirección IP interna de la máquina virtual.

  3. En la columna Conectar de la máquina virtual 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
    

    Sustituye INTERNAL_IP por la dirección IP de la VM 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 cortafuegos, consulte Ver registros.