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
En la Google Cloud consola, ve a la página Redes de VPC.
Haz clic en Crear red VPC.
En Nombre, escribe
vpc-fw-rules
.En Descripción, escriba
VPC network for the firewall rules tutorial
.En Modo de creación de subred, selecciona Personalizado.
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
- Nombre:
Haz clic en Listo.
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
- Nombre:
Haz clic en Listo.
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 (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 fuente0.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:
En la Google Cloud consola, ve a la página Crear una instancia.
En el panel Configuración de la máquina, haz lo siguiente:
- En Nombre, escribe
vm-fw-rules-server
. - En Región, selecciona
us-central1 (Iowa)
.
- En Nombre, escribe
En el menú de navegación, haga clic en Redes.
- 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
- Red:
- Haz clic en Listo.
- En la sección Interfaces de red, haga clic en
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:
En la Google Cloud consola, ve a la página Crear una instancia.
En el panel Configuración de la máquina, haz lo siguiente:
- En Nombre, escribe
vm-fw-rules-client
. - En Región, selecciona
us-central1 (Iowa)
.
- En Nombre, escribe
En el menú de navegación, haga clic en Redes.
- 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
- Red:
- Haz clic en Listo.
- En la sección Interfaces de red, haga clic en
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
En la Google Cloud consola, ve a la página Cloud NAT.
Haz clic en Empezar o en Crear pasarela de Cloud NAT.
En Nombre de la pasarela, introduce
gateway-fw-rules
.En Tipo de NAT, selecciona Público.
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.
- En Nombre, escribe
router-fw-rules
. - Haz clic en Crear.
- En Nombre, escribe
- 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 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
En la Google Cloud consola, ve a la página Políticas de cortafuegos.
Haz clic en Crear política de cortafuegos.
En la sección Configurar política, en Nombre de la política, introduce
fw-policy
.En Ámbito de implementación, selecciona Global y haz clic en Continuar.
Para crear reglas para su política, en la sección Añadir reglas, haga clic en Añadir regla.
- En Prioridad, introduce
65534
. - En Dirección del tráfico, selecciona Salida.
- En Registros, selecciona Activado.
- En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.
- En la sección Destino, en Intervalos de IP, introduce
0.0.0.0/0
. - En la sección Protocolos y puertos, selecciona Permitir todo.
- Haz clic en Crear.
- En Prioridad, introduce
Haz clic en Continuar.
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.
Marca la casilla de
vpc-fw-rules
y haz clic en Asociar.Haz clic en Continuar.
Haz clic en Crear.
gcloud
Para crear una política de cortafuegos, ejecuta el siguiente comando:
gcloud compute network-firewall-policies create fw-policy \ --global
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
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 puerto3389
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:
En la Google Cloud consola, ve a la página Políticas de cortafuegos.
En la sección Políticas de cortafuegos de red, haga clic en
fw-policy
.Haz clic en Crear regla.
En Prioridad, introduce
500
.En Dirección del tráfico, selecciona Entrada.
En Registros, selecciona Activado.
En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.
En la sección Origen, en Intervalos de IPs, introduzca
35.235.240.0/20
.En la sección Protocolos y puertos, selecciona Protocolos y puertos especificados.
Marca la casilla TCP y, en Puertos, introduce
22
y3389
separados por una coma.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.
En la consola de Google Cloud , ve a la página Instancias de VM.
En la columna Conectar de la máquina virtual
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 automáticamente el servidor Apache.
Para comprobar que Apache se está ejecutando, ejecuta el siguiente comando:
sudo systemctl status apache2 --no-pager
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
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.
En la consola de Google Cloud , ve a la página Instancias de VM.
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.En la columna Conectar de la máquina virtual
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
Sustituye
INTERNAL_IP
por la dirección IP de la VMvm-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.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
En la Google Cloud consola, ve a la página Políticas de cortafuegos.
En la sección Políticas de cortafuegos de red, haga clic en
fw-policy
.Haz clic en Crear regla.
En Prioridad, introduce
501
.En Dirección del tráfico, selecciona Entrada.
En Registros, selecciona Activado.
En la sección Destino, en Tipo de destino, selecciona Todas las instancias de la red.
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.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.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.
En la consola de Google Cloud , ve a la página Instancias de VM.
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.En la columna Conectar de la máquina virtual
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
Sustituye
INTERNAL_IP
por la dirección IP de la VMvm-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 cortafuegos, consulte Ver registros.