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 tener en cuenta las herramientas utilizadas 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 enumerar todos los puertos abiertos utilizando diferentes comandos en el terminal de Ubuntu.

¿Qué significa el puerto abierto??

Antes de profundizar en los 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 ejecuta en un puerto e intentamos ejecutar otra aplicación en el mismo puerto, el kernel lanzará un error. Esa es una de las muchas razones por las que verificamos los puertos abiertos antes de ejecutar aplicaciones.

Enumere los puertos abiertos con NMAP

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

ubuntu@ubuntu: ~ $ sudo apt -get update -y

NMAP se puede instalar utilizando el siguiente comando en el terminal:

ubuntu@ubuntu: ~ $ sudo apt -get install nmap -y

Después de instalar NMAP, verifique la instalación verificando la versión del NMAP:

ubuntu@ubuntu: ~ $ nmap --version

Si da la versión de NMAP, entonces se instala perfectamente, de lo contrario, intente los comandos anteriores nuevamente para instalar NMAP correctamente. NMAP se utiliza 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 utilizando el siguiente comando:

ubuntu@ubuntu: ~ $ man nmap

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

ubuntu@ubuntu: ~ $ 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:

ubuntu@ubuntu: ~ $ sudo nmap 93.184.216.34

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

ubuntu@ubuntu: ~ $ sudo nmap www.ejemplo.comunicarse

El comando nmap también se puede usar para escanear una variedad de direcciones IP. Especifique el rango de direcciones IP en el comando, como en el comando a continuación:

ubuntu@ubuntu: ~ $ sudo nmap 192.168.1.1-10

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

ubuntu@ubuntu: ~ $ sudo nmap 192.168.1.1/24

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 se escriben todos los nombres de host, separados por uno o más espacios, pestañas o nuevos líneas. Este archivo se puede usar con NMAP de la siguiente manera:

ubuntu@ubuntu: ~ $ sudo nmap -il hosts.TXT

Podemos usar NMAP para escanear un solo puerto en el sistema especificando el puerto utilizando el indicador '-P', junto con NMAP, como en el siguiente comando:

ubuntu@ubuntu: ~ $ sudo nmap -p 80 localhost

La gama de puertos también se puede escanear en un sistema que usa NMAP de la siguiente manera:

ubuntu@ubuntu: ~ $ sudo nmap -p 80-85 localhost

Podemos escanear todos los puertos de un sistema usando NMAP:

ubuntu@ubuntu: ~ $ sudo nmap -p- localhost

Para obtener una lista de los puertos más comunes en su sistema, puede usar el comando nmap con el indicador '-f':

ubuntu@ubuntu: ~ $ 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:

ubuntu@ubuntu: ~ $ sudo nmap -st localhost

Del mismo modo, para los puertos UDP, puede usar el indicador '-u' con el comando nmap:

ubuntu@ubuntu: ~ $ sudo nmap -su localhost

Enumere los puertos abiertos con LSOF

El comando LSOF, también conocido como 'Lista de archivos abiertos', se utiliza para obtener la información sobre los archivos abiertos utilizados 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 revisando su versión:

ubuntu@ubuntu: ~ $ lSOF -V

Si no muestra la versión, entonces LSOF no está instalado de forma predeterminada. Todavía podemos instalarlo utilizando los siguientes comandos en el terminal:

ubuntu@ubuntu: ~ $ sudo apt -get update -y
ubuntu@ubuntu: ~ $ sudo apt-get install lSOF

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

ubuntu@ubuntu: ~ $ man lsof

Ahora, en esta sección, vamos a usar LSOF para mostrar puertos de un sistema de diferentes maneras:

ubuntu@ubuntu: ~ $ sudo lsof -i

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

ubuntu@ubuntu: ~ $ sudo lsof -n -p | Grep ESCUCHA

Podemos enumerar los puertos filtrados en función de un protocolo que usa LSOF. Ejecute el comando que se proporciona a continuación para enumerar todos los tipos de conexión TCP:

ubuntu@ubuntu: ~ $ sudo lsof -i tcp

Del mismo modo, podemos enumerar todos los tipos de conexión UDP utilizando LSOF de la siguiente manera:

ubuntu@ubuntu: ~ $ sudo lsof -i udp

Enumere los puertos abiertos con NetStat

NetStat, también conocido como estadísticas de red, es un programa de línea de comandos utilizado 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, utilizaremos NetStat para enumerar los puertos abiertos en un sistema. La herramienta NetStat se puede instalar ejecutando los siguientes comandos:

ubuntu@ubuntu: ~ $ sudo apt -get update -y
ubuntu@ubuntu: ~ $ sudo apt-get instalación de redes -y -y

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

ubuntu@ubuntu: ~ $ netstat --version

Si muestra la versión de las herramientas de red, 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:

ubuntu@ubuntu: ~ $ man netstat

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

ubuntu@ubuntu: ~ $ sudo netstat -l

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

ubuntu@ubuntu: ~ $ sudo netstat -lt

Para escuchar los puertos UDP, use el siguiente comando:

ubuntu@ubuntu: ~ $ sudo netstat -lu

Para obtener la lista de todos los puertos Unix de escucha, puede ejecutar el siguiente comando en el terminal:

ubuntu@ubuntu: ~ $ sudo netstat -lx

Enumere los puertos abiertos con SS

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

ubuntu@ubuntu: ~ $ man ss

Para obtener una lista de toda la conexión, independientemente de su estado, use el comando SS sin ningún indicador:

ubuntu@ubuntu: ~ $ sudo ss

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

ubuntu@ubuntu: ~ $ sudo ss -l

Para obtener todos los puertos TCP de escucha, podemos usar el indicador '-T' y '-L' junto con el comando SS:

ubuntu@ubuntu: ~ $ sudo ss -lt

Del mismo modo, podemos obtener una lista de todos los puertos UDP de escucha utilizando el comando SS junto con el indicador '-u' y '-l':

ubuntu@ubuntu: ~ $ sudo ss -lu

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

ubuntu@ubuntu: ~ $ sudo ss -at '(dport =: 22 o deportivo =: 22)'

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

Conclusión

Para los administradores del sistema, los 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 con las herramientas utilizadas 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 verificar los puertos abiertos en Ubuntu. Después de pasar por este artículo, podrá enumerar fácilmente todos los puertos de escucha en su servidor Linux de muchas maneras.