La detección de escaneos de puertos tiene una particularidad que la deja fuera del conjunto habitual de herramientas. Fail2ban lee registros de aplicaciones, y cuando se escanea un puerto cerrado no hay aplicación, así que tampoco hay entrada de registro. Un escaneo solo se ve en el nivel del cortafuegos, y ahí es donde trabaja PSAD: lee los mensajes que iptables escribe sobre los paquetes descartados.
Condición obligatoria: la registración debe estar activada
Es el motivo principal de que PSAD «esté instalado y no muestre nada». Sin reglas de registración en el cortafuegos no tiene nada que leer, y no se produce error alguno por ello.
Si usa UFW:
sudo ufw logging low
sudo ufw status verbose
Para confirmar que los mensajes aparecen de verdad:
sudo journalctl -k | grep -c '\[UFW'
sudo grep -c 'UFW BLOCK' /var/log/ufw.log
Ceros en ambos comandos significan que PSAD no va a funcionar. Y aparte, sobre Debian 12 y Ubuntu 24.04: sin rsyslog el archivo /var/log/ufw.log no existe y todo va al diario de systemd; la ruta del registro en los ajustes de PSAD debe tenerlo en cuenta.
Instalación
sudo apt install psad
sudo psad --sig-update
sudo psad -R
sudo psad --Status
El último comando es el principal. Muestra cuántos paquetes se han analizado, qué direcciones se han detectado y con qué nivel de peligro. Si el contador de paquetes analizados es cero, vuelva a la sección anterior: el problema es la registración, no la ausencia de escaneos.
Los ajustes están en /etc/psad/psad.conf. Pocos parámetros tienen relevancia práctica: la dirección para el correo, la ruta del registro y los umbrales de los niveles de peligro.
Los niveles de peligro
PSAD puntúa cada origen de 1 a 5 según cuántos puertos distintos se hayan tocado y cuánto se parezca el comportamiento a técnicas de escaneo conocidas.
- 1–2: contactos aislados con puertos cerrados. Es el ruido de fondo permanente de internet; no requiere reacción;
- 3: recorrido sistemático de puertos. Normalmente los escáneres de investigación, de los que hay unas decenas en la red;
- 4–5: sondeo deliberado de muchos puertos desde una dirección, a menudo intentando disimular la naturaleza de los contactos.
El umbral para el correo lo fija EMAIL_ALERT_DANGER_LEVEL. Un valor de 3 suele significar varios correos al día, lo que conduce bastante rápido a una regla en el cliente de correo. Es más sensato poner 4 y ver el resto en una página de resumen.
El bloqueo automático: mejor no
PSAD sabe añadir por su cuenta reglas al cortafuegos (ENABLE_AUTO_IDS). En un servidor único en producción no conviene activarlo, y el motivo es concreto: la dirección de origen de un paquete se puede falsificar. Basta con enviar hacia usted paquetes con dirección suplantada, y bloqueará la dirección que eligió otro. Puede ser su propio cliente, una pasarela de pagos o un servicio de supervisión.
Si el bloqueo es necesario de todos modos, actívelo con un umbral de peligro alto y siempre con límite de tiempo (AUTO_BLOCK_TIMEOUT), para que una entrada errónea no se quede para siempre.
Qué se hace con esto en la práctica
Un escaneo en sí es inofensivo: no rompe nada y les ocurre a todos sin parar. El valor de los datos de PSAD no está en el hecho sino en los cambios de carácter.
Observaciones útiles:
- Interés dirigido. Un escáner corriente recorre miles de direcciones y una docena de puertos populares. Si alguien recorre metódicamente los puertos de su servidor en concreto, incluidos los no estándar, eso ya no es ruido de fondo;
- Escaneo de un puerto concreto. Contactos con el puerto de una base de datos o de un panel de gestión significan que alguien busca precisamente ese servicio, normalmente tras la noticia de otra vulnerabilidad en él;
- Reconocimiento antes del intento. Un pico de escaneo y, horas después, intentos de contraseña desde el mismo rango es una secuencia típica, y su primera mitad da algo de tiempo.
La conclusión práctica de cualquiera de esas observaciones es la misma: comprobar que la lista de puertos expuestos coincide con lo esperado y que lo que funciona en cada uno de ellos se ha actualizado este año.
Su lugar en el conjunto de herramientas
PSAD no sustituye ni al cortafuegos, ni a Fail2ban, ni a un sistema de detección de intrusiones. Cubre una rendija estrecha: los intentos que no dejan rastro en ningún otro sitio porque no llegaron a ninguna aplicación. Cuesta poco, funciona sin configuración tras la primera ejecución, y su resumen responde a una pregunta que de otro modo nadie plantea: ¿le interesa su servidor a alguien más allá del ruido de fondo general? Cómo se ve ese resumen lo muestra la página de demostración de abajo.