En esta página, se explican las reglas de seguridad de la puerta de enlace y cómo crearlas.
Secure Web Proxy te permite definir varios tipos de reglas de seguridad dentro de tus políticas de seguridad de puerta de enlace para proteger el tráfico web saliente. Puedes usar estas reglas para controlar con precisión la seguridad de tu tráfico con detalles específicos de la solicitud, como encabezados y patrones de URL, para asegurarte de que solo el tráfico HTTP/S aprobado salga de tu red.
Las reglas de seguridad de la puerta de enlace tienen las siguientes características:
Cada regla es una sentencia
if-thenque verifica una solicitud web en función de los siguientes parámetros:Identidad de origen: Quién realiza la solicitud, como una máquina virtual (VM) específica o una cuenta de servicio.
Destino: Es hacia dónde se dirige la solicitud, como una URL de destino o un dominio como
trusted-partner.com.Acción: Es la decisión de permitir o rechazar el tráfico.
Las reglas de seguridad de la puerta de enlace proporcionan un control detallado. Estas reglas te permiten aplicar diferentes estándares de seguridad en toda tu organización con definiciones claras y estructuradas.
Reglas de coincidencia de host
Secure Web Proxy usa la coincidencia de nombres de host para verificar el dominio de destino. El proceso de verificación varía según cómo se implemente tu proxy, como se muestra en la siguiente tabla.
| Modo de implementación | Proceso de verificación del anfitrión |
|---|---|
| Modo de proxy explícito | En el caso del tráfico sin encriptar, el proxy verifica el nombre de host con el encabezado de conexión HTTP. Si usas atributos de Application Matcher para la inspección de TLS, el proxy verifica el nombre de host primero a nivel de la conexión y, luego, a nivel de la aplicación. |
| Modo de próximo salto | En el caso del tráfico encriptado, el proxy compara el nombre de host de destino con el campo de indicación de nombre del servidor (SNI) en la solicitud saliente. Este campo es visible incluso en conexiones seguras. |
Configura reglas de coincidencia de host para el modo de proxy explícito
Cuando implementes Secure Web Proxy como un proxy explícito, configura reglas de coincidencia de host para verificar que la información del host que envía el cliente se extraiga y verifique correctamente con las reglas de seguridad definidas. En el modo de proxy explícito, los clientes se configuran de forma activa para enviar su tráfico directamente a la instancia de Secure Web Proxy.
La coincidencia de host en el modo de proxy explícito funciona para diferentes tipos de tráfico web de la siguiente manera:
| Tipo de tráfico | Mecanismo de coincidencia | Configuración de la regla |
|---|---|---|
| HTTP sin encriptar | Secure Web Proxy compara el nombre de host de destino con
el campo host en el encabezado
CONNECT estándar de la solicitud HTTP. |
En el campo sessionMatcher, usa
host() == "example.com". |
| HTTPS encriptado (sin inspección de seguridad de la capa de transporte [TLS]) | La coincidencia de host no es posible ni a nivel de la aplicación
ni a nivel de la sesión. Esto se debe a que los detalles de la solicitud
están encriptados y el atributo destination.ip
no es
compatible. Debes usar controles de políticas más amplios, como
la coincidencia de identidad de origen, o habilitar la inspección de TLS
para el filtrado basado en el host. |
Para usar Application Matcher, usa la coincidencia de identidad de origen, como las cuentas de servicio, o habilita la inspección de TLS. |
| HTTPS encriptado (con inspección de TLS) | Para inspeccionar la solicitud completa, debes usar el comparador de sesiones y el comparador de aplicaciones. | 1. Establece una regla general de Session Matcher que devuelva
true o coincida con el host de destino, como
host() == "example.com".
2. En el campo |
Configura reglas de coincidencia de host para el modo de próximo salto
Cuando implementes el Secure Web Proxy como próximo salto, debes configurar reglas de coincidencia de hosts. El tráfico se redirecciona al proxy a través de una ruta de nube privada virtual (VPC) basada en los rangos de direcciones IP que definas. Las reglas de coincidencia de host garantizan que el proxy identifique correctamente el host de destino verificando varios campos del tráfico, como el encabezado de indicación del nombre del servidor (SNI).
La coincidencia de host en el modo de próximo salto funciona para diferentes tipos de tráfico web de la siguiente manera:
| Tipo de tráfico | Mecanismo de coincidencia | Configuración de la regla |
|---|---|---|
| HTTP sin encriptar | Secure Web Proxy verifica el nombre de host de destino con
el campo host en el encabezado de la solicitud HTTP
estándar. |
En el campo sessionMatcher, usa
host() == "example.com". |
| HTTPS encriptado (sin inspección de TLS) | Secure Web Proxy compara el nombre de host con el encabezado de SNI en la solicitud saliente, que es visible incluso si el resto del tráfico está encriptado. | En el campo sessionMatcher, usa
host() == "example.com". |
| HTTPS encriptado (con inspección de TLS) | Para inspeccionar la solicitud completa, debes usar el comparador de sesiones y el comparador de aplicaciones. | 1. Establece una regla general de Session Matcher que devuelva
true o coincida con el host de destino, como
host() == "example.com".
2. En el campo |
Reglas de proxy TCP
Las reglas de proxy del Protocolo de control de transmisión (TCP) te permiten controlar el tráfico que
no es tráfico web estándar, como HTTP (puerto 80) o HTTPS (puerto
443). Si configuras reglas de proxy de TCP, puedes
permitir o bloquear el tráfico en cualquier otro puerto TCP. Estas reglas te ayudan a bloquear
el tráfico malicioso y administrar las aplicaciones que no son web y que usan TCP.
Si tu carga de trabajo (como tus aplicaciones y servicios) usa el Secure Web Proxy como próximo salto, aplicar reglas de proxy TCP es beneficioso. El redireccionamiento basado en rutas dirige el tráfico que no es HTTP(S) ni tráfico web a tu instancia de Secure Web Proxy. De esta manera, puedes bloquear el tráfico saliente para que no llegue a sitios externos maliciosos y administrar los servicios externos a los que se pueden conectar tus cargas de trabajo de red.
Configura reglas de proxy TCP
Puedes configurar reglas de proxy de TCP para tu
aplicación con el objetivo de proteger el tráfico que no es web
y aplicar políticas de seguridad para las aplicaciones que no usan HTTP/S estándar,
como para los puertos 80 y 443.
Si aplicas estas reglas, puedes evitar el uso no autorizado de otros puertos TCP para la transferencia de datos o la actividad maliciosa. Esto es particularmente útil cuando tus cargas de trabajo usan Secure Web Proxy como próximo salto para protocolos que no son web.
Para implementar reglas de proxy TCP y crear una regla de permiso o bloqueo de tráfico para tu aplicación, debes especificar el puerto de destino. De manera opcional, puedes incluir cualquiera de los siguientes atributos de Session Matcher para definir mejor los criterios de la regla de permiso o bloqueo.
En la siguiente tabla, se proporciona más información sobre los diversos atributos que puedes usar en una regla de proxy de TCP:
| Atributo | Tipo de atributo | Descripción |
|---|---|---|
source.ip |
cadena | Es la dirección IP del cliente que envió la solicitud. |
source.port |
cadena | Es el puerto del cliente que envió la solicitud. |
destination.port |
cadena | Es el puerto ascendente al que tu instancia de Secure Web Proxy envía el tráfico. |
source.matchTag(SECURE_TAG) |
booleano |
El argumento es el ID permanente de la etiqueta segura, como
|
source.matchServiceAccount(SERVICE_ACCOUNT) |
booleano | True, si la fuente está asociada con
SERVICE_ACCOUNT, como
source.matchServiceAccount('x@my-project.').
|
inIpRange(IP_ADDRESS, |
booleano | True, si IP_ADDRESS está
contenido en IP_RANGE, como
inIpRange(source.ip, '1.2.3.0/24'). Las máscaras de subred
para las direcciones IPv6 no pueden ser mayores que `/64`.
|
Ejemplo de regla de proxy TCP
En este ejemplo, se muestra cómo definir un Secure Web Proxy
gatewaySecurityPolicyRule con una
expresión de CEL para permitir
todo el tráfico de TCP al puerto 22. Puedes usar esta configuración cuando apliques las capacidades de proxy TCP de Secure Web Proxy.
En la siguiente muestra de código, se indica cómo definir una regla de proxy TCP:
name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
enabled: true
priority: 100 # Lower numbers have higher priority
description: "Allow TCP proxy traffic to port 22 - such as, for SSH"
basicProfile: ALLOW
sessionMatcher: "destination.port == 22"
Reemplaza lo siguiente:
PROJECT_ID: Es el ID de tu proyecto.REGION: región de tu políticaPOLICY_NAME: Es el nombre de tu política.RULE_NAME: Es el nombre de la regla de proxy TCP. En este ejemplo, podemos considerar su valor comoallow-ssh-tcp-proxy.
Consideraciones importantes
Las reglas de proxy de TCP que configures deben tener una prioridad más alta (número más bajo) que las reglas de HTTP/S para garantizar que se evalúen y se apliquen primero. Para obtener más información, consulta Orden de evaluación de reglas.
Cuando configuras reglas de proxy TCP, no se admite el atributo de comparador de sesiones
hostporque la información del host no está disponible en la capa de TCP.Las reglas de proxy TCP filtran el tráfico web solo en función del puerto de destino. Para mejorar la seguridad de tu red, te recomendamos que agregues otras condiciones con operadores lógicos, como el operador AND lógico (&&) y el operador OR lógico (||), y atributos compatibles, como
source.ip. Este es un ejemplo de cómo definir una regla de proxy de TCP más específica:// Allow port 22 from only a specific source IP range sessionMatcher: "destination.port == 22 && inIpRange(source.ip, '10.0.0.0/24')"Secure Web Proxy no admite la capacidad de configurar reglas de proxy para aplicaciones del protocolo de datagramas de usuario (UDP). Como resultado, Secure Web Proxy bloquea el tráfico de las aplicaciones basadas en UDP.
Crea una regla de seguridad
Antes de crear una regla de seguridad de puerta de enlace, asegúrate de realizar las siguientes acciones:
Completa todos los pasos de configuración inicial.
Después de crear una regla y asociarla con una política, puedes usarla cuando implementes Secure Web Proxy.
Console
En la consola de Google Cloud , ve a la página Políticas de SWP.
Haz clic en el nombre de tu política, como
policy1.Haz clic en Agregar regla.
Para cada regla, haz lo siguiente:
En Prioridad, ingresa un orden de evaluación numérico para la regla. Las reglas se evalúan de mayor a menor prioridad, en la que
0es la prioridad más alta.En el campo Nombre, ingresa un nombre para la regla.
En el campo Descripción, ingresa una descripción para la regla.
En Acción, selecciona una de las siguientes opciones:
- Permitir: para permitir las solicitudes de conexión que coincidan con la regla.
- Rechazar: Rechaza las solicitudes de conexión que coinciden con la regla.
En el campo Estado, selecciona una de las siguientes opciones para la aplicación de la regla:
- Habilitada: para aplicar la regla en tu instancia de Secure Web Proxy.
- Inhabilitada: para no aplicar la regla en tu instancia de Secure Web Proxy.
En la sección Coincidencia de sesión, especifica los criterios para que coincida con la sesión, como
host() == "www.wikipedia.org".Para obtener más información sobre la sintaxis de
SessionMatcher, consulta la referencia del lenguaje de coincidencia de CEL.En la sección Coincidencia de aplicaciones, especifica los criterios para que coincidan con la solicitud.
Para obtener más información sobre la coincidencia del tráfico de TCP, consulta Configura reglas de proxy de TCP.
Haz clic en Agregar regla.
Cloud Shell
Usa tu editor de texto preferido para crear un archivo
rule.yaml. Para obtener más información sobre la sintaxis desessionMatcher, consulta la referencia del lenguaje de coincidencia de CEL.name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME description: Allow wikipedia.org enabled: true priority: 1 basicProfile: ALLOW sessionMatcher: host() == 'www.wikipedia.org'Reemplaza lo siguiente:
PROJECT_ID: Es el ID de tu proyecto.REGION: región de tu políticaRULE_NAME: Es el nombre de la regla. En este ejemplo, podemos considerar que su valor esallow-wikipedia-org.
Opcional: Como alternativa, si quieres crear una regla con la inspección de TLS habilitada, crea el archivo
rule.yamlcomo se muestra aquí. Para obtener más información, consulta Descripción general de la inspección de TLS y Habilita la inspección de TLS.name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME description: Allow wikipedia.org enabled: true priority: 1 basicProfile: ALLOW sessionMatcher: host() == 'www.wikipedia.org' applicationMatcher: request.path.contains('index.html') tlsInspectionEnabled: truePara obtener más información sobre la coincidencia del tráfico de TCP, consulta Configura reglas de proxy de TCP.
Crea la regla de la política de seguridad.
gcloud network-security gateway-security-policies rules import allow-wikipedia-org \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1
Limitaciones
Si creas una política de autorización en tu instancia de Secure Web Proxy, el proxy ignorará todas las políticas de seguridad de puerta de enlace existentes y las reglas de seguridad de puerta de enlace asociadas.
Secure Web Proxy no admite la capacidad de configurar reglas para aplicaciones del protocolo de datagramas de usuario (UDP). Secure Web Proxy bloquea el tráfico de las aplicaciones basadas en UDP.