DÍA 07: El Navegante de la Red

LinuxBeginner
Practicar Ahora

Introducción

¡Bienvenido, Navegante de la Red! Acabas de ser contratado como Administrador de Sistemas Junior en una startup tecnológica de rápido crecimiento. Esta mañana, un servidor web crítico se ha caído. Los usuarios informan que no pueden acceder al portal interno de la empresa.

Tu administrador senior está ocupado en una reunión y te ha encargado el diagnóstico inicial. ¡Es tu momento de brillar! Tu misión es investigar sistemáticamente el estado de la red del servidor, identificar la causa raíz y restaurar la conectividad. ¡Pongamos este servidor de nuevo en línea!

Aviso Importante
Los próximos desafíos pueden exceder el alcance del curso Quick Start with Linux.
Si encuentras dificultades durante el desafío:
  1. Salta temporalmente el desafío y continúa con los laboratorios guiados posteriores en la ruta de aprendizaje de Linux.
  2. Consulta con Labby o revisa la solución.

Comprobación del estado de la interfaz de red

Tu primer paso como Navegante de la Red es recopilar información básica. ¿Está el hardware de red siquiera reconocido y activo? Necesitas verificar el estado de todas las interfaces de red en el servidor. La herramienta moderna para este trabajo es el comando ip.

Tareas

  • Utiliza el comando ip para mostrar el estado y la configuración de todas las interfaces de red.

Requisitos

  • Debes usar el comando ip addr para realizar esta comprobación.

Ejemplos

Después de ejecutar el comando, deberías ver una salida que muestra interfaces de red como lo (loopback) y eth0 (o similar). Busca el estado de tu interfaz principal; debería mostrar UP para indicar que está activa.

## Expected output format (interface names may vary)
1: lo: 65536 qdisc noqueue state UNKNOWN group default qlen 1000 < LOOPBACK,UP,LOWER_UP > mtu
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: 1500 qdisc mq state UP group default qlen 1000 < BROADCAST,MULTICAST,UP,LOWER_UP > mtu
link/ether 00:16:3e:04:b0:40 brd ff:ff:ff:ff:ff:ff
inet 172.16.50.108/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159216sec preferred_lft 1892159216sec

Pistas

  • El comando ip es una herramienta potente con muchos subcomandos. El encargado de gestionar las direcciones es addr.
  • Puedes usar ip addr show o su alias más corto ip addr.

Verificación de la configuración de la dirección IP

Bien, la interfaz está en estado UP. Es un buen comienzo. Pero, ¿tiene una dirección IP? Una interfaz sin dirección IP no puede comunicarse en la red. Aunque ip addr muestra esto, usemos otro comando clásico, ifconfig, para realizar una doble comprobación. Es útil conocer múltiples herramientas para la misma tarea.

Tareas

  • Utiliza el comando ifconfig para verificar la configuración de la dirección IP.

Requisitos

  • Debes usar el comando ifconfig.

Ejemplos

La salida debería mostrar tus interfaces de red con sus respectivas direcciones IP. Busca el campo inet bajo tu interfaz de red principal (como eth0) para confirmar la configuración IP.

## Expected output showing IP configuration
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.50.108  netmask 255.255.255.0  broadcast 172.16.50.255
        ether 00:16:3e:04:b0:40  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0

Pistas

  • El comando ifconfig forma parte del paquete net-tools, que ya hemos instalado para ti.
  • Ejecutar ifconfig sin argumentos mostrará todas las interfaces activas.

Prueba de conectividad con hosts remotos

El servidor tiene una interfaz activa y una dirección IP. El siguiente paso lógico es comprobar si puede alcanzar el mundo exterior. Un fallo aquí podría indicar un problema con la puerta de enlace (gateway) o la configuración de DNS. El comando ping es la herramienta perfecta para esta prueba.

Tareas

  • Prueba la conectividad del servidor a Internet enviando exactamente 3 paquetes ICMP al servidor DNS público de Google en 8.8.8.8.

Requisitos

  • Debes usar el comando ping.
  • Debes limitar el número de paquetes enviados a 3.
  • La dirección IP de destino debe ser 8.8.8.8.

Ejemplos

Si la conectividad funciona, deberías ver respuestas de la dirección IP de destino con información sobre el tiempo de respuesta. El resumen al final debería mostrar 3 paquetes transmitidos y 3 paquetes recibidos con un 0% de pérdida de paquetes.

## Expected successful output pattern
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=4.33 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=4.30 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=4.30 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 4.298/4.309/4.329/0.014 ms

