Capítulo 7: Detección de Intrusos - PSAD y CrowdSec
Capítulo 7: Detección de Intrusos - PSAD y CrowdSec
PSAD - Port Scan Attack Detector
PSAD analiza los logs de iptables/UFW para detectar escaneos de puertos y otros ataques de red.
Instalación
sudo apt update
sudo apt install psad
Configuración de UFW para PSAD
PSAD necesita que UFW registre el tráfico bloqueado.
Edita /etc/ufw/before.rules, antes de COMMIT:
# Log all blocked incoming
-A ufw-before-input -j LOG --log-prefix "[UFW BLOCK] " --log-level 4
# Log all blocked outgoing
-A ufw-before-output -j LOG --log-prefix "[UFW BLOCK] " --log-level 4
Edita /etc/ufw/before6.rules de igual manera para IPv6.
Recarga UFW:
sudo ufw reload
Configuración de PSAD
sudo nano /etc/psad/psad.conf
Configuraciones importantes:
EMAIL_ADDRESSES [email protected];
HOSTNAME tu-servidor;
ENABLE_AUTO_IDS Y;
AUTO_IDS_DANGER_LEVEL 3;
AUTO_BLOCK_TIMEOUT 3600;
Iniciar PSAD
sudo psad --sig-update
sudo systemctl start psad
sudo systemctl enable psad
Verificar Estado
sudo psad --Status
CrowdSec - Seguridad Colaborativa
CrowdSec es una herramienta moderna que comparte inteligencia de amenazas con la comunidad.
Instalación
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
sudo apt install crowdsec
Instalar Bouncer para Firewall
El bouncer aplica las decisiones de bloqueo:
sudo apt install crowdsec-firewall-bouncer-iptables
Configuración Básica
CrowdSec funciona con colecciones (conjuntos de parsers y escenarios):
# Ver colecciones instaladas
sudo cscli collections list
# Instalar colección para SSH
sudo cscli collections install crowdsecurity/sshd
# Instalar colección para Nginx
sudo cscli collections install crowdsecurity/nginx
Gestión de Decisiones
# Ver decisiones activas (IPs baneadas)
sudo cscli decisions list
# Banear IP manualmente
sudo cscli decisions add --ip 1.2.3.4 --duration 24h --reason "manual ban"
# Desbanear IP
sudo cscli decisions delete --ip 1.2.3.4
Alertas
# Ver alertas recientes
sudo cscli alerts list
# Detalles de una alerta
sudo cscli alerts inspect ID_ALERTA
Console CrowdSec (Opcional)
Registra tu instancia en la consola web para visualización:
sudo cscli console enroll TU_TOKEN
Obtén el token en app.crowdsec.net
Comparación: PSAD vs Fail2Ban vs CrowdSec
| Característica | PSAD | Fail2Ban | CrowdSec |
|---|---|---|---|
| Escaneo puertos | ✅ | ❌ | ✅ |
| Fuerza bruta | ❌ | ✅ | ✅ |
| Inteligencia compartida | ❌ | ❌ | ✅ |
| Configuración | Media | Fácil | Fácil |
| Recursos | Bajo | Bajo | Medio |
Recomendación: Usa CrowdSec + Fail2Ban para mejor cobertura.
Verificación
PSAD
# Estado detallado
sudo psad --Status
# Logs
sudo tail -f /var/log/psad/psad.log
CrowdSec
# Estado del servicio
sudo systemctl status crowdsec
# Métricas
sudo cscli metrics
# Estado del bouncer
sudo systemctl status crowdsec-firewall-bouncer
Troubleshooting
PSAD no detecta nada
Verifica que UFW esté logueando:
sudo tail /var/log/ufw.log
Si está vacío, revisa la configuración de logging de UFW.
CrowdSec no banea
Verifica que el bouncer esté corriendo:
sudo systemctl status crowdsec-firewall-bouncer
Verifica la configuración del bouncer:
cat /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
Demasiados falsos positivos
Agrega IPs a la whitelist:
# CrowdSec
sudo cscli decisions delete --ip TU_IP
sudo cscli parsers install crowdsecurity/whitelists
Edita /etc/crowdsec/parsers/s02-enrich/whitelists.yaml para agregar tus IPs.