Durante la resolución de problemas de los servicios que se ejecutan en un sistema Linux, comprobar los puertos abiertos es una de las tareas que cualquier usuario o administrador debería considerar realizar. Si se espera que un servicio se ejecute pero por alguna razón no lo hace, lo más probable es que el puerto asociado a ese servicio esté cerrado y deba abrirse.
En este tutorial, demostraremos cómo comprobar los puertos abiertos en un Linux desde la línea de comandos.
1) Comprobar los puertos abiertos utilizando el comando ss
El comando ss de Linux te da información detallada sobre los puertos abiertos y los sockets a la escucha. Extrae información del kernel de Linux y es más preferible al comando netstat que ha quedado obsoleto.
Para mostrar las conexiones TCP en escucha, ejecuta el comando
$ ss -tl
Muestra la salida
l – Muestra los sockets en escucha
t – Significa el puerto TCP
Para mostrar las conexiones UDP en escucha, emite el comando
$ ss -lu
Muestra la salida
u – Significa puerto UDP
o
Para mostrar tanto tcp como udp, nombre del proceso
$ ss -lntup
p – Lista del nombre del proceso que abrió sockets
Para imprimir todas las conexiones de socket, simplemente utilice el comando ss en su formato predeterminado
$ ss
Muestra de salida
2) Comprobar los puertos abiertos utilizando el comando netstat
El comando netstat es una potente herramienta de comandos que se utiliza para comprobar los puertos TCP y UDP abiertos junto con otros atributos. Para comprobar los puertos abiertos, emite el comando:
$ netstat -pnltu
Muestra de salida
Veamos las opciones del comando:
p – Muestra el ID de Procees asociado a un servicio o nombre de Programa
n – Muestra el número numérico del puerto que se ejecuta e.g 3306 para mysqld, y 22 para sshd.
l – Muestra los sockets a la escucha
t – Muestra las conexiones TCP
u – Muestra las conexiones UDP
3) Comprobar los puertos abiertos utilizando el comando lsof
El comando lsof es una herramienta de comandos de red que también se puede utilizar para comprobar los puertos abiertos en un sistema Linux. Para mostrar los puertos abiertos, emite el comando
$ lsof -i
Muestra de salida
Si quieres mostrar los sockets abiertos, utiliza el comando lsof
y canaliza la salida a grep como se muestra:
$ lsof -n -P | grep LISTEN
Muestra de salida
Para ver todas las conexiones TCP ejecuta :
$ lsof -i tcp
Muestra de salida
Para visualizar todas las conexiones UDP ejecuta el comando:
$ lsof -i udp
Salida de ejemplo
4) Comprobar los puertos abiertos utilizando la utilidad Nmap
Nmap es una herramienta de escaneo de red gratuita y de código abierto que se suele utilizar para el reconocimiento en el hacking ético para descubrir los puertos abiertos de sistemas remotos. Por defecto, Nmap no viene instalado en tu sistema. Para instalar Nmap, emite el comando
Para escanear puertos TCP abiertos, ejecuta el comando
$ nmap -sT -O localhost
Muestra de salida
Para escanear puertos UDP abiertos, ejecuta el comando:
$ nmap -sU localhost
Muestra de salida
Resumiendo
Estos son los comandos linuxeros y las herramientas utilizadas para el escaneo de puertos para comprobar los puertos abiertos en un sistema Linux. Como siempre, tus comentarios son muy bienvenidos. Si tienes otras ideas sobre cómo comprobar los puertos abiertos, ponte en contacto con nosotros.
Lee también:
- Cómo usar los comandos de Netcat en la red
.