La depuración de red en sistemas Linux es un componente esencial de la
administración de servidores y la seguridad, ya que cada interacción de red puede ser
una puerta de entrada para problemas o ataques [Previous Turn]. Para garantizar la
privacidad e integridad de los datos de los usuarios, un administrador debe establecer y
mantener políticas de seguridad robustas tanto a nivel del servidor como de la red
corporativa.
Para comprender y solucionar problemas de red, es fundamental conocer tanto los
conceptos subyacentes como las herramientas de línea de comandos disponibles.
1. Conceptos Fundamentales de Red en Linux
El sistema operativo Linux gestiona las comunicaciones de red a un nivel profundo,
comenzando por el núcleo.
Núcleo (Kernel) y Capa Abstracta de Red: Los cortafuegos en Linux operan
directamente en el nivel del núcleo (kernel) del sistema [Previous Turn]. El
núcleo incluye una capa abstracta, el "Gestor de redes", que permite el acceso
general a la red informática, independientemente del tipo de dispositivos o la
arquitectura de la red. Esto significa que el sistema puede interactuar con la red
de manera uniforme.
Parámetros del Núcleo: Ciertos comportamientos de red del sistema son
controlados por parámetros del núcleo. Por ejemplo, la capacidad de reenviar
paquetes para crear cortafuegos se activa modificando el parámetro
net.ipv4.ip_forward [Previous Turn, 85]. Estos parámetros pueden
configurarse en el archivo /etc/sysctl.conf [Previous Turn, 86] y están
disponibles en /proc/sys/net, que contiene parámetros de conexión para
diferentes tipos de redes (IPv4, IPv6, Token Ring, loopback).
Interfaces de Red: Para que un ordenador se conecte a una subred, necesita un
dispositivo, una "tarjeta de red". En Linux, el acceso a la red se normaliza a
través de "interfaces de red".
o Linux asigna una nomenclatura a cada tipo de interfaz de red, como lo
(interfaz virtual de loopback para pruebas), eth (Ethernet cableada),
wlan (Ethernet inalámbrica), tun (túnel VPN), bridge (para máquinas
virtuales) y hdi (Bluetooth).
o Cada dispositivo de red tiene una dirección física única (dirección MAC)
y necesita parámetros de conexión como la dirección IP, la máscara de
red, la dirección de difusión, el nombre del nodo y del dominio, y las
direcciones de los servidores DNS. Estos parámetros pueden establecerse
manualmente o ser asignados automáticamente por un servidor DHCP.
Protocolos de Red: La comunicación en red se rige por protocolos.
o El curso se centra en redes Ethernet con protocolos TCP/IP, los más
usados para conexión a Internet y redes privadas.
o La capa de transporte (Nivel 4 OSI) incluye el Protocolo para el
Control de la Transmisión (TCP), que ofrece comunicación síncrona y
segura con recuperación de datos, y el Protocolo de Datagramas del
Usuario (UDP), que permite comunicación asíncrona basada en
datagramas.
o Internet Protocol (IP), implementado en IPv4 (32 bits) e IPv6 (128
bits), proporciona un esquema de direccionamiento globalmente único
para el enrutamiento de paquetes entre diferentes redes.
o Puertos: Los servicios de red utilizan "puertos", que son puntos de
anclaje a los protocolos TCP o UDP.
Enrutamiento: El enrutamiento es el proceso por el cual un paquete se mueve
de una red de origen a una de destino. Los enrutadores conectan redes de capa de
enlace, y cada dispositivo mantiene una tabla de enrutamiento con información
sobre cómo acceder a otras redes o a qué enrutador pasar los paquetes. Cada
enrutador en el camino de un paquete se denomina "hop".
Sockets: Para la entrada/salida de red, se emplean los Sockets de Berkeley, que
una vez abiertos, se tratan como un fichero.
2. Herramientas de Línea de Comandos para Diagnóstico de Red
Linux ofrece una serie de comandos esenciales para inspeccionar y diagnosticar la
configuración y el estado de la red.
ifconfig: Esta herramienta permite ver la configuración de red. Se puede usar
para encender o apagar adaptadores de red (ej. ifconfig eth0 up,
ifconfig eth0 down).
ip addr show: Permite enumerar las interfaces de red y sus direcciones
MAC. Es una alternativa más moderna a ifconfig.
route / ip route show:
o route: Permite mostrar y modificar la tabla de enrutamiento
residente en el kernel. Ofrece opciones para mostrar en formato
numérico (-n), resolviendo las direcciones (-e), y para añadir (add) o
eliminar (del) rutas.
o ip route show: Proporciona una vista de la tabla de enrutamiento.
netstat / ss: Ambas herramientas están listadas entre las utilidades clave para
la red. Aunque las fuentes no proporcionan descripciones detalladas de su uso
específico, su inclusión sugiere su importancia para mostrar conexiones de red,
tablas de enrutamiento, estadísticas de interfaz, etc.
ping: Es un comando fundamental para verificar la conectividad básica.
Realiza una solicitud de eco (echo request) a una dirección IP o nombre de
equipo especificado.
tracert (o traceroute): Esta herramienta es útil para visualizar la ruta que
sigue un paquete hasta llegar a su destino, mostrando todos los enrutadores
(hops) por los que pasa.
host: Listado como una utilidad de red. Se utiliza comúnmente para realizar
consultas DNS y resolver nombres de dominio a direcciones IP (y viceversa).
telnet: Aunque listado como comando de red, su descripción específica en las
fuentes no detalla su uso para depuración, pero tradicionalmente se usa para
probar la conectividad a puertos específicos de servicios remotos.
wget: Permite recuperar contenido y archivos de un servidor web. Útil para
probar la disponibilidad de recursos web.
3. Herramientas y Configuraciones para Control de Acceso y Seguridad
(Depuración Indirecta)
Un firewall bien configurado es crucial para la seguridad, y su estado es vital al depurar
problemas de conectividad.
iptables: Es una herramienta poderosa para configurar las reglas de acceso
del cortafuegos [Previous Turn, 129]. Permite especificar qué tipo de tráfico
(TCP o UDP) y en qué puertos se permite o deniega el acceso (ej. iptables -I
INPUT -m multiport -p tcp --dport 111,662,875,892,2049,32803 -j
ACCEPT) [Previous Turn, 129].
ufw (Uncomplicated Firewall): Es un script que gestiona el cortafuegos del
núcleo en distribuciones como Ubuntu [Previous Turn]. Su estado y operación
se controlan mediante comandos systemctl (ej. sudo systemctl status ufw,
start, stop, restart, reload, enable, disable) [Previous Turn].
lsof (List Open Files): Esta es una herramienta potente para la administración,
ya que lista los ficheros y las conexiones de red abiertos por cada proceso. Se
utiliza para revisar las conexiones de red de cada servicio y detectar procesos
sospechosos.
Ficheros de Configuración de Red: La revisión de estos archivos es
fundamental para la depuración:
o /etc/hosts: Se usa para resolver nombres de hosts que no pueden ser
resueltos de otro modo.
o /etc/resolv.conf: Especifica las direcciones de los servidores DNS.
o /etc/services: Indica el protocolo y el puerto utilizados por cada
servicio de comunicaciones. Este archivo no debe modificarse
manualmente.
o /etc/hosts.deny y /etc/hosts.allow: Permiten indicar
explícitamente qué equipos están denegados o autorizados para
conectarse a varios servicios de red.
o /etc/sysconfig/network: Utilizado en CentOS y Fedora para
establecer valores de variables básicas de red (nombre, dominio, router).
o /etc/sysconfig/network-script/ifcfg-nombre-interfaz:
Proporciona información específica de una interfaz de red determinada.
4. Gestión de Registros y Eventos del Sistema (Diagnóstico Esencial)
Los registros del sistema son una fuente invaluable de información para la depuración
de red, ya que documentan eventos y errores que pueden indicar problemas de
conectividad o seguridad.
Importancia de los Registros: La capacidad de resolución de problemas y la
seguridad dependen de tener una forma estandarizada y centralizada de realizar
un seguimiento de los eventos del sistema. Los registros también son una
fuente fiable para comprender las estadísticas del sistema y predecir tendencias.
Ubicación: La mayoría de los archivos de registro (logs) se almacenan en el
directorio /var/log. Sus nombres a menudo dan pistas sobre su contenido (ej.
kern.log, auth.log).
Servicios de Registro Tradicionales: syslog, syslog-ng o rsyslog son
demonios que tradicionalmente recopilan mensajes de otros servicios o
programas y los almacenan. Algunos servicios (ej. Apache HTTPD) gestionan
sus propios registros.
Kernel Ring Buffer: El kernel de Linux utiliza una estructura de datos en
memoria llamada "kernel ring buffer" para almacenar sus mensajes de registro
de arranque, con los mensajes más antiguos desapareciendo con el tiempo. Se
pueden consultar con el comando dmesg.
systemd y journald: En las distribuciones modernas, systemd ha reemplazado
a SysV init como el administrador de sistema y servicio. journald es el servicio
de registro estándar asociado con systemd.
journalctl: Es la utilidad necesaria para leer el diario de systemd.
logrotate: Para evitar que los archivos de registro consuman todo el espacio en
disco, la utilidad logrotate realiza la rotación de registros, que implica
mover, archivar, comprimir y eventualmente eliminar archivos de registro
antiguos.
La combinación de un conocimiento sólido de estos conceptos y el dominio de estas
herramientas de línea de comandos proporciona al administrador un arsenal completo
para la depuración y el mantenimiento de la red en entornos Linux.