Introducción
Cuando trabaja con un sistema Linux, a veces se encuentra con problemas de red o tiene que configurar el firewall. En estas situaciones, ¿quizás necesite verificar si los puertos específicos están abiertos o no?
Este artículo explicará los detalles de varias formas de averiguar qué puertos están abiertos en su sistema Linux.
Todos los ejemplos de este tutorial se ejecutaron en Ubuntu 20.04.
¿Qué es un puerto abierto?
Un puerto abierto es un puerto de red TCP o UDP que acepta paquetes entrantes desde el exterior.
Por ejemplo, si un servidor SSH está instalado en su sistema Linux, escuchará en el puerto 22. En caso de que este puerto esté abierto en el firewall, los usuarios de sistemas remotos podrán establecer una conexión SSH a su sistema. Decimos que el puerto 22 es un puerto abierto.
Teniendo en cuenta que debemos exponer solo los puertos necesarios para que las aplicaciones puedan funcionar correctamente. Otros puertos innecesarios deben cerrarse para evitar riesgos de seguridad.
Uso de nmap para verificar puertos abiertos
Nmap significa Network Mapper. Es una utilidad útil y poderosa que solía escanear hosts y servicios en una red.
Además de la función de escaneo de puertos de host, nmap también puede descubrir las direcciones MAC, los sistemas operativos, las versiones del kernel, etc.
De forma predeterminada, nmap no está preinstalado en Ubuntu 20.04. Puede instalarlo ejecutando los siguientes comandos:
$ sudo apt update
$ sudo apt install nmap
Verifique que nmap se haya instalado correctamente:
$ nmap -version
Salida:
Ahora es el momento de usar nmap para verificar los puertos abiertos en su sistema. Ejecutemos el comando:
$ sudo nmap -sT -p- 10.128.0.2
Salida:
en el que:
-sT -p- indica que nmap buscará todos los puertos TCP.
10.128.0.2 es su dirección IP interna de su host.
Si desea buscar puertos UDP, ejecute nmap con la opción -sU:
$ sudo nmap -sU -p- 10.128.0.2
Salida:
Uso de netcat para verificar puertos abiertos
Netcat es una poderosa herramienta de línea de comandos que realiza la operación de red. Utiliza protocolos TCP y UDP para leer y escribir datos a través de redes.
Necat también se puede utilizar para escanear y redirigir puertos de red.
Si desea verificar los puertos abiertos en el rango 20-25 en una máquina Ubuntu 20.04 que tiene IP 10.128.0.2, ejecute el siguiente comando:
$ netcat -z -v 10.128.0.2 20-50
Salida:
en el que:
-z indica que netcat escanea solo puertos abiertos
-v envía información detallada a la terminal
En caso de que quiera mostrar solo los puertos abiertos, puede ejecutar:
$ netcat -z -v 10.128.0.2 20-80 2>&1 | grep succeeded
Salida:
Para buscar puertos en UDP, usemos la opción -u de la siguiente manera:
$ netcat -z -v -u 10.128.0.2 20-80 2>&1 | grep succeeded
Salida:
Conclusión
Este tutorial le ha mostrado algunas herramientas comunes que se pueden usar para verificar los puertos abiertos en un sistema Linux.
Si tiene alguna inquietud, hágamelo saber en la sección de comentarios.