Integración de Wazuh con Telegram mediante un bot
1. Crear un bot de Telegram
- En la app de Telegram, buscar @BotFather.

- Iniciar un chat con BotFather y escribir el comando:
/newbot

- Elegir el nombre del bot.

- Elegir el nombre de usuario para el bot.

- BotFather proporciona una clave API que se usará para la integración.
Ejemplo de URL: https://api.telegram.org/bot:<API_KEY>/sendMessage

2. Crear un script para enviar mensajes a Telegram
- En el servidor donde está instalado Wazuh, crear el archivo:
nano /var/ossec/integrations/custom-telegram.py
- Agregar el siguiente contenido:
#!/bin/sh
WPYTHON_BIN="framework/python/bin/python3"
SCRIPT_PATH_NAME="$0"
DIR_NAME="$(cd $(dirname ${SCRIPT_PATH_NAME}); pwd -P)"
SCRIPT_NAME="$(basename ${SCRIPT_PATH_NAME})"
case ${DIR_NAME} in
*/active-response/bin | */wodles*)
[ -z "${WAZUH_PATH}" ] && WAZUH_PATH="$(cd ${DIR_NAME}/../..; pwd)"
PYTHON_SCRIPT="${DIR_NAME}/${SCRIPT_NAME}.py"
;;
*/bin)
[ -z "${WAZUH_PATH}" ] && WAZUH_PATH="$(cd ${DIR_NAME}/..; pwd)"
PYTHON_SCRIPT="${WAZUH_PATH}/framework/scripts/${SCRIPT_NAME}.py"
;;
*/integrations)
[ -z "${WAZUH_PATH}" ] && WAZUH_PATH="$(cd ${DIR_NAME}/..; pwd)"
PYTHON_SCRIPT="${DIR_NAME}/${SCRIPT_NAME}.py"
;;
esac
${WAZUH_PATH}/${WPYTHON_BIN} ${PYTHON_SCRIPT} "$@"
- Luego, crear o editar el archivo Python:
nano /var/ossec/integrations/custom-telegram.py
Agregar el siguiente contenido:
#!/usr/bin/env python
import sys
import json
import requests
CHAT_ID = "CHAT_ID"
# Reemplazar "CHAT_ID" por el ID del chat con el bot.
# Obtenerlo accediendo a:
# https://api.telegram.org/botTOKEN/getUpdates
# Leer parámetros de entrada
alert_file = open(sys.argv[1])
hook_url = sys.argv[3]
# Leer archivo de alerta
alert_json = json.loads(alert_file.read())
alert_file.close()
# Extraer información
alert_level = alert_json['rule'].get('level', "N/A")
description = alert_json['rule'].get('description', "N/A")
agent = alert_json['agent'].get('name', "N/A")
# Construir mensaje
msg_data = {
'chat_id': CHAT_ID,
'text': f"Nivel de alerta: {alert_level}\nAgente: {agent}\nDescripción: {description}"
}
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
# Enviar mensaje
requests.post(hook_url, headers=headers, data=json.dumps(msg_data))
sys.exit(0)
3. Dar permisos a los archivos
chown root:ossec /var/ossec/integrations/custom-telegram* chmod 750 /var/ossec/integrations/custom-telegram*
4. Configurar la integración en Wazuh
- Editar el archivo de configuración de Wazuh:
nano /var/ossec/etc/ossec.conf
Agregar dentro de la sección adecuada:
<integration>
<name>custom-telegram</name> <level>3</level> <hook_url>https://api.telegram.org/bot:"APIKEY"/sendMessage</hook_url> <alert_format>json</alert_format></integration>
(Reemplazar "APIKEY" por el token obtenido del bot).
5. Modificar en el Dashboard
- Ingresar al Dashboard de Wazuh, ir a:
Explore > Notifications

- Agregar un nuevo canal y configurarlo con los siguientes datos:


6. Reiniciar Wazuh Manager
systemctl restart wazuh-manager