Cómo utilizar LSOF para monitorear puertos en tiempo real

Como Utilizar Lsof Para Monitorear Puertos En Tiempo Real



LSOF (List Open Files) es una herramienta de monitoreo de línea de comandos que se utiliza en sistemas operativos tipo Linux/Unix. El comando LSOF proporciona información sobre los archivos activos y los procesos que actualmente acceden a ellos.

La herramienta de línea de comandos LSOF es muy beneficiosa para los administradores y desarrolladores de sistemas al permitirles:

  • Determinar los procesos que actualmente utilizan un archivo o puerto específico, particularmente importante en caso de conflictos de puertos.
  • Detectar los archivos que han sido eliminados pero que aún están abiertos por procesos que pueden generar un consumo innecesario de espacio; El comando LSOF sirve para identificar y abordar tales casos.
  • Ayuda a solucionar errores, como 'el puerto ya está en uso', de manera efectiva
  • Realice un seguimiento de la actividad de la red y abra conexiones de red con fines de monitoreo
  • Investigar patrones de acceso a archivos, contribuyendo a la identificación de posibles violaciones de seguridad.

En este tutorial, aprenderá cómo utilizar el comando LSOF para monitorear los puertos en tiempo real.







Sintaxis básica del comando LSOF

La sintaxis del comando LSOF es la siguiente:



$ lsof [ opciones ] [ nombres ]

Las opciones son los indicadores que se utilizan con el comando LSOF. Los nombres representan los nombres de archivos, PID (ID de proceso), nombres de usuario o archivos de red (IPv4, IPv6). Dependiendo de las opciones proporcionadas, el comando LSOF muestra una lista de archivos abiertos que corresponden a estos nombres.



Monitoree puertos en tiempo real usando el comando LSOF

LSOF está incluido de forma predeterminada en muchos sistemas Linux. Debe descargar e instalar manualmente uno de los paquetes disponibles si no está instalado. Para verificar la instalación de LSOF en su sistema, use el siguiente comando para mostrar la versión instalada:





$ lsof -en

Es importante tener en cuenta que para utilizar el comando LSOF con los permisos adecuados, cierta información sobre procesos y conexiones de red puede requerir privilegios elevados de superusuario y es posible que deba utilizar 'sudo' para ejecutar el comando con derechos administrativos.



Listar los archivos de red

Cuando ejecuta el comando LSOF con la opción '-i', muestra información sobre los procesos que tienen conexiones de red, como sockets de escucha o conexiones establecidas.

$ lsof –yo

El comando anterior muestra la información sobre el nombre del proceso (COMMAND), ID del proceso (PID), usuario (USER), descriptor de archivo (FD), tipo de conexión (TYPE), direcciones locales y remotas, y el estado de la conexión. Deberías ver el siguiente resultado:

Listar las conexiones TCP

Puede filtrar la salida según criterios específicos, como tipos particulares de conexiones o puertos. Por ejemplo, podría utilizar 'lsof -i tcp' para enumerar sólo los procesos asociados con una conexión TCP.

$ lsof -i TCP: 1 - 1024

El comando anterior filtra la información sobre los procesos que tienen conexiones TCP abiertas dentro del rango de puertos especificado del 1 al 1024. Esto puede resultar útil para identificar qué procesos están utilizando los puertos conocidos asociados con servicios comunes.

Monitorear un puerto específico en tiempo real

Con LSOF, puede monitorear un puerto específico en tiempo real. Por ejemplo, desea monitorear los procesos relacionados con 'HTTP' en el puerto 80, que se actualiza cada 3 segundos. Para hacer esto, monitoree el puerto 80 en tiempo real con el siguiente comando:

$ lsof -i : 80 -r3

Monitoree el puerto SSHD 22 en tiempo real

Para monitorear todas las conexiones SSHD que se ejecutan en el puerto 22, ejecute el siguiente comando:

$ sudo lsof -i : 22 -r3

Este comando monitorea y muestra continuamente información en tiempo real sobre las conexiones de red en el puerto 22 cada 3 segundos. Esto es particularmente útil para rastrear los cambios, como nuevas conexiones o desconexiones SSH, a medida que ocurren en tiempo real.

Monitoree el rango de puertos en tiempo real

Para monitorear la información sobre procesos en tiempo real que tienen conexiones TCP abiertas dentro del rango de puerto especificado de 1 a 1024, puede usar el siguiente comando:

$ lsof -i TCP: 1 - 1024 -r3

Monitoree todos los puertos en tiempo real

Puede monitorear todas las conexiones de red en tiempo real usando el comando LSOF. Por ejemplo, desea ejecutar un seguimiento continuo y mostrar información en tiempo real sobre las conexiones de red cada 5 segundos.

$ lsof -i -r5

El siguiente resultado incluye los detalles sobre los procesos y sus sockets de red asociados en tiempo real cada 5 segundos:

De manera similar, también puedes monitorear solo las conexiones 'establecidas' con el comando LSOF:

$ lsof -i -Y -r10

Conclusión

En este tutorial, aprendimos cómo monitorear los puertos en tiempo real usando el comando LSOF. Este comando también puede ayudar a los administradores del sistema y otros usuarios de Linux a monitorear las conexiones de red, incluidos todos los puertos activos o abiertos. Esperamos que esta guía le ayude a comprender cómo utilizar el comando LSOF con diferentes opciones y monitorear los diferentes puertos y procesos en tiempo real.