Cómo evitar un escaneo de puertos

Los escaneos de puertos representan una de las fases más críticas en la cadena de ataque. Antes de lanzar una explotación o ataque dirigido, los actores maliciosos buscan mapear la superficie de exposición de un sistema.

Los puertos abiertos de un servidor o equipo funcionan como puertas de entrada: permiten la comunicación entre el sistema y el exterior. Si bien muchos de estos servicios son legítimos (HTTP en el puerto 80, HTTPS en el 443, SSH en el 22, etc.), también son una fuente de información para atacantes.

Por ello, comprender cómo funciona un escaneo de puertos y aplicar estrategias para prevenir, detectar y responder es fundamental tanto en entornos empresariales como en equipos personales.


¿Qué es un escaneo de puertos?

Un escaneo de puertos es el proceso mediante el cual un atacante (o auditor de seguridad) envía paquetes a los distintos puertos de una máquina con el objetivo de identificar:

  • Qué puertos están abiertos o cerrados.

  • Qué servicios están escuchando en esos puertos.

  • Qué versión de software utilizan dichos servicios.

La herramienta más utilizada para esta tarea es Nmap, aunque existen muchas otras (Masscan, Unicornscan, Zmap, etc.).

Un ejemplo básico con Nmap sería:

nmap -p 1-65535 IP

Ese comando envía solicitudes a todos los puertos de la dirección IP 192.168.1.10 para identificar cuáles están abiertos.
Este tipo de acciones permiten a un atacante construir un perfil detallado del sistema objetivo.


Tipos de escaneos más comunes

  1. Escaneo TCP Connect

    • Intenta establecer una conexión completa (3-way handshake).

    • Fácil de detectar, ya que genera logs en el sistema.

  2. Escaneo SYN (Half-Open)

    • Envía solo el paquete SYN y espera respuesta.

    • Más sigiloso que el anterior.

  3. Escaneo UDP

    • Identifica servicios que funcionan sobre UDP (DNS, SNMP, TFTP).

    • Más lento y difícil de detectar, ya que muchos servicios no responden.

  4. Escaneos sigilosos (FIN, Xmas, Null)

    • Se basan en enviar paquetes manipulados que no completan la conexión.

    • Buscan evadir sistemas de detección.

  5. Fingerprinting de servicios

    • Permite identificar no solo el puerto, sino también la versión del software (ej. Apache 2.4.49).


¿Por qué es peligroso un escaneo de puertos?

Aunque en sí mismo no daña al sistema, un escaneo de puertos:

  • Expone vulnerabilidades: un puerto abierto con un servicio desactualizado puede ser explotado.

  • Permite enumeración: el atacante puede identificar qué sistema operativo y servicios utiliza el objetivo.

  • Prepara ataques posteriores: como fuerza bruta en SSH, explotación de servicios, o inyecciones.

  • Sirve para reconocimiento pasivo-activo: es el primer paso antes de un ataque más avanzado.

En resumen: si un atacante sabe “qué puertas están abiertas”, podrá elegir mejor dónde atacar.


Cómo evitar y mitigar escaneos de puertos

1. Minimizar la superficie de ataque

  • Cerrar servicios innecesarios: no tener corriendo FTP si no se usa.

  • Aplicar el principio de mínimo privilegio: solo los puertos y servicios esenciales deben estar activos.

  • Deshabilitar servicios en desuso: Telnet, Rlogin, etc.

En Linux se pueden listar servicios con:

netstat -tulpn

o con:

ss -tulpn

2. Configurar un firewall

El firewall es la primera barrera. Permite definir reglas para bloquear accesos no autorizados.

Ejemplo en Linux con iptables:

iptables -A INPUT -p tcp --dport 22 -s IP -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

Esto permitiría acceso al puerto 22 (SSH) solo desde una IP específica.

En Windows, se puede usar el Firewall de Windows Defender para reglas similares.

3. Usar sistemas de detección de intrusos (IDS)

Herramientas como Snort, Suricata o Zeek (Bro) pueden detectar patrones de escaneo.
Por ejemplo: múltiples intentos a puertos consecutivos en poco tiempo → alerta de escaneo.

