Ubuntu

Cómo encontrar puertos abiertos en Ubuntu?

Cómo encontrar puertos abiertos en Ubuntu?
Para solucionar problemas de una red y mantener la seguridad del servidor, un administrador de red o un profesional de seguridad debe conocer las herramientas que se utilizan para encontrar puertos abiertos en el servidor. Linux proporciona diferentes utilidades y opciones de línea de comandos para enumerar los puertos abiertos en el servidor. En este tutorial, veremos cómo podemos listar todos los puertos abiertos usando diferentes comandos en la terminal de Ubuntu.

¿Qué significa puerto abierto??

Antes de profundizar en la verificación de puertos abiertos, primero sepamos qué significan los puertos abiertos. Un puerto abierto o un puerto de escucha es el puerto en el que se ejecuta alguna aplicación. La aplicación en ejecución escucha en algún puerto y podemos comunicarnos con esa aplicación a través de ese puerto de escucha. Si una aplicación se está ejecutando en un puerto e intentamos ejecutar otra aplicación en el mismo puerto, el kernel arrojará un error. Esa es una de las muchas razones por las que comprobamos si hay puertos abiertos antes de ejecutar aplicaciones.

Enumerar puertos abiertos usando nmap

Network Mapper, conocido como nmap, es una herramienta de código abierto y gratuita, que se utiliza para escanear puertos en un sistema. Se utiliza para encontrar vulnerabilidades, descubrir redes y encontrar puertos abiertos. En esta sección, usaremos nmap para obtener una lista de puertos abiertos en un sistema. En primer lugar, actualice la caché en Ubuntu antes de instalar nmap:

[correo electrónico protegido]: ~ $ sudo apt-get update -y

Nmap se puede instalar usando el siguiente comando en la terminal:

[correo electrónico protegido]: ~ $ sudo apt-get install nmap -y

Después de instalar nmap, verifique la instalación comprobando la versión de nmap:

[correo electrónico protegido]: ~ $ nmap --version

Si da la versión de nmap, entonces está perfectamente instalado, de lo contrario, intente los comandos anteriores nuevamente para instalar nmap correctamente. Nmap se usa para realizar varios relacionados con las redes, y el escaneo de puertos es una de esas tareas. La herramienta nmap se usa junto con muchas opciones. Podemos obtener la lista de todas las opciones disponibles usando el siguiente comando:

[correo electrónico protegido]: ~ $ man nmap

Entonces, para escanear su localhost, use el comando aprehendido a continuación:

[correo electrónico protegido]: ~ $ sudo nmap localhost

Enumerará todos los puertos abiertos en localhost, como se muestra en la imagen de arriba. También podemos usar nmap para escanear hosts remotos:

[correo electrónico protegido]: ~ $ sudo nmap 93.184.216.34

Además, podemos usar el nombre de host del servidor remoto en lugar de una dirección IP:

[correo electrónico protegido]: ~ $ sudo nmap www.ejemplo.com

El comando nmap también se puede utilizar para escanear un rango de direcciones IP. Especifique el rango de direcciones IP en el comando, como en el siguiente comando:

[correo electrónico protegido]: ~ $ sudo nmap 192.168.1.1-10

El comando anterior escaneará todas las direcciones IP desde 192.168.1.1 hasta 192.168.1.10, y mostrará el resultado en la terminal. Para escanear puertos en una subred, podemos usar nmap de la siguiente manera:

[correo electrónico protegido]: ~ $ sudo nmap 192.168.1.24/1

El comando anterior escaneará todos los hosts con direcciones IP en la subred definida en el comando.

A veces tiene que escanear puertos en hosts aleatorios, que están en diferentes subredes y no están en secuencia, entonces la mejor solución es escribir un archivo de hosts en el que estén escritos todos los nombres de host, separados por uno o más espacios, pestañas o nuevos líneas. Este archivo se puede utilizar con nmap de la siguiente manera:

[correo electrónico protegido]: ~ $ sudo nmap -iL hosts.TXT

Podemos usar nmap para escanear un solo puerto en el sistema especificando el puerto usando la bandera '-p', junto con nmap, como en el siguiente comando:

[correo electrónico protegido]: ~ $ sudo nmap -p 80 localhost

El rango de puertos también se puede escanear en un sistema usando nmap de la siguiente manera:

[correo electrónico protegido]: ~ $ sudo nmap -p 80-85 localhost

Podemos escanear todos los puertos de un sistema usando nmap:

[correo electrónico protegido]: ~ $ sudo nmap -p- localhost

Para obtener una lista de los puertos abiertos con más frecuencia en su sistema, puede usar el comando nmap con la bandera '-F':

[correo electrónico protegido]: ~ $ sudo nmap -F localhost

Los puertos TCP se pueden escanear en el sistema usando nmap simplemente agregando el indicador '-T', junto con el comando nmap:

[correo electrónico protegido]: ~ $ sudo nmap -sT localhost

De manera similar, para los puertos UDP, puede usar la marca '-U' con el comando nmap:

[correo electrónico protegido]: ~ $ sudo nmap -sU localhost

Lista de puertos abiertos usando lsof

El comando lsof, también conocido como 'listar archivos abiertos', se usa para obtener información sobre archivos abiertos usados ​​por diferentes procesos en UNIX y LINUX como sistemas operativos. Para la mayoría de las distribuciones de Linux, esta herramienta viene preinstalada. Podemos verificar la instalación de lsof simplemente comprobando su versión:

[correo electrónico protegido]: ~ $ lsof -v

Si no muestra la versión, entonces lsof no está instalado por defecto. Aún podemos instalarlo usando los siguientes comandos en la terminal:

