Cómo buscar puertos abiertos en Linux

Cuando esté solucionando problemas de red en Linux o esté buscando formas de mejorar la seguridad de su máquina Linux, necesitará saber si y qué puertos están abiertos. En este artículo veremos diferentes maneras de listar o mostrar puertos abiertos en Linux.

¿Qué es un puerto?

Un puerto es un número de 16 bits (0 a 65535) para ayudar a identificar una aplicación o proceso determinado en un sistema operativo Linux (Unix). El puerto diferencia una aplicación de otra en un sistema Linux.

A continuación se presentan las diferentes categorías de puertos:



0 – 1023 – Denominados Puertos Conocidos

1024 – 49151 -Referido como Puertos Registrados

49152 – 65535 – Denominados puertos dinámicos

Utilizando el siguiente comando, se muestra una lista de aplicaciones y puertos en su terminal:

cat /etc/services



TCP : TCP significa Protocolo de control de transmisión. Es el protocolo más utilizado habitualmente en Internet. TCP no es sólo una comunicación unidireccional, sino que envía paquetes de vuelta para confirmar que ha recibido sus paquetes.

UDP : También conocido como Protocolo de datagrama de usuario. Es un protocolo de comunicaciones alternativo al TCP. El protocolo UDP funciona de forma similar a TCP. Sin embargo, ignora todas las cosas que controlan los errores. UDP es necesario cuando la velocidad es deseable y no es necesaria la corrección de errores.

SOCKETS : Socket permite la comunicación de dos procesos diferentes en la misma máquina o en máquinas diferentes.

Veamos diferentes maneras de listar un puerto abierto en Linux.

1. Netstat

En este método usaremos el comando netstat -atu para buscar puertos abiertos en Linux.



Usamos las banderas -a, -t y -u para netstat.



-a : muestra todos los sockets

-t : muestra las conexiones TCP

-u : muestra las conexiones UDP

También puede añadir el indicador -p para mostrar el PID relacionado con el nombre del proceso o programa.

Cómo buscar puertos abiertos en Linux


Para mostrar sólo los puertos UDP, puede utilizar el siguiente comando:

netstat -vaun



Además, puede utilizar el siguiente comando para buscar puertos TCP:

netstat -vatn



2. lsof

En lugar de usar netstat, podemos usar el comando lsof para mostrar los puertos abiertos en Linux:

lsof -i

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i

Cómo buscar puertos abiertos en Linux


El siguiente comando también puede ayudar a mostrar los zócalos abiertos:

lsof -n -P | grep LISTEN



Además, puede utilizar el siguiente comando para listar todas las conexiones TCP:

lsof -i tcp



Además, puede utilizar el siguiente comando para las conexiones UDP:

lsof -i udp



3. Comando Asignado de Red

En este método usaremos nmap para detectar el puerto abierto en su sistema. Podemos usar el siguiente comando para mostrar las conexiones del puerto tcp:

nmap -sT -O localhost

Cómo buscar puertos abiertos en Linux


Finalmente, para mostrar las conexiones del puerto udp, podemos usar el siguiente comando:

nmap -sU localhost

Cómo buscar puertos abiertos en Linux


Conclusión

Cuando se trata de la seguridad de su PC con Linux, lo primero que debe hacer es cerrar todos los puertos innecesarios para evitar el acceso externo. Con los métodos mencionados anteriormente, podrá comprobar fácilmente si hay puertos abiertos en un sistema Linux y determinar qué puertos deben estar cerrados o abiertos.