Nmap scan
cerrados
detecta
KILL_ROUTE
Host seems down
sudo apt update
sudo apt install portsentry
// Instalación de PortSentry con apt install
Por defecto, PortSentry se instala en modo "Silent" (silencioso) — monitoriza pero no bloquea. Para activar el bloqueo automático hay que cambiar al modo avanzado en el archivo de configuración de default.
sudo nano /etc/default/portsentry
| Variable | Original | Nuevo (detección de barrido) | |
|---|---|---|---|
| TCP_MODE | TCP_MODE="tcp" | → | TCP_MODE="atcp" |
| UDP_MODE | UDP_MODE="udp" | → | UDP_MODE="audp" |
TCP_MODE="atcp" UDP_MODE="audp"
tcp/udp básicos escuchan conexiones individuales. Los modos atcp/audp (Advanced) detectan también barridos de puertos secuenciales y aleatorios, lo que hace que sean mucho más efectivos contra Nmap.sudo nano /etc/portsentry/portsentry.conf
Puertos a escuchar (opcional)
Por defecto, PortSentry escucha los puertos bajos comunes. Puedes modificar las variables TCP_PORTS y UDP_PORTS (líneas 54 y 62), pero la configuración por defecto suele ser suficiente.
// Variables TCP_PORTS y UDP_PORTS en portsentry.conf
Habilitar el bloqueo — KILL_ROUTE
Busca la línea de la variable KILL_ROUTE (alrededor de la línea 242) y descomenta la línea que usa /sbin/iptables. En Ubuntu 24.04 usa la ruta que devuelve which iptables.
# KILL_ROUTE="/sbin/route add -host $TARGET$ reject" # Dejar comentado # KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP" # Opción antigua KILL_ROUTE="/usr/sbin/iptables -I INPUT -s $TARGET$ -j DROP" # Descomentar esta
which iptables en tu sistema para confirmar la ruta exacta del binario. En Ubuntu 24.04 suele ser /usr/sbin/iptables.which iptables # → /usr/sbin/iptables
// KILL_ROUTE configurado con la ruta de iptables
Activar BLOCK_TCP y BLOCK_UDP
Busca las variables BLOCK_UDP y BLOCK_TCP (alrededor de la línea 320) y cámbialas a "1" para activar el bloqueo automático.
BLOCK_UDP="1" BLOCK_TCP="1"
// BLOCK_UDP y BLOCK_TCP configurados a 1
Lista Blanca — portsentry.ignore
Si tienes IPs de administradores o sistemas de monitorización que escanean puertos legítimamente, añádelos a la lista blanca para evitar que sean bloqueados por error.
sudo nano /etc/portsentry/portsentry.ignore
127.0.0.1
192.168.1.50 # IP del administrador
127.0.0.1 (loopback) en la lista blanca para evitar que el propio servidor se bloquee a sí mismo.sudo systemctl restart portsentry
sudo systemctl status portsentry
sudo systemctl enable portsentry
Desde otra máquina en la red (ej. Kali), lanza un escaneo TCP a los puertos cerrados del servidor Ubuntu:
nmap -sT -p 1-1000 192.168.1.45
Si PortSentry funciona, la IP atacante se añade automáticamente a las reglas de iptables y el host "desaparece" de la red para esa IP.
sudo systemctl status portsentry sudo iptables -L INPUT
// Resultado de iptables -L INPUT mostrando regla DROP para la IP atacante
En Ubuntu 24.04 (y versiones recientes), las herramientas tradicionales de iptables están en realidad en modo compatibilidad y redirigen a nftables (el framework de firewalling moderno).
PortSentry puede estar añadiendo la regla DROP correctamente en el backend de nftables a través de esta capa de compatibilidad, pero el comando sudo iptables -L INPUT no siempre refleja la configuración de manera inmediata cuando hay una capa de abstracción.
Conclusión: La ausencia de la regla en iptables -L INPUT no significa que el bloqueo no funcione. El test real es si el ping a la IP del servidor falla desde la máquina atacante.
La forma más fiable de confirmar el bloqueo — sin depender de iptables -L INPUT — es comprobar la conectividad ICMP desde la máquina atacante:
ping 192.168.1.44 # IP del servidor UbuntuSi el bloqueo funciona: el ping falla (paquetes perdidos / timeout) — la regla DROP bloquea también el tráfico ICMP.
// Ping fallido desde Kali — regla DROP aplicada correctamente
ping 192.168.1.1 # IP del router u otro host de la redEste ping debe funcionar, confirmando que Kali tiene conectividad normal — solo está bloqueada hacia la IP del servidor.
// Ping exitoso a otra IP — Kali tiene conectividad, solo Ubuntu bloqueó la IP de Kali
iptables -L INPUT. El servidor Ubuntu simplemente ignora todo el tráfico proveniente de la IP de Kali.sudo iptables -D INPUT -s <IP_KALI> -j DROPo bien:
sudo iptables -F INPUT (elimina todas las reglas de INPUT)