[correo electrónico protegido]: ~ $ sudo apt-get update -y
[correo electrónico protegido]: ~ $ sudo apt-get install lsof

Podemos usar el comando lsof junto con diferentes opciones. La lista de todas las opciones disponibles se puede mostrar usando el siguiente comando en la terminal:

[correo electrónico protegido]: ~ $ man lsof

Ahora, en esta sección, usaremos lsof para mostrar los puertos de un sistema de diferentes maneras:

[correo electrónico protegido]: ~ $ sudo lsof -i

El comando anterior ha mostrado todos los puertos abiertos. También podemos usar el comando lsof para mostrar todos los sockets abiertos:

[correo electrónico protegido]: ~ $ sudo lsof -n -P | grep ESCUCHAR

Podemos listar puertos filtrados basados ​​en un protocolo usando lsof. Ejecute el comando que se indica a continuación para enumerar todos los tipos de conexión TCP:

[correo electrónico protegido]: ~ $ sudo lsof -i tcp

De manera similar, podemos listar todos los tipos de conexión UDP usando lsof de la siguiente manera:

[correo electrónico protegido]: ~ $ sudo lsof -i udp

Enumerar puertos abiertos mediante netstat

Netstat, también conocido como estadísticas de red, es un programa de línea de comandos que se utiliza para mostrar información detallada sobre las redes. Muestra conexiones TCP entrantes y salientes, tablas de enrutamiento, interfaces de red, etc. En esta sección, usaremos netstat para listar los puertos abiertos en un sistema. La herramienta netstat se puede instalar ejecutando los siguientes comandos:

[correo electrónico protegido]: ~ $ sudo apt-get update -y
[correo electrónico protegido]: ~ $ sudo apt-get install net-tools -y

Después de ejecutar los comandos anteriores, puede verificar la instalación verificando la versión de netstat:

[correo electrónico protegido]: ~ $ netstat --version

Si muestra la versión de net-tools, entonces la instalación está bien; de lo contrario, ejecute los comandos de instalación nuevamente. Para obtener una descripción general de todas las opciones disponibles que se pueden usar, junto con el comando netstat, ejecute el siguiente comando:

[correo electrónico protegido]: ~ $ man netstat

Podemos obtener una lista de todos los puertos de escucha usando el comando netstat en Ubuntu ejecutando el siguiente comando:

[correo electrónico protegido]: ~ $ sudo netstat -l

El comando netstat también se puede usar para filtrar la escucha de los puertos TCP y UDP simplemente agregando una bandera junto con el comando. Para escuchar los puertos TCP:

[correo electrónico protegido]: ~ $ sudo netstat -lt

Para escuchar los puertos UDP, use el siguiente comando:

[correo electrónico protegido]: ~ $ sudo netstat -lu

Para obtener la lista de todos los puertos UNIX que escuchan, puede ejecutar el siguiente comando en la terminal:

[correo electrónico protegido]: ~ $ sudo netstat -lx

Enumerar puertos abiertos mediante ss

El comando ss se utiliza para mostrar información sobre sockets en un sistema Linux. Muestra información más detallada sobre sockets que el comando netstat. El comando ss viene preinstalado para la mayoría de las distribuciones de Linux, por lo que no es necesario instalarlo antes de usarlo. Puede obtener una lista de todas las opciones, que se pueden usar junto con el comando ss, ejecutando el comando 'man' con ss:

[correo electrónico protegido]: ~ $ man ss

Para obtener una lista de todas las conexiones independientemente de su estado, use el comando ss sin ningún indicador:

[correo electrónico protegido]: ~ $ sudo ss

Para obtener una lista de todos los puertos de escucha, use el comando ss con la bandera '-l'. La bandera '-l' se usa para mostrar solo los puertos de escucha:

[correo electrónico protegido]: ~ $ sudo ss -l

Para obtener todos los puertos TCP de escucha, podemos usar el indicador '-t' y '-l' junto con el comando ss:

[correo electrónico protegido]: ~ $ sudo ss -lt

De manera similar, podemos obtener una lista de todos los puertos UDP de escucha usando el comando ss junto con las banderas '-u' y '-l':

[correo electrónico protegido]: ~ $ sudo ss -lu

El comando ss también se puede utilizar para obtener una lista de todas las conexiones con el puerto de origen o de destino. En el siguiente ejemplo, vamos a obtener la lista de todas las conexiones con el puerto de origen o destino 22:

[correo electrónico protegido]: ~ $ sudo ss -at '(dport =: 22 o sport =: 22)'

Obtendrá una lista de todas las conexiones entrantes y salientes si se ha conectado a un sistema remoto usando ssh.

Conclusión

Para los administradores de sistemas, profesionales de la seguridad y otras personas relacionadas con TI, es importante estar al tanto de los puertos abiertos en los servidores. Linux es rico en herramientas que se utilizan para diagnosticar redes y proporciona muchas herramientas que pueden ser útiles para varios tipos de actividades de redes. En este tutorial, hemos utilizado algunas herramientas como netstat, ss, lsof y nmap para buscar puertos abiertos en Ubuntu. Después de leer este artículo, podrá enumerar fácilmente todos los puertos de escucha en su servidor Linux de muchas maneras.

Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...
Vulkan para usuarios de Linux
Con cada nueva generación de tarjetas gráficas, vemos que los desarrolladores de juegos superan los límites de la fidelidad gráfica y se acercan un pa...
OpenTTD frente a Simutrans
Crear su propia simulación de transporte puede ser divertido, relajante y extremadamente atractivo. Es por eso que debes asegurarte de probar tantos j...