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.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Habilita la API de Compute Engine para tu proyecto.
- Asegúrate de tener el rol Administrador de red de Compute (
roles/compute.networkAdmin
) de Identity and Access Management. - 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.
Console
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
En Nombre, ingresa
vpc-fw-rules
.En Descripción, ingresa
VPC network for the firewall rules tutorial
.En Modo de creación de subred, selecciona Personalizado.
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
- Nombre:
Haz clic en Listo.
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
- Nombre:
Haz clic en Listo.
Desplázate hacia abajo y haz clic en Crear.
gcloud
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"
Opcional: En el cuadro de diálogo Autorizar Cloud Shell, haz clic en Autorizar.
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
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 destino0.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 origen0.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
Console
Para crear la VM del servidor, sigue estos pasos:
En la consola de Google Cloud, ve a la página Crear una instancia.
En Nombre, ingresa
vm-fw-rules-server
.En Región, selecciona
us-central1 (Iowa)
.Desplázate hacia abajo y expande Opciones avanzadas y, luego, expande Herramientas de redes.
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
- Red:
Haz clic en Listo.
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:
En la consola de Google Cloud, ve a la página Crear una instancia.
En Nombre, ingresa
vm-fw-rules-client
.En Región, selecciona
us-central1 (Iowa)
.Desplázate hacia abajo y expande Opciones avanzadas y, luego, expande Herramientas de redes.
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
- Red:
Haz clic en Listo.
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
En la consola de Google Cloud, ve a la página de Cloud NAT.
Haz clic en Comenzar o Crear la puerta de enlace NAT.
En Nombre de la puerta de enlace, ingresa
gateway-fw-rules
.Para Tipo de NAT, selecciona Pública.
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.
- En Nombre, ingresa
router-fw-rules
. - Haz clic en Crear.
- En Nombre, ingresa
- Red:
Haz clic en Crear.
gcloud
Para crear un Cloud Router, ejecuta el siguiente comando:
gcloud compute routers create router-fw-rules \ --network=vpc-fw-rules \ --region=us-central1
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
En la consola de Google Cloud, ve a la página Políticas de firewall.
Haz clic en Crear política de firewall.
En la sección Configurar la política, en Nombre de la política, ingresa
fw-policy
.En Permiso de la implementación, selecciona Global y haz clic en Continuar.
Para crear reglas para tu política, en la sección Agregar reglas, haz clic en Agregar regla.
- En Prioridad, ingresa
65534
. - En Dirección del tráfico, selecciona Salida.
- En Registros, selecciona Activar.
- En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.
- En la sección Destino, para Rangos de IP, ingresa
0.0.0.0/0
. - En la sección Protocolo y puertos, selecciona Permitir todo.
- Haz clic en Crear.
- En Prioridad, ingresa
Haz clic en Continuar.
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.
Selecciona la casilla de verificación de
vpc-fw-rules
y haz clic en Asociar.Haz clic en Continuar.
Haz clic en Crear.
gcloud
Para crear una política de firewall, ejecuta el siguiente comando:
gcloud compute network-firewall-policies create fw-policy \ --global
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
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 puerto3389
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:
En la consola de Google Cloud, ve a la página Firewall.
En la sección Políticas de firewall de red, haz clic en
fw-policy
.Haz clic en Crear regla.
En Prioridad, ingresa
500
.En Dirección del tráfico, selecciona Ingress.
En Registros, selecciona Activar.
En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.
En la sección Origen, en Rangos de IP, ingresa
35.235.240.0/20
.En la sección Protocolos y puertos, selecciona Protocolos y puertos especificados.
Selecciona la casilla de verificación TCP y, en Puertos, ingresa
22
y3389
separados por comas.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.
En la consola de Google Cloud, ve a la página Instancias de VM.
En la columna Conectar de la VM de
vm-fw-rules-server
, haz clic en SSH.En el cuadro de diálogo SSH en el navegador, haz clic en Autorizar y espera a que se establezca la conexión.
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.
Para verificar que Apache esté en ejecución, ejecuta el siguiente comando:
sudo systemctl status apache2 --no-pager
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
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.
En la consola de Google Cloud, ve a la página Instancias de VM.
En la columna IP interna de la VM de
vm-fw-rules-server
, copia la dirección IP interna de la VM.En la columna Conectar de la VM de
vm-fw-rules-client
, haz clic en SSH.En el cuadro de diálogo SSH en el navegador, haz clic en Autorizar y espera a que se establezca la conexión.
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 devm-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.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
En la consola de Google Cloud, ve a la página Políticas de firewall.
En la sección Políticas de firewall de red, haz clic en
fw-policy
.Haz clic en Crear regla.
En Prioridad, ingresa
501
.En Dirección del tráfico, selecciona Ingress.
En Registros, selecciona Activar.
En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.
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.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.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.
En la consola de Google Cloud, ve a la página Instancias de VM.
En la columna IP interna de la VM de
vm-fw-rules-server
, copia la dirección IP interna de la VM.En la columna Conectar de la VM de
vm-fw-rules-client
, haz clic en SSH.En el cuadro de diálogo SSH en el navegador, haz clic en Autorizar y espera a que se establezca la conexión.
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 devm-fw-rules-server
.El mensaje esperado es
<!doctype html><html><body><h1>Hello World!</h1></body></html>
.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
En la consola de Google Cloud, ve a la página Políticas de firewall.
En la sección Políticas de firewall de red, haz clic en el nombre
fw-policy
.Haz clic en la pestaña Asociaciones.
Selecciona la casilla de verificación de
vpc-fw-rules
y haz clic en Quitar asociación.En el cuadro de diálogo Quitar una asociación de política de firewall, haz clic en Quitar.
Junto al título
fw-policy
, haz clic en Borrar.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
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.Borra la política de firewall.
gcloud compute network-firewall-policies delete fw-policy \ --global
Borra las VMs
Console
En la consola de Google Cloud, ve a la página Instancias de VM.
Selecciona las casillas de verificación de las VMs de
vm-fw-rules-client
yvm-fw-rules-server
.Haz clic en Borrar.
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
En la consola de Google Cloud, ve a la página Cloud Routers.
Selecciona la casilla de verificación
router-fw-rules
.Haz clic en Borrar.
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
En la consola de Google Cloud, ve a la página Redes de VPC.
En la columna Nombre, haz clic en
vpc-fw-rules
.Haz clic en Borrar la red de VPC.
En el diálogo Borrar una red, haz clic en Borrar.
Cuando borras una VPC, también se borran sus subredes.
gcloud
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.
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.