mSin resumen de edición
Etiqueta: editor de código 2017
m Confección de pasos para la integración.
Línea 2: Línea 2:


=== 1. Crear un bot de Telegram ===
=== 1. Crear un bot de Telegram ===
# En la app de Telegram, buscar '''@BotFather'''.
# En la app de Telegram, buscar '''@BotFather'''.
# [[Archivo:Telegram-wazuh-1.png|centro|miniaturadeimagen]]
# Iniciar un chat con BotFather y escribir el comando: <code>/newbot</code>
# Iniciar un chat con BotFather y escribir el comando: <code>/newbot</code>
# Elegir un nombre para el bot.
# [[Archivo:Telegram-wazuh-2.png|centro|miniaturadeimagen]]
# Elegir un nombre de usuario para el bot (debe terminar en "bot").
# Elegir el nombre del bot.
# BotFather proporcionará una clave API. Esta clave se usará en la integración. 
Ejemplo de URL: 
<code>https://api.telegram.org/bot:&lt;API_KEY&gt;/sendMessage</code>


=== 2. Crear el script de integración ===
[[Archivo:Telegram-wazuh-3.png|centro|miniaturadeimagen]]


En el servidor donde está instalado Wazuh, crear el siguiente archivo:
# Elegir el nombre de usuario para el bot.


<pre>
[[Archivo:Telegram-wazuh-4.png|centro|miniaturadeimagen]]
nano /var/ossec/integrations/custom-telegram
 
</pre>
# BotFather proporciona una clave API que se usará para la integración.


Agregar el siguiente contenido:
Ejemplo de URL: <code>https://api.telegram.org/bot<nowiki/>:&#x3C;API_KEY&#x3E;/sendMessage</code>
[[Archivo:Imagen.png|centro|miniaturadeimagen]]


<pre>
=== 2. Crear un script para enviar mensajes a Telegram ===
En el servidor donde está instalado Wazuh, crear el archivo:<pre>
nano /var/ossec/integrations/custom-telegram
</pre>Agregar el siguiente contenido:<pre>
#!/bin/sh
#!/bin/sh


Línea 44: Línea 47:


${WAZUH_PATH}/${WPYTHON_BIN} ${PYTHON_SCRIPT} "$@"
${WAZUH_PATH}/${WPYTHON_BIN} ${PYTHON_SCRIPT} "$@"
</pre>
</pre>Luego, crear o editar el archivo Python:<pre>
 
Crear el archivo en Python:
 
<pre>
nano /var/ossec/integrations/custom-telegram.py
nano /var/ossec/integrations/custom-telegram.py
</pre>
</pre>Agregar el siguiente contenido:
 
#!/usr/bin/env python
Agregar el siguiente contenido:
 
import sys
<pre>
import json
#!/usr/bin/env python
import requests
 
import sys
CHAT_ID = "CHAT_ID"
import json
<u>'''# Reemplazar "CHAT_ID" por el ID del chat con el bot.
import requests
# Obtenerlo accediendo a:
 
# <nowiki>https://api.telegram.org/botTOKEN/getUpdates</nowiki>'''</u>
CHAT_ID = "CHAT_ID"
# Reemplazar "CHAT_ID" por el ID del chat con el bot.
# Leer parámetros de entrada
# Obtenerlo accediendo a:
alert_file = open(sys.argv[1])
# https://api.telegram.org/botTOKEN/getUpdates
hook_url = sys.argv[3]
 
# Leer parámetros de entrada
# Leer archivo de alerta
alert_file = open(sys.argv[1])
alert_json = json.loads(alert_file.read())
hook_url = sys.argv[3]
alert_file.close()
 
# Leer archivo de alerta
# Extraer información
alert_json = json.loads(alert_file.read())
alert_level = alert_json['rule'].get('level', "N/A")
alert_file.close()
description = alert_json['rule'].get('description', "N/A")
 
agent = alert_json['agent'].get('name', "N/A")
# Extraer información
alert_level = alert_json['rule'].get('level', "N/A")
# Construir mensaje
description = alert_json['rule'].get('description', "N/A")
msg_data = {
agent = alert_json['agent'].get('name', "N/A")
    'chat_id': CHAT_ID,
 
    'text': f"Nivel de alerta: {alert_level}\nAgente: {agent}\nDescripción: {description}"
# Construir mensaje
}
msg_data = {
    'chat_id': CHAT_ID,
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
    'text': f"Nivel de alerta: {alert_level}\nAgente: {agent}\nDescripción: {description}"
}
# Enviar mensaje
 
requests.post(hook_url, headers=headers, data=json.dumps(msg_data))
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
 
sys.exit(0)
# Enviar mensaje
requests.post(hook_url, headers=headers, data=json.dumps(msg_data))
 
sys.exit(0)
</pre>
 
=== 3. Asignar permisos a los archivos ===


=== 3. Dar permisos a los archivos ===
<pre>
<pre>
chown root:ossec /var/ossec/integrations/custom-telegram*
chown root:ossec /var/ossec/integrations/custom-telegram*
Línea 101: Línea 94:


=== 4. Configurar la integración en Wazuh ===
=== 4. Configurar la integración en Wazuh ===
 
Editar el archivo de configuración de Wazuh:<pre>
Editar el archivo de configuración de Wazuh:
 
<pre>
nano /var/ossec/etc/ossec.conf
nano /var/ossec/etc/ossec.conf
</pre>
</pre>Agregar dentro de la sección adecuada:<pre>
 
Agregar la siguiente sección (dentro de &lt;ossec_config&gt; si es necesario):
 
<pre>
<integration>
<integration>
     <name>custom-telegram</name>
     <name>custom-telegram</name>
     <level>3</level>
     <level>3</level>
     <hook_url>https://api.telegram.org/bot:APIKEY/sendMessage</hook_url>
     <hook_url>https://api.telegram.org/bot:"APIKEY"/sendMessage</hook_url>
     <alert_format>json</alert_format>
     <alert_format>json</alert_format>
</integration>
</integration>
</pre>
</pre>(Reemplazar <code>"APIKEY"</code> por el token obtenido del bot).


(Reemplazar <code>APIKEY</code> por el token de tu bot).
=== 5. Modificar en el Dashboard ===
Ingresar al Dashboard de Wazuh, ir a:


=== 5. Configurar desde el Dashboard de Wazuh ===
'''Explore > Notifications'''
[[Archivo:Telegram-wazuh-6.png|centro|miniaturadeimagen]]


# Ingresar al Dashboard de Wazuh.
# Ir a '''Explore > Notifications'''.
# Agregar un nuevo canal de notificación.
# Configurarlo utilizando el token del bot creado previamente.


=== 6. Reiniciar el servicio Wazuh Manager ===
Agregar un nuevo canal y configurarlo con los siguientes datos:
[[Archivo:Telegram-wazuh-7.png|centro|miniaturadeimagen|745x745px|[[Archivo:Telegram-wazuh-8.png|centro|miniaturadeimagen|705x705px]]]]


=== 6. Reiniciar Wazuh Manager ===
<pre>
<pre>
systemctl restart wazuh-manager
systemctl restart wazuh-manager
</pre>
</pre>

Revisión del 16:12 23 may 2025

Integración de Wazuh con Telegram mediante un bot

1. Crear un bot de Telegram

  1. En la app de Telegram, buscar @BotFather.
  2. Iniciar un chat con BotFather y escribir el comando: /newbot
  3. Elegir el nombre del bot.
  1. Elegir el nombre de usuario para el bot.
  1. 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

Agregar el siguiente contenido:

  1. !/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