Usa el registro de reglas de firewall

El registro de reglas de firewall te permite auditar, verificar y analizar los efectos de estas reglas. Por ejemplo, puedes determinar si una regla de firewall diseñada para denegar tráfico está funcionando según lo previsto. El registro también es útil si necesitas determinar cuántas conexiones se ven afectadas por una regla de firewall determinada.

En esta página, se muestra cómo inhabilitar y habilitar el registro para las reglas de firewall de VPC. Si deseas obtener instrucciones sobre el registro de reglas de política de firewall, consulta esa documentación.

En esta página, también se muestra cómo ver los registros generados. Para obtener más información sobre lo que se registra, los ejemplos y los formatos de registro, consulta Descripción general del registro de las reglas de firewall.

Si habilitas el registro en una regla de firewall, puedes ver estadísticas y recomendaciones para la regla desde Firewall Insights. Para obtener más información, consulta la página sobre Firewall Insights en la documentación de Network Intelligence Center.

Permisos

Para modificar las reglas de firewall o los registros de acceso, los miembros de IAM necesitan una de las siguientes funciones.

Tarea Función requerida
Crear, borrar o actualizar las reglas de firewall Propietario o editor del proyecto o administrador de seguridad
Ver registros Propietario, editor o visualizador del proyecto o visualizador de registros
Consulta la Guía de control de acceso de Logging para obtener detalles sobre los permisos y las funciones de IAM de Logging.

Inhabilita y habilita el registro de reglas de firewall

Cuando creas una regla de firewall, puedes elegir activar el registro de las reglas de firewall. Consulta cómo crear reglas de firewall para obtener más información.

Si deseas habilitar o inhabilitar el registro de las reglas de firewall para una regla existente, sigue estas instrucciones. Cuando habilitas el registro, puedes controlar si se incluyen los campos de metadatos. Si los omites, puedes ahorrar en costos de almacenamiento.

Habilita el registro de reglas de firewall

Console

  1. Ve a la página Firewall en Google Cloud Console.
    Ir a la página Firewall
  2. En la columna Registros, determina si el registro de firewall está activado o desactivado para cada regla de firewall.
  3. Para habilitar el registro de una o más reglas de firewall, selecciona la casilla de verificación junto a cada una.
  4. En la barra de acciones de Reglas de firewall, haz clic en Configurar registros.
  5. En el cuadro de diálogo Configurar registros, selecciona Activar.
  6. Para omitir los campos de metadatos, expande Detalles de los registros y, luego, borra Incluir metadatos.
  7. Haz clic en Guardar configuración.

gcloud

gcloud compute firewall-rules update NAME \
    --enable-logging
    --logging-metadata=LOGGING_METADATA

Reemplaza los marcadores de posición por valores válidos:

  • NAME es el nombre de la regla de firewall.
  • LOGGING_METADATA especifica si el registro de reglas de firewall incluye campos de metadatos en los registros de reglas de firewall. Puedes configurar este campo solo si el registro está habilitado. El valor debe ser exclude-all o include-all. De forma predeterminada, se incluyen los campos de metadatos.

Para obtener más información, consulta la documentación de referencia del SDK.

API

Habilita el registro de reglas de firewall en una regla de firewall existente.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
  "name": "RULE_NAME,
  "logConfig": {
    "enable": true,
    "metadata": LOGGING_METADATA
  }
}

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto en el que se encuentra la regla de firewall.
  • RULE_NAME es el nombre de la regla de firewall.
  • LOGGING_METADATA especifica si el registro de reglas de firewall incluye campos de metadatos en los registros de reglas de firewall. Puedes configurar este campo solo si el registro está habilitado. El valor debe ser exclude-all o include-all. De forma predeterminada, se incluyen los campos de metadatos.

Para obtener más información, consulta el método firewalls.patch.

Inhabilita el registro de reglas de firewall

Console

  1. Ve a la página Firewall en Google Cloud Console.
    Ir a la página Firewall
  2. En la columna Registros, determina si el registro de firewall está activado o desactivado para cada regla de firewall.
  3. Para inhabilitar el registro de una o más reglas de firewall, selecciona la casilla de verificación junto a cada una.
  4. En la barra de acciones de Reglas de firewall, haz clic en Configurar registros.
  5. En el cuadro de diálogo Configurar registros, selecciona Desactivar y haz clic en Guardar configuración.

gcloud

gcloud compute firewall-rules update NAME \
    --no-enable-logging

API

Habilita el registro de reglas de firewall en una regla de firewall existente.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
  "name": "RULE_NAME,
  "logConfig": {
    "enable": false
  }
}

Reemplaza los marcadores de posición por valores válidos:

  • PROJECT_ID es el ID del proyecto en el que se encuentra la regla de firewall.
  • RULE_NAME es el nombre de la regla de firewall.

Para obtener más información, consulta el método firewalls.patch.

Visualiza registros

Los registros de las reglas de firewall se crean en el proyecto que aloja la red que contiene las instancias de VM y las reglas de firewall. Con la VPC compartida, las instancias de VM se crean en los proyectos de servicio, pero usan una red de VPC compartida ubicada en el proyecto host. Los registros de las reglas de firewall se guardan en ese proyecto host.

