Este proyecto permite conocer el estado de conexión de las comunidades (servidores) conectadas a un MISP mediante alertas que se envian a través de correo electrónico. El envio de estas alertas puede ser programado en diferentes intervalos de tiempo (cada x minutos, cada x horas, etc)
### Características:
- Envio de alertas del estado de conexión de servidores conectados y/o no conectados.
- Programación de envio se puede configurar en diferentes intervalos (minutos, horas, semanas, meses).
- Utiliza cualquier servidor SMTP estándar (Microsoft (O365), Google (Gmail)).
'output_color_status':'#16b606',# Color HEX alerta conectado
'output_color_status_error':'#f71005'# Color HEX alerta
}
CRON_CONFIG = {
"interval": {
"minutes": None,
"hours": 1, # Esto indica "cada hora" (Por defecto)
"days": None,
"months": None
},
"command": COMANDO_CRON
}
```
En settings.py podemos configurar:
- DATA_ATACH: En True, se adjuntará un excel con los mismos datos que vienen en el cuerpo del correo de las alertas. Caso contrario (False), se enviara correo de alerta sin adjunto.
- SERVERS_OFF: En True, solo se enviarán alertas con los servidores MISP no conectados.
- MISP_CONFIG: Configuración asociada a MISP
- FNAME: Nombre de archivo ejecutable (main.py). Si utiliza entorno virtual de Python, se debe llamar a plantilla "run.sh"
- EMAIL_CONFIG: Configuración de SMTP que se utilizará para enviar alertas.
- CRON_CONFIG: Configuración de intervalos que serán agregados a crontab. Se debe solo utilizar un parametro (por defecto).
- minutes (cada cuantos minutos)
- hours (cada cuantas horas)
- days (cada cuantos dias. Se ejecuta por defecto a las 00:00)
- months (cada cuantos meses. Se ejecuta por defecto el dia 1 de cada mes a las 00:00)
## Instalación en entorno virtual
Una vez configurado "settings.py" procedemos con la instalación
1. Se crea entorno virtual de Python
``` shell
cd ./misp-alertas
python3 -m venv venv
```
2. Se activa entorno virtual:
``` shell
source venv/bin/activate
```
3. Instalar librerias de Python:
``` shell
pip install -r requirements.txt
```
## Agengar
Podemos agendar utilizando el archivo "save_job.sh":
```shell
#!/bin/bash
# Activate
source /home/user/misp-alertas/venv/bin/activate
# Enter folder
cd /home/user/misp-alertas/
# Llamar al script Python
python save_job.py
# Deactivate
deactivate
```
1. Debe ajustar las rutas en "source" y "cd" para la ejecución correcta del archivo.
2. Ejecutamos:
```shell
bash save_job.sh
```
Esto creara en crontab una entrada con la ejecución programada, dependiendo que usuario del sistema operativo ejecuto el script. (Si fue como 'root', quedará en crontab de 'root')
``` shell
@hourly bash ./misp-alertas/run.sh
```
La entrada se creara para que se ejecute el archivo "run.sh":
```shell
#!/bin/bash
# Activate
source /home/user/misp-alertas/venv/bin/activate
# Enter folder
cd /home/user/misp-alertas/
# Llamar al script Python
python main.py
# Deactivate
deactivate
```
Al igual que en el archivo "save_job.sh", debe ajustar las rutas en "source" y "cd" para la ejecución correcta del archivo.
Cada vez que se quiera modificar el agendamiento dentro de settings.py se debe volver a ejecutar punto 2.