4. Implementar port knocking o single packet authorization

El port knocking es una técnica que mantiene un puerto cerrado hasta que se recibe una secuencia específica de intentos.
Así, un atacante que escanee verá el puerto como cerrado, pero un usuario legítimo podrá “abrirlo” con la secuencia correcta.

Ejemplo con la herramienta knockd en Linux.

5. Honeypots y deception

Un honeypot es un sistema trampa. Puedes configurar puertos falsos abiertos para que los atacantes los escaneen y tú registres la actividad.
Ejemplo: Honeyd, Cowrie.

Esto no evita el escaneo, pero te permite aprender y reaccionar.

6. Ocultar banners y versiones

Muchas veces los servicios revelan demasiada información.
Ejemplo: un servidor web que responde con:

Apache/2.4.49 (Ubuntu)

Esto ayuda al atacante. Debe configurarse para no mostrar versiones o información del sistema.

7. Segmentación de red

Separar servicios internos (intranet, bases de datos) de servicios públicos (web, correo).
Si un atacante escanea una parte de la red, no debería tener acceso a toda.


Cómo detectar un escaneo de puertos en acción

Revisar logs

  • En Linux: /var/log/auth.log, /var/log/syslog

  • En Windows: Visor de Eventos → Seguridad

Usar herramientas de monitoreo

  • Fail2ban: bloquea IPs tras intentos repetidos.

  • Netstat o tcpdump: permiten observar conexiones sospechosas.

Ejemplo con tcpdump:

tcpdump -nnvvv host IP

Si ves muchos intentos a puertos consecutivos, probablemente es un escaneo.

Prueba controlada con Nmap

Como administrador de sistemas, puedes realizar escaneos controlados contra tu infraestructura para detectar qué información expones.

Ejemplo:

nmap -sS -sV -O IP
  • -sS: escaneo SYN

  • -sV: detecta versión de servicios

  • -O: intenta identificar sistema operativo

Esto te permitirá ver tu red como la vería un atacante.


Ejemplo práctico de ataque y defensa

Supongamos que tienes un servidor expuesto a Internet con:

  • Puerto 22 (SSH) abierto.

  • Puerto 80 (HTTP) abierto.

  • Puerto 3306 (MySQL) abierto sin restricción.

Un atacante podría usar:

nmap -sS -p 1-1000 IP

Vería los tres puertos abiertos. Si encuentra que el MySQL permite conexión externa, intentará explotarlo.

Medidas defensivas:

  • Restringir MySQL solo a localhost (bind-address=127.0.0.1).

  • Permitir SSH solo por VPN o con port knocking.

  • Usar firewall para bloquear puertos no necesarios.

Así, un nuevo escaneo mostraría únicamente:

  • Puerto 80 abierto (servicio legítimo).

  • Los demás filtrados.


Buenas prácticas adicionales

  • Actualizar servicios y sistemas constantemente.

  • Usar VPNs y túneles seguros para accesos remotos.

  • Monitorizar métricas de red para detectar comportamientos inusuales.

  • Educar a usuarios y administradores: un servicio mal configurado puede exponer todo un sistema.

Evitar un escaneo de puertos en sentido absoluto es prácticamente imposible: mientras haya puertos abiertos, existirán formas de detectarlos.
Lo importante es minimizar la superficie expuesta, aplicar controles de seguridad, detectar intentos de reconocimiento y responder de forma proactiva.

Un escaneo de puertos no es un ataque en sí mismo, sino una señal de advertencia. Ignorarlo es abrirle la puerta a ataques más graves.
Con las técnicas vistas —firewalls, IDS, port knocking, honeypots, segmentación y buenas prácticas— es posible reducir drásticamente el impacto y aumentar la seguridad de cualquier infraestructura.

Previous Post

Next Post

Donaciones
STREAMER

[sp_wpcarousel id="11665"]

Segui Nuestras Redes
  • LinkedIn17.3k+
  • Whatsapp1.7k+

Advertisement

Loading Next Post...
Encontranos
Search Trending
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...

All fields are required.