Cómo verificar y gestionar puertos en Ubuntu: Guía completa para principiantes y usuarios intermedios

1. Introducción

Para muchos usuarios que utilizan Ubuntu, la gestión de puertos es un elemento crucial para mantener la seguridad y el rendimiento de la red. En particular, al administrar la comunicación en la red o la operación de servicios, verificar los puertos abiertos es indispensable para prevenir ataques. Además, comprobar los puertos también resulta útil en la resolución de problemas y en la optimización de la configuración de red. En este artículo, explicaremos en detalle cómo verificar puertos en Ubuntu y presentaremos pasos prácticos utilizando comandos específicos. Esta guía será de utilidad tanto para principiantes como para usuarios intermedios de Ubuntu.
年収訴求

2. ¿Qué es un puerto?

Un número de puerto funciona como una “puerta de entrada” a través de la cual un ordenador envía datos a un servicio o proceso específico durante la comunicación. La comunicación en red utiliza principalmente dos protocolos: TCP y UDP. TCP es un “protocolo orientado a conexión” que establece una conexión antes de transmitir, garantizando la fiabilidad de los datos. Por otro lado, UDP es un “protocolo sin conexión” que no establece conexión y permite enviar datos rápidamente.

Diferencias entre TCP y UDP

  • TCP (Transmission Control Protocol): Protocolo que garantiza comunicaciones fiables, asegurando que los datos lleguen correctamente. Se utiliza en servidores web comunes (HTTP/HTTPS) y conexiones SSH.
  • UDP (User Datagram Protocol): A diferencia de TCP, no garantiza una alta fiabilidad, pero permite transmitir datos con baja latencia. Se utiliza en casos donde se requiere comunicación en tiempo real, como streaming o VoIP.
Comprender los números de puerto desempeña un papel importante en la gestión de la seguridad y el rendimiento de la red.

3. Comandos para verificar puertos en Ubuntu

En Ubuntu, se pueden usar varios comandos para comprobar los puertos actualmente abiertos. A continuación, presentamos algunos de los más comunes.

1. Comando netstat

netstat es un comando potente que muestra información sobre conexiones de red, tablas de enrutamiento y estadísticas de interfaces. Con el siguiente comando, puedes comprobar los puertos en estado de escucha.
sudo netstat -lntu
  • -l: Muestra solo los puertos en estado de escucha
  • -n: Muestra direcciones IP y números de puerto en formato numérico
  • -t: Muestra puertos TCP
  • -u: Muestra puertos UDP

2. Comando ss

ss es un comando ampliamente utilizado como reemplazo de netstat, que permite mostrar puertos en escucha de manera más eficiente. El siguiente comando lo demuestra:
ss -lntu
Se dice que ss es superior a netstat ya que obtiene información detallada sobre los sockets de red de forma más rápida.

3. Comando lsof

lsof es un comando que lista los procesos que tienen archivos abiertos, pero también permite verificar qué procesos están utilizando puertos de red. Con el siguiente comando, puedes comprobar el estado de uso de los puertos:
sudo lsof -i

4. Comando nmap

nmap es una herramienta famosa en seguridad de redes, útil para investigar puertos y servicios abiertos. El siguiente comando escanea todos los puertos del host local:
sudo nmap -n -PN -sT -sU -p- localhost

4. Apertura y cierre de puertos

Abrir o cerrar puertos puede reforzar la seguridad del sistema Ubuntu. Ubuntu incluye ufw (Uncomplicated Firewall), una herramienta sencilla de firewall que permite gestionar puertos fácilmente.

Abrir puertos con ufw

Por ejemplo, para abrir el puerto 80 de HTTP, utiliza el siguiente comando:
sudo ufw allow 80
De manera similar, para abrir el puerto 22 de SSH:
sudo ufw allow 22

Cerrar puertos con ufw

Para cerrar un puerto previamente abierto, utiliza el siguiente comando:
sudo ufw delete allow 80
Esto cancelará la apertura del puerto 80.

5. Ejemplo práctico: verificar un puerto específico

A continuación, mostramos un procedimiento práctico para comprobar un puerto específico. Por ejemplo, para verificar si el servicio SSH está escuchando en el puerto 22, puedes usar los siguientes comandos con netstat o ss:
ss -lnt | grep :22
También es posible verificarlo con lsof:
sudo lsof -i :22
El resultado debería confirmar que el servicio SSH está escuchando en el puerto 22.

6. Problemas comunes y soluciones

Al verificar o abrir puertos, pueden surgir algunos problemas comunes. A continuación, presentamos los más frecuentes y sus soluciones.

El puerto no se abre

Si un puerto no se abre, primero revisa que la configuración del firewall sea correcta. Para verificar el estado de ufw, utiliza el siguiente comando:
sudo ufw status
Si el firewall no está bloqueando el puerto, el siguiente paso es comprobar si el servicio está funcionando correctamente. Por ejemplo, para confirmar si SSH está activo, usa:
sudo systemctl status ssh

7. Conclusión

En este artículo, explicamos los comandos básicos para verificar puertos en Ubuntu y cómo utilizarlos. La comprobación de puertos es esencial para mantener la seguridad de la red y la estabilidad del sistema. En particular, la gestión de los puertos en escucha accesibles desde el exterior es fundamental para reducir vulnerabilidades. Pon en práctica los pasos descritos aquí para gestionar correctamente los puertos de tu sistema.

Glosario de términos (uso común en español)

  • Puerto = Número que identifica un canal de comunicación en la red. Ejemplo: “puerto 22” para SSH.

  • Puerto en escucha / Escuchar = Estado en el que un servicio está esperando conexiones entrantes.

  • TCP (Transmission Control Protocol) = Protocolo orientado a conexión, fiable, usado en navegación web (HTTP/HTTPS) y acceso remoto (SSH).

  • UDP (User Datagram Protocol) = Protocolo sin conexión, rápido y con baja latencia, usado en streaming de video/audio o llamadas VoIP.

  • Cortafuegos = Firewall. Sistema que controla y filtra el tráfico de red.

  • UFW (Uncomplicated Firewall) = Herramienta sencilla de cortafuegos incluida en Ubuntu, muy usada por hispanohablantes.

  • netstat = Comando clásico para mostrar conexiones de red y estadísticas. Aunque está en desuso, todavía es común verlo en manuales.

  • ss = Comando más moderno y rápido que netstat, usado para inspeccionar sockets y puertos.

  • lsof = “List Open Files”. Comando que muestra procesos y qué archivos o puertos tienen abiertos.

  • nmap = Herramienta de escaneo de red ampliamente usada en seguridad informática.

  • SSH (Secure Shell) = Protocolo para conexiones seguras y cifradas a servidores remotos.

  • systemctl = Comando estándar en sistemas con systemd para administrar servicios (iniciar, detener, verificar estado, etc.).

侍エンジニア塾