Puertos Abiertos: Riesgos y Proteccion
Cada puerto abierto en tu servidor es una puerta potencial para atacantes. Los servicios expuestos a internet como bases de datos, FTP, SSH o paneles de administracion amplian significativamente la superficie de ataque. Muchas brechas de seguridad comienzan con un escaneo de puertos que revela servicios mal configurados o innecesariamente expuestos.
Estadisticas en tiempo real
67%
Tasa de aprobacion
230
Sitios analizados
86/100
Puntuacion media
Datos basados en escaneos reales de EscanearVulnerabilidades
Que es
Los puertos de red son puntos finales de comunicacion identificados por numeros del 0 al 65535. Cada servicio que se ejecuta en un servidor escucha en uno o mas puertos: HTTP usa el puerto 80, HTTPS el 443, SSH el 22, FTP el 21, MySQL el 3306, PostgreSQL el 5432, etc. Un puerto abierto significa que hay un servicio activo aceptando conexiones en ese puerto. Los atacantes utilizan herramientas como Nmap, Masscan o Shodan para descubrir que puertos estan abiertos en un servidor e identificar los servicios y versiones que se ejecutan, en un proceso conocido como escaneo de puertos o port scanning. Este reconocimiento es normalmente el primer paso de cualquier ataque dirigido.
Por que importa
Cada servicio expuesto a internet es un potencial punto de entrada para atacantes. Un servidor MySQL accesible desde internet (puerto 3306) puede sufrir ataques de fuerza bruta contra credenciales. Un servidor FTP abierto (puerto 21) transmite credenciales en texto plano y puede tener vulnerabilidades de escalacion de privilegios. Un servicio SSH con autenticacion por contrasena (puerto 22) es objetivo constante de ataques automatizados: un servidor tipico recibe miles de intentos de login SSH por dia. Servicios como Redis (6379) o MongoDB (27017) a menudo se despliegan sin autenticacion y, si estan expuestos, permiten acceso total a los datos. Segun reportes de seguridad, bases de datos expuestas a internet son responsables de miles de brechas de datos cada ano.
Problemas comunes
-
Puertos de base de datos expuestos (3306, 5432, 27017): MySQL, PostgreSQL y MongoDB accesibles desde internet, frecuentemente con credenciales debiles o sin autenticacion.
-
SSH con autenticacion por contrasena (puerto 22): vulnerable a ataques de fuerza bruta automatizados. Deberia usar solo autenticacion por clave publica.
-
FTP abierto (puerto 21): protocolo sin cifrado que transmite credenciales en texto plano. Debe reemplazarse por SFTP o SCP.
-
Paneles de administracion expuestos (8080, 8443, 9090): interfaces de gestion como phpMyAdmin, Webmin o cPanel accesibles sin restriccion de IP.
-
Servicios de cache expuestos (6379, 11211): Redis y Memcached sin autenticacion son vectores de ataque conocidos para exfiltracion de datos y mineria de criptomonedas.
-
Puertos de correo abiertos (25, 587, 143, 993): si no gestionas correo en tu servidor, estos puertos son superficie de ataque innecesaria.
Como solucionarlo
Aplica el principio de minimo privilegio: solo abre los puertos estrictamente necesarios para tu servicio (normalmente 80 y 443 para un servidor web). Usa un firewall como iptables, nftables o ufw para bloquear todo el trafico entrante excepto los puertos permitidos. Para servicios de administracion como SSH, restringe el acceso a IPs especificas o usa una VPN. Cambia los puertos por defecto de servicios sensibles cuando sea posible. Desactiva servicios que no uses. Realiza escaneos periodicos de tus propios servidores para detectar puertos abiertos inesperados.
# UFW (Ubuntu/Debian) - Configuracion basica de firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow from 203.0.113.50 to any port 22 # SSH solo desde IP especifica
sudo ufw enable
# iptables - Bloquear todo excepto web y SSH desde IP
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 203.0.113.50 -j ACCEPT
# SSH - Deshabilitar login por contrasena (/etc/ssh/sshd_config)
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3 Comprueba la seguridad de tu sitio web
Nuestro escaner analiza automaticamente la configuracion de puertos abiertos junto con otros 9 checks de seguridad. Recibe un informe completo con recomendaciones en minutos.
Escanea tu sitio web gratisGuias relacionadas
Cabeceras de Seguridad HTTP: Guia Completa
Guia completa sobre cabeceras de seguridad HTTP: CSP, HSTS, X-Frame-Options, X-Content-Type-Options,...
Certificado SSL/TLS: Guia Completa
Aprende que es un certificado SSL/TLS, por que es fundamental para la seguridad web, como detectar p...
Deteccion de CMS: Riesgos de Seguridad
Descubre por que la deteccion de tu CMS es un riesgo de seguridad, como los atacantes identifican Wo...