Gestión Portuaria

Cómo enumerar puertos abiertos en Linux?

Cómo enumerar puertos abiertos en Linux?

En redes, un puerto es una característica interesante. Es una forma de que el tráfico de la red identifique la aplicación o el servicio de destino. Cada proceso / servicio obtiene su puerto único. Un puerto siempre estará asociado con la dirección IP del host junto con el protocolo.

Esta es una de mis metáforas favoritas para describir lo que es un puerto. Imagina un barco cargado de carga, que viajará a una tierra lejana. Qué información se necesita para llegar correctamente al destino? En aras de la simplicidad, digamos que necesita el país (la dirección IP) y la Puerto el barco atracará.

En esta guía, consulte cómo enumerar los puertos abiertos en Linux.

Puertos en Linux

Los puertos actúan como un punto final de comunicación. Es un número de 16 bits (0 a 65535 en decimal). Si bien el rango es amplio, para facilitar su uso, los puertos se clasifican en tres categorías. Cada categoría está etiquetada como el rango de valor de puerto:

En Linux, hay varias formas de verificar los puertos abiertos. De forma predeterminada, cualquier puerto permanecerá cerrado a menos que una aplicación lo esté usando. Si un puerto está abierto, debe asignarse a un servicio / proceso.

Lista de puertos abiertos

Es más fácil identificar qué puertos están en uso en lugar de qué puertos están abiertos. Es por eso que la siguiente sección presentará métodos para enumerar todos los puertos que están actualmente en uso. En Linux, hay varias herramientas disponibles para la tarea. La mayoría de ellos vienen integrados en cualquier distribución de Linux.

Saber qué puertos están abiertos actualmente puede ser útil en varios escenarios. Es posible configurar un puerto dedicado para una determinada aplicación. Un puerto abierto también puede ser un fuerte indicio de intrusión en la red.

Los siguientes métodos se muestran en Ubuntu 20.04.1 LTS.

Enumere los protocolos y los puertos abiertos de / etc / services

El archivo / etc / services contiene información sobre los servicios que se están ejecutando actualmente. Es un archivo grande, tan listo para abrumarse.

$ cat / etc / services | menos

Lista de puertos abiertos usando netstat

La herramienta netstat es una utilidad para mostrar conexiones de red para TCP, tablas de enrutamiento y varias interfaces de red. También ofrece estadísticas de protocolo de red. Al usar netstat, podemos enumerar todos los puertos abiertos del sistema.

Ejecute el siguiente comando netstat:

$ netstat -atu

Hagamos un desglose rápido de todas las banderas que usamos en este comando.

Aquí hay otra variación del comando netstat:

$ netstat -lntu

Hay dos nuevas banderas utilizadas en el comando. Qué quieren decir?

Para mostrar el PID del proceso que está usando un puerto, use la bandera "-p":

$ netstat -lntup

Lista de puertos abiertos usando ss

La herramienta ss es una utilidad para investigar socket. Su uso es similar al de netstat.

Para enumerar los puertos abiertos, ejecute el siguiente comando ss:

$ ss -lntu

Las banderas son similares a netstat. Las funciones que describen también son bastante similares.

Lista de puertos abiertos usando lsof

El comando lsof es listar archivos abiertos. Sin embargo, también se puede utilizar para mostrar los puertos abiertos.

Ejecute el siguiente comando lsof:

$ lsof -i

Para obtener los puertos abiertos de un protocolo específico (TCP, UDP, etc.) luego defínalo después de la bandera "-i", use:

$ lsof -i

Lista de puertos abiertos usando nmap

La herramienta nmap es poderosa para la exploración de redes y la seguridad / escaneo de puertos. Puede informar todos los puertos abiertos en el sistema.

Para enumerar los puertos TCP abiertos, ejecute el siguiente comando nmap. Aquí, la dirección IP es de la computadora host:

$ sudo nmap -sT -p- localhost

Aquí, hay dos partes del argumento del comando.

  • -S t: Esta sección le dice a nmap que busque puertos TCP.
  • -pag- : Esto le dice a nmap que busque todos los puertos 65535. Si no se usa, nmap escaneará solo 1000 puertos de forma predeterminada.

Si necesita enumerar los puertos UDP abiertos, ejecute el siguiente comando nmap:

$ sudo nmap -sU -p- localhost

Para obtener los puertos TCP y UDP abiertos, use el siguiente comando:

$ sudo nmap -n -PN -sT -sU -p- localhost

Lista de puertos abiertos usando netcat

La herramienta netcat es una utilidad de línea de comandos para leer y escribir datos a través de conexiones de red a través de los protocolos TCP y UDP. Esta herramienta también se puede utilizar para enumerar puertos abiertos. Puede realizar pruebas en un puerto específico o en una variedad de puertos.

El siguiente comando netcat escaneará el puerto de 1 a 1000. El comando netcat realizará el escaneo en el protocolo TCP de forma predeterminada:

$ nc -z -v localhost 1-1000

También se puede ampliar a toda la lista de posibles puertos:

$ nc -z -v localhost 1-65535

Hagamos un rápido desglose de las banderas.

  • z: Le dice a netcat que busque solo puertos abiertos sin enviar ningún dato
  • v: Le dice a netcat que se ejecute en modo detallado

Para obtener solo los puertos abiertos de esta lista, filtre la salida con grep para el término "exitoso".

$ nc -z -v localhost 0-65535 2> & 1 | grep tuvo éxito

Si desea realizar el escaneo en el protocolo UDP, agregue la marca "-u".

$ nc -z -v -u localhost 0-65535 2> & 1 | grep tuvo éxito

Pensamientos finales

Como se demostró, hay muchas formas de buscar puertos abiertos en Linux. Sugiero probar todos los métodos antes de decidir cuál dominar. Si está utilizando una determinada herramienta como netcat o nmap con regularidad, entonces dominar los métodos asociados será lo más beneficioso.

Computación feliz!

Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...
Instale el último emulador de Dolphin para Gamecube y Wii en Linux
Dolphin Emulator te permite jugar los juegos de Gamecube y Wii que elijas en computadoras personales con Linux (PC). Al ser un emulador de juegos de ...
Cómo usar GameConqueror Cheat Engine en Linux
El artículo cubre una guía sobre el uso del motor de trucos GameConqueror en Linux. Muchos usuarios que juegan juegos en Windows a menudo usan la apli...