Usa la sección Registros de Cloud Console para ver los registros de reglas de firewall.

Los siguientes filtros demuestran cómo puedes buscar eventos de firewall específicos.

Todos los registros de firewall

  1. Ve a la página Registros en Google Cloud Console.
    Ir a la página Registros
  2. Selecciona Subred en el primer menú desplegable.
  3. Selecciona compute.googleapis.com/firewall en el segundo menú desplegable.
  4. Haz clic en Aceptar.

O, como alternativa:

  1. Ve a la página Registros en Google Cloud Console.
    Ir a la página Registros
  2. En el lado derecho del campo Filtrar por etiqueta o búsqueda de texto, haz clic en la flecha hacia abajo y selecciona Convertir en filtro avanzado.
  3. Pega lo siguiente en el campo. Reemplaza PROJECT_ID por el ID del proyecto.
    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    

Subredes específicas

  1. Ve a la página Registros en Google Cloud Console.
    Ir a la página Registros
  2. En el primer menú desplegable, desplaza el cursor hacia Subred y, luego, muévelo hacia la derecha para abrir el menú de selección de subredes individual.
  3. En el segundo menú desplegable, selecciona compute.googleapis.com/firewall.
  4. Haz clic en Aceptar.

O, como alternativa:

  1. Ve a la página Registros en Google Cloud Console.
    Ir a la página Registros
  2. En el lado derecho del campo Filtrar por etiqueta o búsqueda de texto, haz clic en la flecha hacia abajo y selecciona Convertir en filtro avanzado.
  3. Pega lo siguiente en el campo. Reemplaza PROJECT_ID por el ID de tu proyecto y SUBNET_NAME por tu subred.
    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    resource.labels.subnetwork_name="SUBNET_NAME"
    

VM específicas

  1. Ve a la página Registros en Google Cloud Console.
    Ir a la página Registros
  2. En el lado derecho del campo Filtrar por etiqueta o búsqueda de texto, haz clic en la flecha hacia abajo y selecciona Convertir en filtro avanzado.
  3. Pega lo siguiente en el campo. Reemplaza PROJECT_ID por el ID de tu proyecto y INSTANCE_NAME por tu VM.
    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.instance.vm_name="INSTANCE_NAME"
    

Conexiones desde un país específico

  1. Ve a la página Registros en Google Cloud Console.
    Ir a la página Registros
  2. En el lado derecho del campo Filtrar por búsqueda de texto o etiqueta, haz clic en la flecha hacia abajo y selecciona Convertir en filtro avanzado.
  3. Pega lo siguiente en el campo. Reemplaza PROJECT_ID por el ID del proyecto y COUNTRY por el código ISO 3166-1 Alfa-3.
    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.remote_location.country=COUNTRY
    

Exporta registros

Para exportar registros de reglas de firewall, sigue las instrucciones de Exporta con el visor de registros.

Puedes usar los filtros avanzados de ejemplo para limitar los registros que exportas.

Tabla de interacciones

  • En el caso de la comunicación de VM a VM, ambas VM pueden generar registros, según sus respectivas reglas de firewall.
  • La conexión registrada incluye paquetes que circulan en ambos sentidos si el firewall permitió el paquete inicial.
  • Para una VM determinada, las conexiones entrantes se comparan con las reglas de firewall configuradas en esas VM, y las conexiones salientes se comparan con la regla de firewall de salida configurada en esa VM.
  • Una conexión permitida que coincide con una regla de firewall con la indicación "permitir y registrar" se registra solo una vez. La entrada de registro no se repite cada 5 segundos, incluso si la conexión perdura.
  • Una conexión denegada que coincide con una regla de firewall con la indicación "denegada y registrar" repite la entrada de registro cada 5 segundos mientras haya paquetes observados en esa conexión denegada.

En esta tabla se muestra el comportamiento del registro de firewall desde el punto de vista de una VM única.

Si una VM1 tiene una regla de entrada R1 que coincide con los paquetes y una regla de salida R2 que también coincide con los paquetes, el comportamiento del registro de firewall es el siguiente:

La VM1 tiene una regla de entrada R1 (coincide con los paquetes) La VM1 tiene una regla de salida R2 (coincide con los paquetes) Dirección de conexión Acción Registro
Permitir + registrar Permitir Entrada Permitir Una entrada de registro:
disposition=allow, rule=R1
Denegar
Permitir + registrar
Denegar + registrar
Permitir Permitir Entrada Permitir Sin registro
Denegar
Permitir + registrar
Denegar + registrar
Denegar + registrar No disponible Entrada Denegar Una entrada de registro cada 5 segundos:
disposition=deny, rule=R1
Denegar No disponible Entrada Denegar Sin registro
Permitir Permitir + registrar Salida Permitir Una entrada de registro:
disposition=allow, rule=R2
Denegar
Permitir + registrar
Denegar + registrar
Permitir Permitir Salida Permitir Sin registro
Denegar
Permitir + registrar
Denegar + registrar
No disponible Denegar + registrar Salida Denegar Una entrada de registro cada 5 segundos:
disposition=deny, rule=R2
No disponible Denegar Salida Denegar Sin registro

