saltar al contenido
volver al mapa
técnica
etapa: foundations
2 min de lectura

Fundamentos de Linux y redes

Los contenedores, las nubes y los pipelines corren sobre Linux y se comunican por TCP/IP. Cuando algo falla a las 3 de la madrugada, estos fundamentos son lo que te permite descubrir por qué.

systemd / journalctlss and curldigstracetcpdumpopenssl s_client

Lo que necesitas saber

  • Procesos y señales: todo programa es un proceso con un usuario, un padre y un estado; SIGTERM le pide que se detenga, SIGKILL lo fuerza.
  • Archivos y permisos: propietario, grupo y bits de modo deciden quién puede leer, escribir o ejecutar; el principio de empieza aquí.
  • Servicios: systemd inicia, reinicia y registra en logs los programas de larga duración; journalctl lee esos logs.
  • La pila de red: una dirección IP identifica un host, un puerto identifica un servicio, TCP ofrece streams confiables, UDP ofrece datagramas.
  • DNS convierte nombres en direcciones, y la mayoría de las caídas misteriosas son de DNS, certificados u hora.
  • TLS envuelve una conexión para que esté cifrada y el servidor se autentique mediante una cadena de certificados.

Una rutina de depuración

Ve de afuera hacia adentro: el nombre resuelve, el puerto es alcanzable, el servicio está escuchando, el certificado es válido, qué dicen los logs.

triage.shbash
dig +short api.example.com                      # ¿el nombre resuelve, y a qué?
curl -sv --max-time 5 https://api.example.com/health   # conexión, TLS y HTTP de una vez
ss -ltnp | grep :8080                           # ¿hay algo escuchando en este host?
systemctl status myapp --no-pager               # ¿el servicio está corriendo?
journalctl -u myapp --since "10 min ago" -n 100 # ¿qué dijo?
openssl s_client -connect api.example.com:443 -servername api.example.com </dev/null 2>/dev/null | openssl x509 -noout -dates

Permisos y una unit de servicio

Un servicio debe correr como su propio usuario sin privilegios, con solo el acceso que necesita. systemd puede imponer buena parte de eso por ti.

/etc/systemd/system/myapp.serviceini
[Unit]
Description=My app
After=network-online.target

[Service]
User=myapp
Group=myapp
ExecStart=/opt/myapp/bin/myapp
Restart=on-failure
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/myapp

[Install]
WantedBy=multi-user.target

Hábitos

  • Aprende a leer antes de cambiar: primero logs, estado y métricas, después las ediciones.
  • Nunca corras un servicio como root si no lo necesita.
  • Mantén los relojes sincronizados (NTP): los tokens y certificados expirados suelen ser un problema de reloj.
  • Anota los comandos que funcionaron. Un runbook empieza como un historial del shell.
Mínimo privilegioleast privilegePrincipio de darle a cada identidad solo los permisos estrictamente necesarios para su función, y nada más. Es lo opuesto a 'usuario admin por defecto': cada rol extra es un camino más que un atacante puede usar después de un compromiso.ver en el glosario →

conexiones en el mapa

actualizado el 14/10/2026 · fuentes para profundizar · reportar un error

Desbloquea

pon a prueba lo que entendiste

Cargando preguntas…