Pistas

  • El comando ping se ejecutará indefinidamente a menos que le indiques que se detenga.
  • Utiliza la opción -c para especificar el recuento (count) de paquetes a enviar.

Inspección de puertos de red abiertos

¡La conectividad es buena! Entonces, ¿por qué el portal interno sigue siendo inaccesible? El problema podría estar en la propia aplicación. ¿Está el proceso del servidor web realmente ejecutándose y escuchando conexiones en el puerto correcto? El comando ss (socket statistics) es una herramienta moderna y rápida para investigar esto.

Tareas

  • Se supone que el portal interno se ejecuta en el puerto 8000. Utiliza el comando ss para comprobar si algún proceso está escuchando conexiones TCP en el puerto 8000.

Requisitos

  • Debes usar el comando ss.
  • Tu comando debe estar construido para mostrar sockets TCP en estado de escucha (listening).

Ejemplos

Si un proceso está escuchando en el puerto 8000, deberías ver una salida que contenga información sobre el socket de escucha. Busca una línea que muestre el puerto 8000 en la columna Local Address.

## Expected output showing a listening process on port 8000
LISTEN 0      5            0.0.0.0:8000       0.0.0.0:*    users:(("python3",pid=3765,fd=3))

Pistas

  • El comando ss tiene varios modificadores útiles:
    • -t: Muestra sockets TCP.
    • -l: Muestra sockets en escucha (listening).
    • -n: Muestra números de puerto numéricos en lugar de nombres de servicio.
    • -p: Muestra el proceso que utiliza el socket.
  • Puedes combinar estos modificadores, como ss -tlnp.
  • Para encontrar un puerto específico, puedes redirigir la salida de ss al comando grep. Por ejemplo: ss -tlnp | grep 8000.

Configuración de reglas básicas de firewall

Has confirmado todo: la interfaz está activa, la IP está configurada, la conectividad a Internet funciona y la aplicación escucha en el puerto correcto. Solo queda un sospechoso principal: el firewall. Es probable que esté bloqueando el tráfico entrante al portal. Tu tarea final es configurar el firewall para denegar el acceso al portal. Usaremos ufw (Uncomplicated Firewall), una interfaz amigable para gestionar reglas de firewall.

Tareas

  1. Añade una regla de firewall para denegar el tráfico entrante en el puerto 8000.
  2. Añade una regla de firewall para permitir el tráfico SSH entrante (puerto 22).
  3. Habilita el firewall para aplicar las nuevas reglas.

Requisitos

  • Debes usar el comando ufw para todas las operaciones.
  • Debes usar sudo porque modificar las reglas del firewall requiere privilegios de administrador.

Ejemplos

Después de configurar las reglas del firewall, al ejecutar sudo ufw status debería mostrarse que el firewall está activo con el puerto 8000 denegado y el SSH (puerto 22) permitido.

## Expected output after enabling firewall with port 8000 denied and SSH allowed
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
8000                       DENY        Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
8000 (v6)                  DENY        Anywhere (v6)

Al añadir la regla, deberías ver:

Rules updated
Rules updated (v6)

Al habilitar el firewall, deberías ver:

Firewall is active and enabled on system startup

Pistas

  • La sintaxis de ufw es muy directa. Para denegar tráfico en un puerto, usa ufw deny <puerto>.
  • Puedes denegar el tráfico en el puerto 8000 usando ufw deny 8000.
  • Puedes permitir específicamente el tráfico SSH usando ufw allow ssh o ufw allow 22.
  • Advertencia Crítica: Si no abres correctamente el puerto SSH (22), la verificación fallará porque depende de este puerto para la conectividad SSH.
  • Advertencia Importante: No modifiques arbitrariamente las reglas del firewall para otros puertos, ya que esto podría causar fallos en la máquina virtual en línea.
  • Después de añadir tus reglas, debes habilitar el firewall con ufw enable.

Resumen

¡Excelente trabajo, Navegante! Al comprobar sistemáticamente las interfaces de red, verificar la configuración IP, probar la conectividad, inspeccionar los puertos abiertos y, finalmente, configurar el firewall, has diagnosticado y resuelto el problema con éxito. El portal interno está ahora de nuevo en línea y te has ganado el respeto de tu equipo.

Has demostrado un sólido dominio de las herramientas fundamentales de red en Linux como ip, ifconfig, ping, ss y ufw. Este proceso lógico de resolución de problemas paso a paso es una habilidad crítica para cualquier administrador de sistemas y será invaluable en tu carrera. ¡Sigue perfeccionando tus habilidades!

✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar