Monitoreo de red en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este laboratorio se centra en la monitorización de redes en Linux utilizando la herramienta de línea de comandos netstat. La monitorización de redes es esencial para los administradores de sistemas para comprender las conexiones, los servicios y los patrones de tráfico en sus sistemas.

A lo largo de este laboratorio, aprenderá cómo utilizar la utilidad netstat para mostrar las conexiones de red activas, los servicios en escucha y las estadísticas de las interfaces de red. Estas habilidades son fundamentales para solucionar problemas de red, monitorear el rendimiento del sistema y garantizar la seguridad de la red.

Al final de este laboratorio, podrá utilizar eficazmente netstat para obtener información sobre las actividades de red en un sistema Linux, lo cual es una habilidad valiosa para cualquier administrador de sistemas o profesional de TI.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") subgraph Lab Skills linux/cat -.-> lab-271343{{"Monitoreo de red en Linux"}} linux/cd -.-> lab-271343{{"Monitoreo de red en Linux"}} linux/netstat -.-> lab-271343{{"Monitoreo de red en Linux"}} end

Comprender las conexiones de red con netstat

El comando netstat es una poderosa utilidad de red que muestra conexiones de red, tablas de enrutamiento, estadísticas de interfaces y más. En este paso, aprenderá cómo utilizar netstat para ver las conexiones de red activas.

Primero, naveguemos hasta el directorio del proyecto donde trabajaremos:

cd /home/labex/project

¿Qué es netstat?

El comando netstat (estadísticas de red) muestra varios tipos de información relacionada con la red, como conexiones de red, tablas de enrutamiento, estadísticas de interfaces y más. Es una herramienta valiosa para comprender las actividades de red de su sistema.

Ver conexiones activas

Ejecutemos el comando netstat con opciones específicas para mostrar las conexiones TCP activas:

netstat -nat > connections.txt

En este comando:

  • -n muestra las direcciones y números de puerto en forma numérica en lugar de resolverlos a nombres de host o nombres de servicio
  • -a muestra todos los sockets (tanto los en escucha como los que no lo están)
  • -t muestra solo las conexiones TCP
  • > connections.txt redirige la salida a un archivo llamado connections.txt

Ahora veamos el contenido del archivo que creamos:

cat connections.txt

La salida debería ser similar a esta:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

Comprender la salida

  • Proto: El protocolo utilizado (TCP en este caso)
  • Recv-Q: La cantidad de bytes no copiados por el programa de usuario conectado a este socket
  • Send-Q: La cantidad de bytes no reconocidos por el host remoto
  • Local Address: La dirección y el número de puerto del extremo local del socket
  • Foreign Address: La dirección y el número de puerto del extremo remoto del socket
  • State: El estado del socket (LISTEN, ESTABLISHED, etc.)

El estado LISTEN indica que el servicio está en ejecución y esperando conexiones entrantes en ese puerto específico.

Monitorear servicios en escucha

En este paso, aprenderá cómo identificar qué servicios están esperando conexiones en su sistema. Esta información es crucial para la auditoría de seguridad y la resolución de problemas relacionados con la red.

Identificar servicios en escucha

Utilicemos el comando netstat para buscar específicamente servicios que estén en el estado LISTEN:

netstat -natu | grep LISTEN > listening_services.txt

En este comando:

  • -n muestra direcciones numéricas
  • -a muestra todos los sockets
  • -t incluye conexiones TCP
  • -u incluye conexiones UDP
  • | grep LISTEN filtra la salida para mostrar solo las líneas que contengan "LISTEN"
  • > listening_services.txt guarda la salida en un archivo

Ahora examinemos el contenido del archivo:

cat listening_services.txt

Debería ver una salida similar a esta:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

Comprender los servicios en escucha

Cada línea de la salida representa un servicio que actualmente está aceptando conexiones:

  • Los servicios que escuchan en 0.0.0.0 están aceptando conexiones desde cualquier interfaz de red
  • Los servicios que escuchan en 127.0.0.1 solo están aceptando conexiones desde la máquina local
  • Los servicios que escuchan en ::: son direcciones IPv6 que aceptan conexiones desde cualquier interfaz de red

Los números de puerto (como 22 para el servicio SSH o 631 para el servicio de impresión CUPS) identifican qué servicio está escuchando. Por ejemplo:

  • Puerto 22: Servicio SSH
  • Puerto 80: Servicio HTTP (web)
  • Puerto 443: Servicio HTTPS
  • Puerto 631: Servicio de impresión CUPS

Esta información le ayuda a entender qué servicios están expuestos en su sistema, lo cual es valioso para las evaluaciones de seguridad y la resolución de problemas.

Analizar estadísticas de interfaces de red

En este paso, aprenderá cómo ver las estadísticas de sus interfaces de red. Estas estadísticas proporcionan información valiosa sobre el rendimiento y el uso de sus interfaces de red.

Ver estadísticas de interfaces

Utilicemos netstat para mostrar las estadísticas de todas las interfaces de red:

netstat -i > interface_stats.txt

En este comando:

  • -i muestra una tabla de todas las interfaces de red
  • > interface_stats.txt guarda la salida en un archivo

Ahora examinemos el contenido del archivo:

cat interface_stats.txt

Debería ver una salida similar a esta:

Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0      1500   123456      0      0 0        98765      0      0      0 BMRU
lo       65536     789      0      0 0          789      0      0      0 LRU

Comprender las estadísticas de interfaces de red

La salida proporciona estadísticas importantes sobre cada interfaz de red:

  • Iface: El nombre de la interfaz de red

    • eth0: Típicamente, la primera interfaz Ethernet
    • lo: La interfaz de bucle invertido (loopback) utilizada para conexiones locales
  • MTU: Unidad de Transmisión Máxima (Maximum Transmission Unit) - el tamaño máximo de paquete que se puede transmitir

    • La Ethernet estándar suele utilizar 1500 bytes
    • La interfaz de bucle invertido suele tener un MTU mayor (65536)
  • RX-OK: Número de paquetes recibidos sin errores

  • RX-ERR: Número de paquetes recibidos con errores

  • RX-DRP: Número de paquetes recibidos descartados

  • RX-OVR: Número de desbordamientos de paquetes recibidos

  • TX-OK: Número de paquetes transmitidos sin errores

  • TX-ERR: Número de paquetes transmitidos con errores

  • TX-DRP: Número de paquetes transmitidos descartados

  • TX-OVR: Número de desbordamientos de paquetes transmitidos

  • Flg: Indicadores que muestran el estado de la interfaz

    • B: Dirección de difusión (broadcast) configurada
    • M: Multidifusión (multicast) habilitada
    • R: La interfaz está en funcionamiento
    • U: La interfaz está activa

Estas estadísticas le ayudan a monitorear el rendimiento de la red e identificar posibles problemas, como pérdida de paquetes o errores de transmisión.

Comandos adicionales para estadísticas de red

Para obtener una vista más completa de las estadísticas de red, también puede utilizar:

netstat -s | head -20 > protocol_stats.txt

Este comando muestra las estadísticas de protocolos para TCP, UDP, IP, ICMP y otros protocolos. Estamos utilizando head -20 para limitar la salida a las primeras 20 líneas para facilitar la lectura.

Veamos este archivo:

cat protocol_stats.txt

Esto proporciona estadísticas detalladas sobre el rendimiento de cada protocolo, lo que le ayuda a identificar posibles problemas de red a nivel de protocolo.

Resumen

En este laboratorio, has aprendido cómo utilizar el comando netstat para monitorear diversos aspectos de la actividad de red en un sistema Linux. Las habilidades clave que has adquirido incluyen:

  1. Ver conexiones de red activas para entender qué conexiones están establecidas en tu sistema.

  2. Identificar servicios en escucha para determinar qué puertos están abiertos y potencialmente expuestos a la red.

  3. Analizar estadísticas de interfaces de red para monitorear el rendimiento y la salud de tus interfaces de red.

Estas habilidades son esenciales para administradores de sistemas, ingenieros de red y profesionales de seguridad que necesitan entender y solucionar problemas relacionados con la red. El comando netstat proporciona información valiosa sobre las actividades de red de tu sistema, ayudándote a mantener un rendimiento y una seguridad óptimos.

Si bien netstat se considera obsoleto en muchas distribuciones Linux modernas y está siendo reemplazado por herramientas como ss e ip, entender netstat proporciona una base sólida para los conceptos de monitoreo de red que se aplican a todas estas herramientas.