Ten en cuenta que la entrada y salida son simétricas.

Esta es la descripción detallada de la semántica de los registros de firewall:

  • Permitir + registrar (el registro solo es compatible con TCP y UDP)

    • La conexión iniciada en la dirección en la que se aplica la regla crea un registro único.
    • Se permite el tráfico de respuesta debido al seguimiento de la conexión. El tráfico de respuesta no genera ningún registro, independientemente de las reglas de firewall en esa dirección.
    • Si la conexión expira desde el firewall (inactiva durante 10 minutos o RST de TCP recibido), es posible que otro paquete en cualquier dirección active el registro.
    • El registro se basa en 5 tuplas. Los marcadores de TCP no influyen en el comportamiento del registro.
  • Denegar + registrar (el registro solo es compatible con TCP y UDP)

    • Los paquetes se descartan (no se inicia ninguna conexión).
    • Cada paquete que corresponde a una tupla única de 5 se registra como un intento de conexión con errores.
    • La misma tupla de 5 se vuelve a registrar cada 5 segundos si continúa recibiendo paquetes.

Solución de problemas

No es posible ver los registros

Si no puedes ver los registros de reglas de firewall en la sección Registros de Cloud Console, comprueba lo siguiente:

Causa posible: Permisos insuficientes.

Consulta al propietario del proyecto a fin de asegurarte de que tu miembro de IAM tenga al menos la función de visualizador de registros en el proyecto. Consulta los permisos para obtener más información.
Causa posible: Los registros de la subred pueden estar excluidos de Logging
En Cloud Console, navega hasta Logging > Transferencia de registros y verifica que la subred de GCE no se excluya o, si se excluye de forma parcial, verifica que el filtro de exclusión no se aplique a los registros de firewall.
Causa posible: Redes heredadas no admitidas
No puedes usar el registro de reglas de firewall en una red heredada. Solo se admiten las redes de VPC.
Causa posible: Asegúrate de buscar en el proyecto correcto
Dado que los registros de reglas de firewall se almacenan con el proyecto que contiene la red, es importante que te asegures de buscar los registros en el proyecto correcto. Con la VPC compartida, las instancias de VM se crean en los proyectos de servicio, pero usan una red de VPC compartida ubicada en el proyecto host. Para los casos de VPC compartida, los registros de las reglas de firewall se guardan en ese proyecto host.

Si usas una VPC compartida, necesitarás tener los permisos adecuados de acceso al proyecto host para ver los registros de las reglas de firewall. Si bien las instancias de VM se encuentran ubicadas en los proyectos de servicio, los registros de las reglas de firewall de estas instancias se encuentran en el proyecto host.

Entradas de registro faltantes

Causa posible: Es posible que las conexiones no coincidan con la regla de firewall que esperas.

Verifica que la regla de firewall que esperas se encuentre en la lista de reglas de firewall aplicables para una instancia. Usa Cloud Console para ver los detalles de la instancia relevante y, luego, haz clic en el botón Ver detalles de la sección Interfaces de red en la página Detalles de la instancia de VM. Inspecciona las reglas de firewall aplicables en la sección Detalles de las rutas y las reglas de firewall de la página Detalles de la interfaz de red.

Revisa la descripción general de las reglas de firewall para asegurarte de haber creado las reglas de firewall correctamente.

Puedes usar tcpdump en la VM para determinar si las conexiones que envía o recibe tienen direcciones, puertos y protocolos que coinciden con el firewall que esperas.

Causa posible: Es posible que se aplique una regla de mayor prioridad con el registro de las reglas de firewall inhabilitado.

Las reglas de firewall se evalúan en función de sus prioridades. Desde el punto de vista de una instancia de VM, solo una regla de firewall se aplica al tráfico.

Puede que una regla que consideras la regla aplicable de mayor prioridad en realidad no lo sea. En su lugar, se puede aplicar una regla de mayor prioridad que no tenga el registro habilitado.

Si deseas solucionar el problema, puedes habilitar de forma temporal el registro de todas las posibles reglas de firewall aplicables para una VM. Usa Cloud Console para ver los detalles de la VM relevante y, luego, haz clic en el botón Ver detalles de la sección Interfaces de red en la página Detalles de la instancia de VM. Inspecciona las reglas de firewall aplicables en la sección Detalles de las rutas y las reglas de firewall de la página Detalles de la interfaz de red y, luego, identifica tus reglas personalizadas en esa lista. Habilita temporalmente el registro de todas estas reglas de firewall personalizadas.

Con el registro habilitado, puedes identificar la regla aplicable. Una vez identificada, asegúrate de inhabilitar el registro de todas las reglas que realmente no lo necesiten.

Metadatos faltantes para algunas entradas de registro

Causa posible: Retraso en la propagación de la configuración

Si actualizas una regla de firewall que tiene habilitado el registro de firewall, puede que la propagación de los cambios necesarios para registrar el tráfico que coincide con los componentes actualizados de la regla demore unos minutos en Google Cloud.

Próximos pasos