¿Cómo comprobar los puertos en Linux?

Si usas Linux, mantener un control constante sobre la seguridad de la red probablemente sea parte de tu rutina. Un aspecto clave para proteger cualquier sistema consiste en identificar y supervisar los puertos abiertos.

Aunque los puertos abiertos son necesarios para que muchos servicios funcionen, también pueden convertirse en riesgos de seguridad si no se controlan correctamente. Para administradores de sistemas o cualquier persona responsable de gestionar un servidor Linux, saber cómo comprobar qué puertos están abiertos es una habilidad esencial que ayuda tanto a la seguridad como al rendimiento del sistema.

Este artículo describe algunas de las formas más eficaces de inspeccionar puertos abiertos en un sistema Linux, dándote el conocimiento necesario para proteger y optimizar tu red.

¿Qué son los puertos abiertos en Linux?

En los sistemas Linux, los puertos funcionan como puertas de enlace que permiten la comunicación entre tu servidor y el exterior. A cada puerto se le asigna un número específico y distintos servicios o aplicaciones, como hosting web, correo electrónico o intercambio de archivos, lo utilizan para enviar y recibir datos.

El papel de los puertos abiertos y cerrados en Linux

Algunos puertos se habilitan por defecto para soportar servicios esenciales, mientras que otros permanecen cerrados para reforzar la seguridad del sistema. Sin embargo, mantener un puerto abierto sin una supervisión adecuada puede exponer tu sistema a accesos no autorizados o ciberataques. Por eso es importante revisar de forma regular qué puertos están abiertos y comprender qué función cumplen.

Por qué es importante supervisar los puertos abiertos

Conocer qué puertos están abiertos mejora tu capacidad para identificar y prevenir amenazas de seguridad. También es fundamental para diagnosticar problemas de red. Por ejemplo, si un servicio no es accesible, el problema puede estar relacionado con si el puerto correspondiente está abierto o bloqueado.

Al aprender a inspeccionar los puertos abiertos en tu servidor Linux, refuerzas tanto tu postura de seguridad como tus capacidades de resolución de problemas.

Puertos usados con más frecuencia en Linux y sus funciones

Los servidores Linux utilizan una variedad de puertos, cada uno asociado a un servicio o función concreta. Reconocer estos puertos comunes facilita entender qué servicios están activos en tu sistema y detectar conexiones desconocidas o potencialmente riesgosas.

  • Port 22 (SSH): Se usa para Secure Shell; permite a los administradores acceder y gestionar el servidor de forma segura y remota.
  • Port 80 (HTTP): Gestiona tráfico web sin cifrar para sitios que usan el protocolo HTTP estándar.
  • Port 443 (HTTPS): La versión cifrada de 80; protege el tráfico web usando SSL/TLS, resguardando los datos intercambiados entre usuarios y sitios.
  • Port 21 (FTP): Facilita transferencias de archivos mediante File Transfer Protocol, permitiendo mover datos entre sistemas.
  • Port 25 (SMTP): Se encarga del envío de correo usando Simple Mail Transfer Protocol.
  • Port 3306 (MySQL): Muy común en servicios de base de datos MySQL, permite que aplicaciones se comuniquen con servidores MySQL.

Estos son solo algunos de los muchos puertos que pueden estar en uso en una máquina Linux. Conocer su función te ayuda a entender mejor la actividad de red de tu servidor y a detectar cualquier comportamiento inusual.

En la siguiente sección, veremos formas prácticas de identificar qué puertos están abiertos actualmente en tu sistema Linux, dándote más control sobre la exposición de tu servidor en la red.

Conceptos clave de redes: protocolos TCP/UDP, firewalls y servicios

Entender cómo fluye la información hacia dentro y fuera de tu servidor Linux comienza con algunos conceptos fundamentales: protocolos TCP/UDP, firewalls y servicios. En conjunto, estos elementos determinan cómo funcionan los puertos abiertos y cómo se gestiona el tráfico.

TCP vs. UDP: cómo viajan los datos

Transmission Control Protocol (TCP) y User Datagram Protocol (UDP) son dos protocolos principales que regulan cómo se intercambia la información en una red.

  • TCP es orientado a conexión. Antes de transferir datos, establece una conexión estable entre servidor y cliente. Es ideal cuando importan la precisión y el orden, por ejemplo al acceder a sitios web (HTTP/HTTPS) y al transferir archivos.
  • UDP no orientado a conexión. Envía datos sin establecer una conexión dedicada, priorizando velocidad sobre fiabilidad. Por eso es adecuado para streaming de video, juegos online, consultas DNS y comunicación de voz.

Cuando revisas puertos abiertos en Linux, normalmente verás si un puerto utiliza TCP o UDP. Esto ayuda a identificar los servicios asociados y a ajustar la configuración de red en consecuencia.

Firewalls: control de acceso a los puertos

Un firewall actúa como un filtro de tráfico, controlando qué datos pueden entrar o salir de tu servidor. En Linux, herramientas como iptables y firewalld se usan con frecuencia para definir reglas que permiten o bloquean puertos específicos.

La configuración del firewall influye directamente en qué puertos son accesibles desde fuera del sistema. Incluso si un servicio está en ejecución, el firewall puede impedir el acceso externo a menos que el puerto correspondiente esté permitido. Gestionar estas reglas asegura que solo los puertos necesarios permanezcan abiertos, reduciendo el riesgo de accesos no autorizados.

