Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80245f3227 |
@@ -148,7 +148,65 @@ lynis/
|
|||||||
├── templates/
|
├── templates/
|
||||||
│ └── report.html.j2 # Plantilla HTML del reporte
|
│ └── report.html.j2 # Plantilla HTML del reporte
|
||||||
├── venv/ # Entorno virtual (opcional)
|
├── venv/ # Entorno virtual (opcional)
|
||||||
└── README.md # Este archivo
|
└── # Lynis Security Report Generator
|
||||||
|
|
||||||
|
Generador automático de informes de seguridad Lynis con formato HTML/PDF y envío por correo electrónico.
|
||||||
|
|
||||||
|
## Instalación
|
||||||
|
|
||||||
|
1. Instalar dependencias del sistema:
|
||||||
|
```bash
|
||||||
|
sudo apt install lynis wkhtmltopdf
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Instalar dependencias de Python:
|
||||||
|
```bash
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuración
|
||||||
|
|
||||||
|
Edita `config.py` con tus parámetros:
|
||||||
|
- Servidor SMTP y credenciales
|
||||||
|
- Direcciones de correo
|
||||||
|
- Directorio de salida
|
||||||
|
- Comando de Lynis
|
||||||
|
|
||||||
|
## Ejecución Manual
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 lynis_report.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Instalación del Cron Semanal
|
||||||
|
|
||||||
|
Para ejecutar automáticamente cada semana:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo cp lynis-weekly /etc/cron.weekly/
|
||||||
|
sudo chmod +x /etc/cron.weekly/lynis-weekly
|
||||||
|
```
|
||||||
|
|
||||||
|
El script se ejecutará automáticamente cada semana y guardará logs en `/var/log/lynis-report.log`.
|
||||||
|
|
||||||
|
### Verificar la configuración del cron
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Ver logs de ejecución
|
||||||
|
sudo tail -f /var/log/lynis-report.log
|
||||||
|
|
||||||
|
# Probar ejecución manual del cron
|
||||||
|
sudo /etc/cron.weekly/lynis-weekly
|
||||||
|
```
|
||||||
|
|
||||||
|
## Características
|
||||||
|
|
||||||
|
- Ejecuta Lynis y genera informes en formato TXT, HTML y PDF
|
||||||
|
- Envía informes por correo electrónico con los archivos adjuntos
|
||||||
|
- Parsing de métricas clave (Hardening Index, warnings, suggestions)
|
||||||
|
- Formato HTML con estilos CSS modernos
|
||||||
|
- Limpieza automática de archivos temporales
|
||||||
|
- Ejecución semanal automática vía cron # Este archivo
|
||||||
```
|
```
|
||||||
|
|
||||||
## 📊 Archivos Temporales
|
## 📊 Archivos Temporales
|
||||||
|
|||||||
39
lynis/lynis-weekly
Executable file
39
lynis/lynis-weekly
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Lynis Security Report - Weekly Cron Job
|
||||||
|
# Place this file in /etc/cron.weekly/
|
||||||
|
# Make it executable: chmod +x /etc/cron.weekly/lynis-weekly
|
||||||
|
#
|
||||||
|
|
||||||
|
# Script directory
|
||||||
|
SCRIPT_DIR="/opt/lynis-report"
|
||||||
|
|
||||||
|
# Python virtual environment
|
||||||
|
VENV_DIR="$SCRIPT_DIR/venv"
|
||||||
|
|
||||||
|
# Log file
|
||||||
|
LOG_FILE="/var/log/lynis-report.log"
|
||||||
|
|
||||||
|
# Change to script directory
|
||||||
|
cd "$SCRIPT_DIR" || {
|
||||||
|
echo "$(date): ERROR - Cannot change to directory $SCRIPT_DIR" >> "$LOG_FILE"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log execution start
|
||||||
|
echo "$(date): Starting Lynis weekly report" >> "$LOG_FILE"
|
||||||
|
|
||||||
|
# Activate virtual environment and run the script
|
||||||
|
if [ -d "$VENV_DIR" ]; then
|
||||||
|
"$VENV_DIR/bin/python3" "$SCRIPT_DIR/lynis_report.py" >> "$LOG_FILE" 2>&1
|
||||||
|
else
|
||||||
|
# Fallback to system python3 if venv doesn't exist
|
||||||
|
python3 "$SCRIPT_DIR/lynis_report.py" >> "$LOG_FILE" 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Log execution result
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "$(date): Lynis weekly report completed successfully" >> "$LOG_FILE"
|
||||||
|
else
|
||||||
|
echo "$(date): ERROR - Lynis weekly report failed with exit code $?" >> "$LOG_FILE"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user