Este script está diseñado para integrarse con Wazuh para enviar alertas por correo electrónico con autenticación. Reemplaza el demonio maild predeterminado
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
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
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
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.
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:
- 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
- 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.