Servicios: qué está usando tus puertos

Los servicios son procesos o aplicaciones que se vinculan (bind) a puertos concretos para cumplir su función. Por ejemplo:

  • Un servidor web (como Apache o Nginx) suele usar el puerto 80 para HTTP y el puerto 443 para HTTPS.
  • Un servidor de base de datos puede usar el puerto 3306 para conexiones MySQL.

Supervisar puertos abiertos te ayuda a confirmar que solo estén activos los servicios esperados y necesarios. Esto refuerza la seguridad del sistema y también mejora la eficiencia al reducir procesos innecesarios en segundo plano.

Cómo comprobar puertos abiertos en Linux

Hay varias formas de comprobar puertos abiertos en un sistema Linux, y cada una ofrece ventajas distintas según lo que necesites. Aquí tienes un resumen de los métodos más comunes y efectivos:

1. Comprobar puertos con Nmap

Nmap (Network Mapper) es una herramienta muy utilizada para escanear redes e identificar puertos y servicios abiertos. Es especialmente popular entre administradores de sistemas por la profundidad y flexibilidad de sus resultados.

Para instalar Nmap:

sudo apt-get install nmap # For Debian/Ubuntu
sudo yum install nmap # For RHEL/CentOS

Una vez instalado, puedes ejecutar un escaneo básico del sistema con:

nmap localhost

Esto escanea los puertos más comunes de tu máquina. Si quieres escanear un rango mucho más amplio, usa:

nmap -p 1-65535 localhost

Nmap mostrará una lista de puertos abiertos junto con los servicios asociados, lo que lo convierte en una excelente herramienta para auditar la exposición de red de tu sistema.

2. Usar lsof para ver puertos abiertos

El comando lsof (List Open Files) es útil para mostrar conexiones activas de archivos y red. Para ver puertos de red en uso, ejecuta:

$ sudo lsof -i -P -n

-i: muestra archivos de red
-P: muestra números de puerto en lugar de nombres de servicio
-n: desactiva la resolución de nombres de host

Busca entradas marcadas como LISTEN para identificar puertos que están abiertos para conexiones entrantes.

3. Usar netstat para comprobar puertos en escucha

Aunque se considera una herramienta antigua, netstat sigue presente en muchas distribuciones Linux y puede utilizarse para ver puertos abiertos.

sudo netstat -tuln

-t: muestra puertos TCP
-u: muestra puertos UDP
-l: muestra solo puertos en modo escucha
-n: omite consultas DNS para resultados más rápidos

El resultado incluye la dirección local y el número de puerto, ayudándote a detectar puertos abiertos rápidamente.

4. Usar ss como alternativa moderna

ss es un reemplazo más rápido y eficiente de netstat. Ofrece funciones similares con salida más ágil. Para listar puertos abiertos:

$ sudo ss -tuln

Al igual que netstat, muestra puertos TCP y UDP en escucha y evita la resolución de nombres, por lo que es una buena opción para comprobaciones rápidas en sistemas modernos.

5. Probar puertos específicos con Netcat (nc)

Netcat, también conocido como nc, es una herramienta ligera para comprobar puertos individuales. Es útil cuando necesitas verificar rápido si un puerto en concreto está abierto. Por ejemplo:

$ nc -zv localhost 22

-z: escanea sin enviar datos
-v: habilita modo detallado para mostrar resultados

Esto te dirá si el puerto 22 (normalmente usado para SSH) está abierto en tu sistema.

Comprobar puertos abiertos con PowerShell en Linux

Aunque PowerShell se asocia tradicionalmente con Windows, también está disponible en Linux y ofrece varios comandos de red útiles. Uno de ellos es Test-NetConnection, que permite comprobar si un puerto específico está abierto.

Para verificar si el puerto 22 (comúnmente usado para SSH) es accesible en tu máquina local, puedes ejecutar:

Test-NetConnection -ComputerName localhost -Port 22

Este comando comprueba la conectividad hacia el puerto indicado y devuelve información detallada sobre el estado de la conexión.

PowerShell resulta especialmente útil para administradores que trabajan tanto con Windows como con Linux, ya que les permite usar herramientas y comandos familiares independientemente del sistema operativo.

Conclusión

Supervisar puertos abiertos es esencial para mantener la seguridad y el rendimiento de un servidor Linux. Con herramientas como nmap, ss, lsof y netcat, puedes identificar fácilmente puertos activos y los servicios que los utilizan. Ya sea que gestiones los puertos manualmente o mediante un VPS administrado, vigilar las conexiones abiertas ayuda a proteger tu sistema y a garantizar operaciones de red eficientes.

Experimenta un hosting potente y flexible con BlueVPS.com

Obtén la fiabilidad de un servidor privado virtual combinada con la flexibilidad de la nube en BlueVPS. Diseñado para ser simple, escalable y totalmente personalizable, BlueVPS ofrece un entorno dedicado que te da control total sobre tus recursos. Disfruta de tráfico ilimitado, rendimiento constante y la capacidad de adaptar tu configuración de hosting a tus necesidades exactas.

Libera todo el potencial de tus proyectos online: elige BlueVPS.com para un rendimiento que crece contigo.

Blog