Cómo controlar la red desde el terminal con Linux

Cómo controlar la red desde el terminal con Linux

Aunque no todo el mundo hace uso de este tipo de prácticas, la supervisión del estado de su red puede resultar útil en múltiples casos.

Por ejemplo, si de repente notas una actividad sospechosa (e inesperada) de una o varias aplicaciones en tu máquina, con una serie de comandos puedes conocer las aplicaciones que se conectan a tu red para ver si eres víctima de un rootkit o de un malware en general.

O, de nuevo, podría ser útil conocer qué programa utiliza el mayor ancho de Bands de la red. Si eres un desarrollador y estás escribiendo una aplicación que hace uso de Internet, la monitorización también puede ser muy útil para la depuración.

A continuación mostraremos algunos ejemplos de uso típico de cuatro aplicaciones desde la línea de comandos – útil, por tanto, también para el uso a distancia – adecuado para el propósito.

Las aplicaciones marcadas como «monitor» le permitirán controlar el sistema en tiempo real hasta que se aborten manualmente, las marcadas como «instantáneas» volverán como salida una instantánea del estado de la red.

Controlar la red desde el terminal con Linux

Nethogs (Monitor)

Sin duda, una de las herramientas más fáciles de utilizar y especialmente adecuada para los fines previstos: en pocas palabras nethogs permite ver el tráfico de red en tránsito entre aplicaciones que se ejecutan en modo gráfico.

Requiere privilegios de root para su uso.

A través de los nethogs se puede obtener información como el pid del proceso, el usuario que lo ejecuta, el nombre del proceso… (y posiblemente los parámetros) del proceso, la interfaz de red y el velocidad de envío y recepción de datos (en KB/s).

Para proceder, basta con escribir en el terminal el comando

nethogs interfaccia_di_rete

(por ejemplo, nethogs wlan0). Es posible salir del monitor en cualquier momento con la tecla «q».

Es posible que Nethogs no esté instalado por defecto en su sistema operativo: en este caso puede utilizar su gestor de paquetes (apt, dnf, yum, pacman, yaourt o cualquier otro) para proceder a la descarga e instalación.

En el caso de Ubuntu y Debian puedes instalar nethogs con el comando

sudo apt install nethogs

TCPDUMP (Monitor)

TCPDump es, sin duda, una de las aplicaciones más completas y útiles (quizás a veces demasiado) para monitorizar el tráfico de red.

Le permite supervisar, ver, analizar y registrar cualquier cosa que pase por la red, permitiendo al usuario ver las direcciones de llegada y de destino, los puertos de escucha, el desplazamiento de los paquetes, el tipo de paquetes en tránsito, la cabecera (o el contenido completo) de los paquetes, las aplicaciones locales que los manejan y mucho, mucho más.

Como habrás adivinado. tcpdump es especialmente útil para depuración de bajo nivel y requiere permisos de root para funcionar. Un uso básico de tcpdump podría ser

tcpdump -bi interfaccia_di_rete

Si lo desea, puede redirigir la salida a un archivo de texto escribiendo

tcpdump -bi interfaccia_di_rete > logfile.txt

Para detener el escaneo puede utilizar en cualquier momento la tecla Combinación de teclas CTRL+C.

LSOF (Instantánea)

El comando lsof (lista abrir archivo) permite, en su uso básico, obtener una lista de archivos abiertos por el sistema operativo.

Cuando se invoca con el parámetro -i permite obtener información sobre los procesos (nombres y pids) que utilizando la red, en su estado (conexión establecida, cierre, escucha), en el tipo de protocolo IP utilizado (ipv4/v6), en tamaño de los paquetes, en el puertos locales en uso y en eldirección de destino de los paquetes salientes (o la dirección de llegada de los paquetes entrantes).

Por lo tanto, para obtener una lista de todos los procesos de usuario que interactúan con la red, tendrá que escribir:

lsof -i

Para obtener una lista de procesos de usuario que están utilizando la red vamos a escribir

lsof -i | grep ESTABLISHED

Para obtener una lista de los procesos de todos los usuarios (y el sistema operativo) que interactúan con la red tendremos que ejecutar los mismos comandos como root (o usando sudo).

Netstat (instantánea)

El comando netstat, en su uso básico, permite ver varias estadísticas sobre todas las conexiones (tanto en Internet como en el sistema, a través de sockets).

Cuando se refinan con ciertos parámetros será posible mostrar información sobre el uso de la red similar a la que muestra lsof, más el enviar y recibir paquetes.

Por lo tanto, para obtener una lista de todos los procesos de usuario que interactúan con la red, tendrá que escribir:

netstat -tuapw --numeric-hosts --numeric-ports

Para obtener una lista de procesos de usuario que están utilizando la red tendrá que escribir

netstat -tuapw --numeric-hosts --numeric-ports | grep ESTABLISHED

Por supuesto, puede guardar la salida del comando en un archivo simplemente utilizando el operador de redirección:

netstat -tuapw --numeric-hosts --numeric-ports | grep ESTABLISHED > log.txt

Para obtener una lista de los procesos de todos los usuarios (y el sistema operativo) que interactúan con la red será suficiente ejecutar los mismos comandos como root (o usando sudo).