/Wazuh-Alert-Template

Este script es una integración con Wazuh para enviar alertas por correo electrónico con autenticación.

Primary LanguagePython

Wazuh Email Integration Script

Este script está diseñado para integrarse con Wazuh para enviar alertas por correo electrónico con autenticación. Reemplaza el demonio maild predeterminado

Instalación

Siga estos pasos para instalar y configurar el script:

1.- Modifique el archivo ossec.conf ubicado en /var/ossec/etc/ossec.conf. Actualice la configuración <alerts_log> de la siguiente manera:

<alerts_log>no</alerts_log>

2.- Agregue la siguiente configuración de integración dentro de la sección <ossec_config>:

<integration>
  <name>wazuh-alert-template.py</name>
  <hook_url>email_to@example.com</hook_url>
  <level>12</level>
  <alert_format>json</alert_format>
</integration>

3.- Copie el script wazuh-alert-template.py al directorio /var/ossec/integration/.

4.- Establezca los permisos adecuados para el script:

chmod 750 /var/ossec/integrations/wazuh-alert-template.py
chown root:ossec /var/ossec/integrations/wazuh-alert-template.py

5.- Reinicie el servicio del administrador de Wazuh:

systemctl restart wazuh-manager

Configuración

Asegúrese de actualizar las siguientes variables de configuración SMTP en el script para que coincidan con la configuración de su proveedor de correo electrónico:

smtp_server: SMTP server hostname. smtp_port: SMTP server port. smtp_username: tu email. smtp_password: Su contraseña de correo electrónico o contraseña específica de la aplicación

Pruebe el script para asegurarse de que esté funcionando correctamente.

Debugging

Para habilitar el modo de depuración para el integrador, utilice el siguiente comando:

echo "integrator.debug=2" >> /var/ossec/etc/local_internal_options.conf

Customización

Puede personalizar el script según sea necesario. La función generate_html se puede modificar para incluir información adicional en el cuerpo del correo electrónico y la variable html_message se puede ajustar para cambiar la plantilla del correo electrónico.

Seguridad de contraseñas

Es recomendable utilizar variables de entorno o archivos de configuración externos en lugar de almacenar las credenciales directamente en el código fuente. Esto ayuda a proteger las credenciales y facilita la gestión de las mismas. Aquí tienes dos enfoques que puedes considerar:

  1. Utilizar variables de entorno:

Este enfoque implica definir las credenciales como variables de entorno en el sistema operativo donde se ejecuta el script. Luego, el script puede acceder a estas variables de entorno de forma segura sin exponer las credenciales en el código fuente.

Por ejemplo, puedes definir variables de entorno para el nombre de usuario y la contraseña de SMTP en tu sistema:

export SMTP_USERNAME="tu_usuario"
export SMTP_PASSWORD="tu_contraseña"

Luego, en el script, puedes acceder a estas variables de entorno de la siguiente manera:

import os

smtp_username = os.environ.get("SMTP_USERNAME")
smtp_password = os.environ.get("SMTP_PASSWORD")

# Utiliza smtp_username y smtp_password en la configuración SMTP
  1. Utilizar un archivo de configuración externo:

Otra opción es utilizar un archivo de configuración externo, como un archivo JSON o YAML, para almacenar las credenciales. El script puede leer este archivo de configuración para obtener las credenciales necesarias. Esto también permite una fácil gestión de la configuración sin necesidad de modificar el código fuente.

Ejemplo de un archivo de configuración JSON (config.json):

{
  "smtp_username": "tu_usuario",
  "smtp_password": "tu_contraseña"
}

Luego, en el script, puedes leer el archivo de configuración y cargar las credenciales:

import json

# Lee el archivo de configuración
with open("config.json", "r") as config_file:
    config = json.load(config_file)

smtp_username = config["smtp_username"]
smtp_password = config["smtp_password"]

# Utiliza smtp_username y smtp_password en la configuración SMTP

Al utilizar cualquiera de estos métodos, las credenciales permanecerán protegidas y separadas del código fuente, lo que mejora la seguridad y la gestión de las mismas. Además, puedes restringir los permisos de acceso a estos archivos o variables de entorno para limitar quién puede ver o modificar las credenciales.