Webhook de discordia para los puntos de automatización de Security Fabric

Descripción

Este artículo describe cómo configurar una puntada de automatización de webhooks que publica un mensaje en un canal de Discordia elegido cuando la puntada se activa.

Alcance

Esta guía es aplicable a cualquier versión de FortiOS que soporte la acción de automatización de webhooks (6.0+).

El FortiGate necesita ser capaz de resolver y comunicarse con el discord.com servidor.

El usuario que crea el webhook para el canal de Discordia debe tener permisos de acceso para gestionar webhooks.

Solución

1) Crear el webhook en Discord

a) Selecciona el icono del engranaje junto al nombre del canal para editarlo, luego ve a Integraciones y seleccione Crear Webhook.

editar canaleditar canal

b) Dé al webhook un nombre apropiado, seleccione el canal deseado y, opcionalmente, cargue un icono. (Los iconos de Fortinet están disponibles para su descarga aquí)

creación de webhookscreación de webhooks

Cuando el webhook es activado por el FortiGate, el mensaje será mostrado como un mensaje por un bot de Discord en el canal seleccionado con el nombre e icono elegidos.

Finalmente, seleccione Copiar URL de Webhook, guarde la URL (se puede recuperar más tarde desde la misma ubicación), y seleccione Guardar cambios.

c) (opcional) Confirmar que la URL del webhook es válida.

En ambos casos, sustituya la URL falsa por la URL real del webhook.

Verificación mediante cURL:

rizo https://discord.com/api/webhooks/999999999999999999/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx… –json ‘{«contenido»: «mensaje de prueba de curl»}’

Verificación mediante PowerShell:

Invoke-RestMethod -Uri https://discord.com/api/webhooks/999999999999999999/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx… -Método Post -Cuerpo (@{«contenido»=»mensaje de prueba powershell»} | ConvertTo-Json) -Tipo de contenido «application/json»

Si la URL del webhook es válida, el o los mensajes se mostrarán en el canal:

Artículos relacionados  Solución de problemas de conexión de FortiGate con SEPM

resultados de la pruebaresultados de las pruebas

2) Crear el punto de automatización en FortiGate

Este ejemplo utiliza el evento de inicio de sesión fallido del administrador como activador. Para otras opciones, consulte Guía de Administración de FortiOS -> Fortinet Security Fabric -> Puntadas de automatización.

Las capturas de pantalla que se muestran a continuación fueron tomadas de la versión 7.0.5 de FortiOS. Las imágenes pueden ser ligeramente diferentes en otras versiones.

a) Crear el disparador de automatización.

En Tejido de seguridad -> Automatización -> Disparo, seleccione Crear nuevo y seleccione el Registro de eventos de FortiOS tipo.

Asigne al activador un nombre descriptivo y seleccione la opción Fallo en el inicio de sesión del administrador en el campo Evento. Seleccione OK para guardar el cambio.

activación de la automatizacióndisparador de automatización

b) Crear la acción de automatización

Pasar a la Acción seleccione Crear nuevo y seleccione el Webhook acción.

Dé a la acción un nombre descriptivo. Seleccione HTTPS como protocolo, pegue la URL del webhook en el campo URL sin el prefijo de protocolo http://, y seleccione el método POST. Añade un Tipo de contenido Cabecera HTTP con el valor application/json. Introduzca el código JSON deseado en el campo del cuerpo HTTP.

El cuerpo JSON mínimo requerido por la API de Discord para enviar un mensaje consiste en la clave ‘content’ con un valor que contiene el mensaje a mostrar.

Este ejemplo utiliza una carga útil que demuestra cómo enviar un mensaje de varias líneas y cómo utilizar las variables del evento de registro de origen. Enviará dos líneas de texto, seguidas de líneas adicionales con variables que contienen la hora, el nombre de usuario del administrador, la IP de origen y la razón del fallo.

Artículos relacionados  Cómo descargar el archivo de configuración de fortigate desde la GUI

{«content» : «Ejemplo de webhook de FortiGate: ¡Fallo en el inicio de sesión de administrador!}

Una vez hecho esto, seleccione OK para guardar la acción de automatización.

acción de automatizaciónacción de automatización

c) Crear la puntada de automatización.

Cambie a la Puntada y seleccione Crear nuevo. Dé un nombre descriptivo a la puntada. Seleccione Añadir activaciónseleccione el activador del paso ay seleccione Aplicar. Seleccione Añadir acciónseleccione la acción creada en el paso b y seleccione Aplicar. Por último, seleccione OK para guardar la nueva puntada de automatización.

puntada de automatizaciónpuntada de automatización

La puntada de automatización completada, el disparador y la acción se representan en la CLI como sigue:

# config system automation-trigger

editar «admin_login_failed»

set event-type event-log

set logid 32002

siguiente

end

# config system automation-action

editar «discord_admin_login_fail»

set action-type webhook

set protocol https

set uri «discord.com/api/webhooks/99999999999999/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx»

set http-body «{\»content\» : \N – «Ejemplo de webhook de FortiGate\N¡El inicio de sesión de administrador ha fallado!\N – Tiempo: %%log.time%\NNNNombre de usuario: %%log.user%\NPropia IP: %%log.srcip%\NRazón del fallo: %%log.reason%\N»}»

set port 443

set headers «Content-Type:application/json»

siguiente

fin

# config system automation-stitch

editar «discord_sample_stitch»

set trigger «admin_login_failed»

configurar acciones

editar 1

set action «discord_admin_login_fail»

set required enable

siguiente

end

siguiente

fin

3) Confirmación final

La configuración se ha completado y la puntada puede probarse realizando un inicio de sesión de administrador fallido. El mensaje resultante, basado en la acción de automatización anterior, debería tener el siguiente aspecto:

pminarik_2-1653492251638.png

Información adicional y referencias

¿Cómo incluir una @mención de nombre de usuario o rol de usuario en el mensaje del webhook?
La mención de un usuario o rol de usuario específico en el mensaje del webhook requiere una sintaxis específica:

Artículos relacionados  Configuración de FortiGate para el arranque de clientes PXE

nombre de usuario: <@id-usuario-aquí>
user-role: <@&role-id-here>

Estos IDs pueden descubrirse rápidamente enviando manualmente un mensaje con el usuario/rol de usuario mencionado en el canal y anteponiendo al signo @ una barra invertida ‘\’. El mensaje resultante mostrará la secuencia exacta de caracteres a utilizar en el cuerpo JSON de la acción del webhook.

Recuperación del ID de usuario/rol de usuarioRecuperación del ID de usuario/rol de usuario

@mencionar la carga útil JSON y el resultado@mencionar la carga útil JSON y el resultado

Documentación

Referencia de la API del webhook de Discord – https://discord.com/developers/docs/resources/webhook

Se puede revisar la referencia de mensajes de registro de FortiOS para saber qué campos de registro están disponibles como variables para cada activador de registro de eventos. – https://docs.fortinet.com/document/fortigate/7.0.5/fortios-log-message-reference

Cómo escapar varios caracteres en cadenas JSON. – https://www.tutorialspoint.com/json_simple/json_simple_escape_characters.htm

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

Your email address will not be published. Required fields are marked *