Configurar una política de cortafuegos jerárquica para permitir el tráfico de salida de una red VPC específica

Descubre cómo crear y configurar una política de cortafuegos jerárquica para permitir el tráfico saliente que se origina en una red de nube privada virtual (VPC) específica de tu carpeta y que tiene como destino una dirección IP concreta. La política de cortafuegos bloquea todo el tráfico de salida que se origine en tu carpeta. En esta página se explica cómo crear dos redes de VPC, crear instancias de máquina virtual en las redes de VPC, configurar una política de cortafuegos jerárquica con reglas de cortafuegos y, a continuación, probar la política de cortafuegos.

Antes de empezar

Crear una carpeta

Crea una carpeta en tu organización.

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

    Ir a Gestionar recursos

  2. Haz clic en Crear carpeta.

  3. En Nombre de la carpeta, escribe test-folder.

  4. En la lista Organización, selecciona el nombre del recurso de tu organización.

  5. En el campo Ubicación, haz clic en Explorar y, a continuación, selecciona el recurso de tu organización.

  6. Haz clic en Crear.

Crear un proyecto

Crea un proyecto en la carpeta que has creado en la sección anterior.

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

    Ir a Gestionar recursos

  2. Haz clic en Crear proyecto.

  3. En Nombre del proyecto, escribe test-project.

  4. Selecciona una cuenta de facturación para el proyecto.

  5. En la lista Organización, selecciona el nombre del recurso de tu organización.

  6. En el campo Ubicación, haz clic en Buscar, despliega el nombre del recurso de tu organización y, a continuación, selecciona test-folder.

  7. Haz clic en Crear.

Crear dos redes de VPC personalizadas con subredes IPv4

Crea dos redes de VPC en modo personalizado: myvpc con una subred solo IPv4 y test-vpc con dos subredes solo IPv4, en el proyecto que has creado en la sección anterior.

  1. En la Google Cloud consola, en la página del selector de proyectos, selecciona test-project.

    Ir al selector de proyectos

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

    Ir a redes de VPC

  3. Haz clic en Crear red VPC.

  4. En Nombre, escribe myvpc.

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

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

    • Nombre: escribe myvpc-subnet-1.
    • Región: seleccione us-central1.
    • Intervalo de IPv4: introduce 10.0.0.0/24.
  7. Haz clic en Hecho y, a continuación, en Crear.

  8. Para crear otra red VPC, haz clic en Crear red VPC.

  9. En Nombre, escribe test-vpc.

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

  11. En la sección Nueva subred, especifica los siguientes parámetros de configuración de la subred y, a continuación, haz clic en Hecho:

    • Nombre: escribe testvpc-subnet-1.
    • Región: seleccione us-central1.
    • Intervalo de IPv4: introduce 10.0.0.0/16.
  12. Para añadir otra subred a la red test-vpc, haz clic en Añadir subred.

  13. En la sección Nueva subred, especifica los siguientes parámetros de configuración de la subred y, a continuación, haz clic en Hecho:

    • Nombre: escribe testvpc-subnet-ext.
    • Región: seleccione us-central1.
    • Intervalo de IPv4: introduce 192.168.1.0/24.
  14. Haz clic en Crear.

Crear VMs

Crea tres VMs en las subredes que has configurado en la sección anterior.

Crea una VM en la red myvpc

Crea una VM sin dirección IP externa en la red myvpc.

  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 myvpc-vm.
    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: myvpc
      • Subred: subnet-1 IPv4 (10.0.0.0/24)
      • Dirección IPv4 externa: Ninguna
    2. Haz clic en Listo.
  4. Haz clic en Crear.

Crea dos VMs en la red test-vpc.

Crea dos VMs: una sin dirección IP externa y otra con una dirección IP externa. Cuando crees la VM con una dirección IP externa, pasa una secuencia de comandos de inicio para instalar y poner en marcha un servidor web Apache en esa VM.

Crea una VM sin una dirección IP externa:

  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 testvpc-vm.
    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: test-vpc
      • Subred: testvpc-subnet-1 IPv4 (10.0.0.0/16)
      • Dirección IPv4 externa: Ninguna
    2. Haz clic en Listo.
  4. Haz clic en Crear.

Crea una VM con una dirección IP externa efímera y pasa una secuencia de comandos de inicio para instalar y poner en marcha un servidor web Apache:

  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 testvpc-apache-vm.
    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: test-vpc
      • Subred: testvpc-subnet-ext IPv4 (192.168.1.0/24)
      • Dirección IPv4 externa: efímera
    2. Haz clic en Listo.
  4. En el menú de navegación, haga clic en Avanzado e introduzca la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    # Read VM network configuration:
    md_vm="http://169.254.169.254/computeMetadata/v1/instance/"
    vm_hostname="$(curl $md_vm/name -H "Metadata-Flavor:Google" )"
    filter="{print \$NF}"
    vm_network="$(curl $md_vm/network-interfaces/0/network \
    -H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
    vm_zone="$(curl $md_vm/zone \
    -H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
    # Apache configuration:
    echo "Page on $vm_hostname in network $vm_network zone $vm_zone" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    

    La secuencia de comandos anterior implementa e inicia un servidor web Apache en esta VM.

  5. Haz clic en Crear.

  6. Anota la dirección IP externa efímera asignada a esta VM en la página Instancias de VM. Necesitarás esta dirección IP externa más adelante.

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

