Saltar al contenido
Lectura12 minPreview

Qué son los puertos y los protocolos

Un servidor de Cafetal Digital tiene una sola dirección IP, 192.0.2.10, y a la vez atiende la página web, recibe correo y deja entrar al administrador por SSH. Lo que separa esas tres conversaciones es un número de 16 bits que viaja en cada paquete: el puerto. Y lo que hace que el navegador y el servidor se entiendan es un acuerdo escrito que ambos siguen al pie de la letra: el protocolo.

Qué es un puerto y qué es un protocolo

Un puerto es un número entre 0 y 65 535 que indica a qué programa, dentro de un equipo, va dirigido un segmento TCP o un datagrama UDP. La IP lleva el paquete hasta la máquina; el puerto lo entrega al proceso correcto. El programa que espera conexiones en ese puerto es el servicio, y se dice que "escucha" en él.

Un servidor con una sola dirección IP es un edificio con una sola dirección y muchas puertas numeradas. Detrás de las puertas abiertas 22, 25 y 443 hay un servicio escuchando (SSH, correo y web); las puertas 3389, 21 y 445 están cerradas. El paquete que llega trae escrito el puerto 443 y entra solo por esa puerta.
[fig] La IP lleva el paquete hasta el edificio; el puerto decide en qué puerta entra. Cada puerta abierta tiene un programa detrás, y por eso cada una es superficie de ataque.

Un protocolo es el conjunto de reglas de una conversación: quién habla primero, qué formato tienen los mensajes y qué significa cada respuesta. HTTP dice que el cliente manda GET / y el servidor contesta HTTP/1.1 200 OK. SMTP dice que el servidor saluda con un 220. Si una de las dos partes se sale del guion, la conversación se corta.

Los dos conceptos van juntos, pero no están amarrados. El 443 es "el puerto de HTTPS" por convención, no por ley física: nada impide montar SSH en el 443 o un servidor web en el 2222. Eso lo aprovecha tanto quien administra (para pasar un firewall restrictivo) como quien ataca (para esconder un canal de control entre tráfico web).

Un poco de historia

TCP/IP se escribió a fines de los setenta. UDP quedó definido en el RFC 768 (1980); IP y TCP, en los RFC 791 y 793 (1981). El 1 de enero de 1983 ARPANET dejó sus protocolos anteriores y pasó a TCP/IP. Durante años, Jon Postel mantuvo a mano la lista de qué número correspondía a qué servicio, en documentos llamados Assigned Numbers; ese trabajo es hoy la IANA, que publica el registro oficial de puertos.

Muchos protocolos de este curso nacieron cuando la red era un club de universidades que se conocían. FTP, SMTP y DNS se diseñaron sin cifrado ni autenticación fuerte porque nadie esperaba un desconocido en el cable. Casi todas las defensas modernas (TLS, DNSSEC, SPF, firma SMB) son parches que se agregaron encima, décadas después, y que todavía hay que activar a mano.

Por qué importa en ciberseguridad

Cada puerto abierto es una puerta con un programa detrás, y ese programa puede tener una contraseña débil, una versión vieja o una configuración por defecto. Quien atiende un SOC lee puertos todo el día: "RDP desde Rusia", "SMB saliente hacia una IP pública", "DNS con subdominios de 60 caracteres". Quien administra decide qué puertos existen. Y en una auditoría autorizada, lo primero que se entrega es la lista de servicios expuestos.

Si no domina esto, cada alerta es un número sin significado y cada informe de vulnerabilidades, una lista que no sabe priorizar.

Dónde se usa

LugarPuertos que verá con frecuencia
Red de oficina53 (DNS), 67 y 68 (DHCP), 445 (SMB), 3389 (RDP)
Servidor web en la nube22 (SSH), 80 (HTTP), 443 (HTTPS)
Servidor de correo25, 465 y 587 (SMTP), 993 (IMAPS)
Router de la casa53, 67, 80 o 443 (panel de administración)
Su propia laptopLo que haya instalado sin darse cuenta: compartir archivos, impresoras, herramientas de desarrollo

Conceptos clave

ConceptoQué significa
PuertoNúmero de 0 a 65 535 que identifica un servicio dentro de un equipo
ServicioPrograma que escucha en un puerto y atiende conexiones
SocketLa combinación IP, puerto y protocolo que identifica un extremo de la conexión
EstadoAbierto, cerrado o filtrado, según cómo responde el puerto
BannerTexto con que un servicio se presenta al conectarse; a menudo revela nombre y versión
Superficie de ataqueEl conjunto de servicios alcanzables por alguien que no debería usarlos
HardeningEndurecer: quitar lo innecesario y configurar con seguridad lo que queda

Cómo leer una sintaxis

Las fichas de comandos de este curso usan siempre las mismas convenciones:

ss [OPCIONES] [state ESTADO]
dig [@SERVIDOR] NOMBRE [TIPO]
  • Lo que va entre corchetes es opcional.
  • Lo que va en MAYÚSCULAS lo reemplaza usted por un valor real (dig @192.0.2.53 ejemplo.cr MX).
  • Tres puntos (...) significan que el elemento se puede repetir.
  • Una barra vertical entre dos opciones significa "una u otra".

Cómo pedir ayuda

Nadie se sabe las opciones de memoria. En Linux, man ss abre el manual completo (se sale con q) y ss --help da un resumen corto. En Windows, netstat /? funciona en cmd, y en PowerShell Get-Help Get-NetTCPConnection -Examples muestra ejemplos.

Para saber qué servicio corresponde a un número, su propio equipo trae una tabla:

$ grep -w 445 /etc/services
microsoft-ds	445/tcp				# Microsoft Naked CIFS

En Windows el mismo archivo vive en C:\Windows\System32\drivers\etc\services. Es la lista de convenciones, no de lo que está corriendo: para eso está la lección siguiente.