Tutorial de Seguridad en Linux: Mínimo de Protección ante Ataques Informáticos (II)
Capítulo 2: Automatización y Análisis Avanzado
Objetivos
- Automatizar tareas de seguridad con scripts.
- Analizar logs para detectar patrones sospechosos.
- Generar reportes de seguridad.
Paso 1: Automatizar Tareas con Scripts en Bash
Crea un script para automatizar la revisión de logs y el bloqueo de IPs sospechosas.
Script `securitymonitor.sh`:
#!/bin/bash LOG_FILE="/var/log/auth.log" BAN_LIST="/etc/fail2ban/jail.local" # Buscar IPs con múltiples intentos fallidos SUSPICIOUS_IPS=$(grep "Failed password" $LOG_FILE | awk '{print $(NF-3)}' | sort | uniq -c | awk '$1 > 3 {print $2}') # Bloquear IPs sospechosas for IP in $SUSPICIOUS_IPS; do echo "Bloqueando IP: $IP" sudo fail2ban-client set sshd banip $IP done
Ejecutar el script diariamente con `cron`:
sudo crontab -e
Añade la siguiente línea:
0 0 * * * /ruta/al/script/security_monitor.sh
Paso 2: Analizar Logs con Python
Crea un script en Python para analizar logs y generar reportes.
Script `loganalyzer.py`:
#!/usr/bin/env python3 import re from collections import Counter LOG_FILE = "/var/log/auth.log" REPORT_FILE = "/var/log/security_report.txt" def analyze_logs(): with open(LOG_FILE, "r") as file: logs = file.readlines() failed_attempts = Counter() for log in logs: if "Failed password" in log: ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", log).group() failed_attempts[ip] += 1 with open(REPORT_FILE, "w") as report: report.write("Reporte de Seguridad\n") report.write("===================\n") for ip, count in failed_attempts.most_common(): report.write(f"IP: {ip} - Intentos fallidos: {count}\n") if __name__ == "__main__": analyze_logs()
Ejecutar el script:
python3 /ruta/al/script/log_analyzer.py
Paso 3: Generar Reportes de Seguridad
Usa los scripts anteriores para generar reportes diarios.
Combinar ambos scripts en un solo archivo:
#!/bin/bash /ruta/al/script/security_monitor.sh python3 /ruta/al/script/log_analyzer.py
Programar la ejecución con `cron`:
sudo crontab -e
Añade la siguiente línea:
0 1 * * * /ruta/al/script/security_report.sh
Resultados Esperados
- Tareas de seguridad automatizadas.
- Logs analizados en busca de patrones sospechosos.
- Reportes de seguridad generados diariamente.
—
Conclusión
Con estos dos capítulos, has implementado un mínimo de seguridad en tu entorno Linux. Desde la configuración básica del firewall hasta la automatización de tareas y el análisis avanzado de logs, este tutorial te proporciona las herramientas necesarias para proteger tu sistema ante ataques informáticos. ¡Ahora es tu turno de adaptar y mejorar estas técnicas según tus necesidades!
Recursos Adicionales
```
—
### Características del Tutorial
- Estructura Clara: Dividido en 2 capítulos con objetivos, pasos y resultados.
- Scripts Prácticos: Incluye scripts en Bash y Python para automatizar tareas.
- Logs y Reportes: Enseña a monitorear logs y generar reportes de seguridad.
- Recursos Adicionales: Proporciona enlaces a documentación oficial.
—