En la sección anterior, en la red myvpc, has creado la VM myvpc-vm sin ninguna dirección IP externa. Para permitir que la VM myvpc-vm acceda al servidor web Apache que se ejecuta en testvpc-apache-vm a través de Internet público, crea un Cloud Router y una pasarela Cloud NAT en la misma subred en la que has creado la VM myvpc-vm.

  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.

    Nota: Si es la primera pasarela Cloud NAT que creas, haz clic en Empezar. Si ya tienes pasarelas, Google Cloud se muestra el botón Crear pasarela Cloud NAT. Para crear otra pasarela, haz clic en Crear pasarela Cloud NAT.

  3. En Nombre de la pasarela, introduce myvpc-gateway.

  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: selecciona myvpc.
    • Región: selecciona us-central1 (Iowa).
    • Cloud Router: haz clic en Crear router.
      1. En Nombre, escribe myvpc-router.
      2. Haz clic en Crear.
  6. Haz clic en Crear.

Crear una política de cortafuegos jerárquica y añadir reglas de cortafuegos

Crea una política de cortafuegos jerárquica y añádele las siguientes reglas:

  • Habilita IAP en todas las VMs de test-folder para habilitar el acceso administrativo a las VMs.
  • Permite el tráfico de entrada a todas las VMs de la red test-vpc.
  • Delega el tráfico de salida de la red myvpc en la siguiente regla de la jerarquía, que es la regla VPC firewall implied IPv4 rule egress all.
  • Deniega el tráfico de salida procedente de todas las demás redes de VPC de test-folder.

Para crear una política de cortafuegos jerárquica, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página del selector de proyectos y selecciona test-folder.

    Ir al selector de proyectos

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

    Ir a Políticas de cortafuegos

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

  4. En la sección Configurar política, en Nombre de la política, introduce fw-egress-specific-vpc.

  5. En Descripción, escriba example-firewall-policy.

  6. Haz clic en Continuar.

  7. En la sección Añadir reglas, haz clic en Continuar. Añadirás las reglas de cortafuegos en las secciones posteriores de esta guía de inicio rápido.

  8. En la sección Asociar política a recursos, haga clic en Añadir.

  9. Despliega tu organización, selecciona test-folder y, a continuación, haz clic en Añadir.

  10. Haz clic en Crear.

Añade una regla de cortafuegos para habilitar IAP en todas las VMs de test-folder

Para permitir que IAP se conecte a todas las VMs de test-folder, necesitas una regla de cortafuegos en la política de cortafuegos jerárquica con las siguientes características:

  • Se aplica a todas las VMs de test-folder a las que quieras acceder mediante el reenvío de TCP de IAP.
  • Permite el tráfico de entrada del intervalo de direcciones IP 35.235.240.0/20. Este intervalo contiene todas las direcciones IP que usa IAP para el reenvío de TCP.
  • 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.

Para añadir la regla de cortafuegos, sigue estos pasos:

  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 fw-egress-specific-vpc y, a continuación, en Añadir regla.

  3. En Prioridad, introduce 100.

  4. En Descripción, escriba enable-iap.

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

  6. En Acción tras coincidencia, selecciona Permitir.

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

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

  9. Marca la casilla TCP y, en Puertos, introduce 22.

  10. Haz clic en Crear.

Añade una regla de cortafuegos para permitir el tráfico de entrada en la red test-vpc

Añade una regla de cortafuegos para permitir el tráfico web HTTP entrante en el puerto TCP 80 a todas las VMs de la red test-vpc:

  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 fw-egress-specific-vpc y, a continuación, en Añadir regla.

  3. En Prioridad, introduce 200.

  4. En Descripción, escriba allow-ingress-testvpc.

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

  6. En Acción tras coincidencia, selecciona Permitir.

  7. En la sección Objetivo, haz clic en Añadir red.

  8. Selecciona el proyecto de prueba que contiene la red test-vpc y, a continuación, selecciona test-vpc como red.

  9. En la sección Origen, en Intervalos de IPs, introduzca 0.0.0.0/0.

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

  11. Marca la casilla TCP y, en Puertos, introduce 80.

  12. Haz clic en Crear.

Añade una regla de cortafuegos para delegar el tráfico de salida de la red myvpc en la siguiente regla de la jerarquía

Añade una regla de cortafuegos que use la acción goto_next para delegar el tráfico de salida de la red myvpc en la siguiente regla del cortafuegos, que es la regla de cortafuegos de VPC implied IPv4 allow egress.

  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 fw-egress-specific-vpc y, a continuación, en Añadir regla.

  3. En Prioridad, introduce 300.

  4. En Descripción, escriba delegate-egress-myvpc.

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

  6. En Acción tras coincidencia, selecciona Ir a siguiente.

  7. En la sección Objetivo, haz clic en Añadir red.

  8. Selecciona el nombre del proyecto de prueba que contenga myvpc y, a continuación, selecciona myvpc como red.

  9. En la sección Destino, en Intervalos de IP, introduce la dirección IP externa efímera de la VM que ejecuta el servidor web Apache. Ya has anotado esta dirección IP en la sección Crea dos máquinas virtuales en la red test-vpc.

  10. Haz clic en Crear.

Añadir una regla de cortafuegos para denegar el tráfico de salida procedente de todas las demás redes de VPC

Por último, añade una regla de cortafuegos que rechace el tráfico de salida de todas las demás redes de VPC de test-folder.

  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 fw-egress-specific-vpc y, a continuación, en Añadir regla.

  3. En Prioridad, introduce 400.

  4. En Descripción, escriba block-egress-all-traffic.

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

  6. En Acción tras coincidencia, selecciona Denegar.

  7. En la sección Destino, en Intervalos de IP, introduce 0.0.0.0/0.

  8. Haz clic en Crear.

Probar la política de cortafuegos jerárquica

Una vez que haya configurado la política de cortafuegos jerárquica, siga estos pasos para probarla:

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

  2. En el selector de proyectos de la parte superior de la página, selecciona test-project donde hayas creado las redes de VPC.

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

    Ir a instancias de VM

  4. En la columna Conectar de myvpc-vm, haz clic en SSH.

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

  6. Para verificar que se permite el tráfico de salida a testvpc-apache-vm desde myvpc, ejecuta el siguiente comando:

    curl <external_ephemeral_IP_testvpc_apache_vm> -m 2
    

    El comando anterior devuelve el contenido que has especificado para la página index.html del servidor web Apache, lo que significa que se permiten las conexiones de salida desde myvpc.

  7. Para verificar que el tráfico de salida está bloqueado desde cualquier otra red de VPC de la organización, haz lo siguiente:

    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 testvpc-vm, 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 verificar que el tráfico de salida de testvpc-vm a testvpc-apache-vm está bloqueado, ejecuta el siguiente comando:

      curl <internal_IP_testvpc_apache_vm> -m 2
      

      El comando anterior devuelve un mensaje Connection timed out, que es lo esperado, ya que has creado una regla de cortafuegos para denegar el tráfico de salida de todas las redes de VPC de la organización, excepto de myvpc.

Limpieza

Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta guía de inicio rápido, elimina los recursos, el proyecto y la carpeta.

Para eliminar los recursos creados en esta guía de inicio rápido, completa las siguientes tareas.

Eliminar la política de cortafuegos jerárquica

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

  2. En el selector de proyectos de la parte superior de la página, selecciona test-folder donde has creado los recursos para esta guía de inicio.

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

    Ir a Políticas de cortafuegos

  4. En la sección Políticas de cortafuegos asociadas a este nodo o heredadas por él, haga clic en fw-egress-specific-vpc.

  5. Haz clic en la pestaña Asociaciones.

  6. Selecciona la casilla de test-folder y haz clic en Retirar asociación.

  7. En el cuadro de diálogo Quitar asociación con test-folder, haz clic en Eliminar.

  8. Haz clic en Eliminar.

  9. En el cuadro de diálogo Eliminar fw-egress-specific-vpc, haz clic en Eliminar.

Eliminar las VMs

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

  2. En el selector de proyectos de la parte superior de la página, selecciona test-project.

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

    Ir a instancias de VM

  4. Marca las casillas de myvpc-vm, testvpc-vm y testvpc-apache-vm.

  5. Haz clic en Eliminar.

  6. En el cuadro de diálogo Eliminar instancia 3 instancias, haz clic en Eliminar.

Eliminar el Cloud Router y la pasarela de Cloud NAT

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

    Ir a Cloud Routers

  2. Seleccione la casilla de myvpc-router.

  3. Haz clic en Eliminar.

  4. En el cuadro de diálogo Eliminar myvpc-router, haz clic en Eliminar.

Cuando eliminas un Cloud Router, también se elimina la pasarela de Cloud NAT asociada.

Elimina la red de VPC y sus subredes

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

    Ir a redes de VPC

  2. En la columna Nombre, haz clic en myvpc.

  3. Haz clic en Eliminar red de VPC.

  4. En el cuadro de diálogo Eliminar una red, haz clic en Eliminar.

    Del mismo modo, elimina la red test-vpc.

Cuando eliminas una red de VPC, también se eliminan sus subredes.

Eliminar el proyecto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. If the project that you plan to delete is attached to an organization, expand the Organization list in the Name column.
  3. In the project list, select the project that you want to delete, and then click Delete.
  4. In the dialog, type the project ID, and then click Shut down to delete the project.

Eliminar la carpeta

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

    Ir a Gestionar recursos

  2. Si la carpeta que quieres eliminar está asociada a una organización, despliega la lista Organización de la columna Nombre.

  3. En la lista de carpetas, selecciona test-folder y, a continuación, haz clic en Eliminar.

  4. En el cuadro de diálogo, escribe el ID de la carpeta y, a continuación, haz clic en Eliminar de todos modos para eliminar el proyecto.

Siguientes pasos