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.