Saltar al contenido principal

Módulo 19 — Apéndices y recursos

Material de consulta permanente para acompañar todo el curso: desde la referencia rápida de comandos hasta el camino hacia las certificaciones y los siguientes pasos en tu carrera como administrador Linux.


19.1 — Chuleta de comandos del curso

Por tarea (orientación rápida)

# ¿Dónde está un archivo?
find / -name "nginx.conf" 2>/dev/null # Buscar por nombre
find /etc -name "*.conf" -newer /tmp/ref # Modificados recientemente
locate nginx.conf # Base de datos (más rápido)
which nginx # Ubicación de un ejecutable
type ls # Tipo (builtin, alias, función, binario)

# ¿Qué ocupa el disco?
df -hT # Uso de sistemas de archivos
du -sh /var/* | sort -rh | head -10 # Qué directorio ocupa más
ncdu / # TUI interactivo (ncdu)
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT # Dispositivos de bloque

# ¿Qué hay en este archivo?
file archivo # Tipo de archivo
stat archivo # Metadatos (permisos, tiempos, inode)
xxd archivo | head -4 # Hexadecimal (primeros bytes)
wc -l archivo # Contar líneas

# Buscar contenido en archivos
grep -rn "patron" /etc/nginx/ # Recursivo con número de línea
grep -i "error" /var/log/syslog # Case insensitive
grep -E "(error|warn)" /var/log/syslog # Regex extendida

Las 20 combinaciones más útiles del curso

# 1. Ver qué proceso escucha en un puerto concreto
ss -tlnp | grep :80
lsof -i :80

# 2. Encontrar los archivos más grandes del sistema
find / -type f -size +100M 2>/dev/null | xargs du -sh | sort -rh

# 3. Ver el log del sistema en tiempo real filtrando errores
journalctl -f | grep -i error

# 4. Listar los 10 procesos que más CPU usan en este momento
ps aux --sort=-%cpu | head -11

# 5. Ver todas las conexiones establecidas con sus procesos
ss -tnp state established

# 6. Buscar una cadena de texto en TODOS los archivos de /etc
grep -rn "PermitRootLogin" /etc/ssh/

# 7. Monitorizar el uso de I/O de disco en tiempo real
iostat -xz 1

# 8. Listar los paquetes instalados manualmente (no como dependencia)
apt-mark showmanual | sort

# 9. Ver el espacio usado por subdirectorios de primer nivel
du -sh /* 2>/dev/null | sort -rh | head -15

# 10. Encontrar archivos modificados en las últimas 24 horas
find /etc -mtime -1 -type f 2>/dev/null

# 11. Ver todos los servicios que arrancan en el boot
systemctl list-unit-files --state=enabled

# 12. Verificar si un dominio resuelve correctamente y desde qué NS
dig +trace ejemplo.com

# 13. Mostrar las 20 últimas líneas de un log y seguir en tiempo real
tail -f -n 20 /var/log/nginx/error.log

# 14. Comprimir un directorio con progreso
tar -czf - /var/www | pv > backup.tar.gz

# 15. Verificar la integridad de un archivo ISO descargado
sha256sum -c archivo.iso.sha256

# 16. Ver qué archivos tiene abiertos un proceso por su nombre
lsof -p $(pgrep nginx | head -1)

# 17. Contar errores HTTP 5xx en el log de nginx del día de hoy
awk '$9 >= 500' /var/log/nginx/access.log | wc -l

# 18. Listar todos los usuarios con shell válida (no /nologin ni /false)
getent passwd | awk -F: '$7 !~ /nologin|false/ {print $1, $7}'

# 19. Ver el consumo de memoria de todos los contenedores Docker
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}\t{{.CPUPerc}}"

# 20. Hacer un diff entre la configuración actual y un backup
diff /etc/nginx/nginx.conf /backup/nginx.conf.bak

19.2 — Mapa de certificaciones Linux

LPIC-1 y LPIC-2 (Linux Professional Institute)

El LPI es el organismo de certificación Linux más reconocido internacionalmente y agnóstico respecto a la distribución.

LPIC-1 (Administrador Linux Júnior)
Dos exámenes: 101 y 102

101 — Arquitectura del sistema, comandos básicos, dispositivos, particionado:
✓ Módulo 02 — Instalación y primer contacto
✓ Módulo 04 — Sistema de archivos
✓ Módulo 12 — Almacenamiento avanzado
✓ Módulo 13 — Arranque, kernel y hardware

102 — Shells, scripting, gestión de datos, instalación de software, red:
✓ Módulo 03 — Terminal y shell
✓ Módulo 05 — Archivos y procesamiento de texto
✓ Módulo 08 — Gestión de software
✓ Módulo 10 — Shell scripting Bash
✓ Módulo 11 — Redes en Linux

Áreas de LPIC-1 que requieren estudio adicional:
→ X Window System (el curso es headless/server)
→ Impresoras y CUPS
→ Localización e internacionalización (locale, iconv)

LPIC-2 (Administrador Linux Avanzado)
Dos exámenes: 201 y 202

201 — Kernel, arranque, bloques, LVM, capacidad del sistema:
✓ Módulo 12 — Almacenamiento avanzado (LVM, RAID, LUKS)
✓ Módulo 13 — Arranque, kernel y hardware
✓ Módulo 15 — Monitorización y rendimiento (capacidad)

202 — Servidor de nombres, Samba, proxy, correo, seguridad:
✓ Módulo 17 — Linux como servidor (DNS, DHCP, Samba, correo)
✓ Módulo 14 — Seguridad y hardening

Preparación recomendada:
Libro: "LPIC-1 Study Guide" — Christine Bresnahan (Sybex)
Exámenes de práctica: https://www.lpi.org/training/practice-exams/
Entorno: ¡PRACTICAR en una VM! El examen es muy práctico.

RHCSA y RHCE (Red Hat)

RHCSA (Red Hat Certified System Administrator — EX200):
Examen PRÁCTICO de 3 horas en un terminal. Sin opciones múltiples.
Solo cuentas lo que eres capaz de HACER, no lo que sabes memorizar.

Temario principal y correspondencia con el curso:
✓ Comandos esenciales → Módulos 03, 04, 05
✓ Gestión de usuarios y grupos → Módulo 07
✓ Permisos (estándar + ACL + SELinux) → Módulos 07 y 14
✓ Gestión de paquetes (dnf) → Módulo 08
✓ Almacenamiento (particiones, LVM, VDO) → Módulo 12
✓ Servicios systemd → Módulo 09
✓ Red básica y firewalld → Módulo 11
✓ Contenedores (Podman) → Módulo 16
✓ Arranque y troubleshooting → Módulo 13

Lo que el RHCSA exige que el curso no cubre en detalle:
→ dnf/rpm en RHEL (el curso usa apt): mismos conceptos, distinto comando
→ VDO (Virtual Data Optimizer): deduplicación y compresión de bloques RHEL
→ Stratis: gestor de almacenamiento de RHEL
→ firewalld (el curso usa UFW/nftables): mismo concepto, diferente herramienta

Consejo clave: Hacer el examen en RHEL 9 (no en CentOS/Rocky sin ajustes).
La suscripción de desarrollador de Red Hat es GRATUITA para practicar:
https://developers.redhat.com/register

RHCE (Red Hat Certified Engineer — EX294):
Requiere RHCSA como prerequisito.
El examen consiste en desplegar y gestionar infraestructura con ANSIBLE.
✓ Módulo 18 — Automatización (Ansible es el núcleo del examen)

Para RHCE: dominar completamente el módulo 18, especialmente:
→ Roles de Ansible
→ ansible-vault
→ Inventarios dinámicos
→ Módulos específicos de RHEL (firewalld, selinux, podman)

CompTIA Linux+ y otras certificaciones

CompTIA Linux+ (XK0-005, 2023):
Orientada a administración general, cubre también entornos cloud.
No requiere distribución específica.
Correspondencia: Módulos 03-18 cubren la mayoría del temario.

Diferencias con LPIC-1:
→ CompTIA incluye más contenido de contenedores y cloud
→ LPIC-1 es más profundo en detalles de bajo nivel

Recursos: https://www.comptia.org/certifications/linux

Kubernetes (CKA — Certified Kubernetes Administrator):
Para continuar desde el Módulo 16.
Requiere conocimiento sólido de kubectl, deployments, networking k8s.
Examen 100% práctico (2 horas en un terminal).

LFCS (Linux Foundation Certified System Administrator):
Alternativa a LPIC-1, también examen práctico.
https://training.linuxfoundation.org/certification/linux-foundation-certified-sysadmin-lfcs/

¿Cuál elegir?
→ Empresa que usa RHEL/Fedora/CentOS: RHCSA
→ Empresa agnóstica de distribución: LPIC-1
→ Empresa que busca cloud + containers: CKA
→ Primer paso en general: CompTIA Linux+ (más sencilla de obtener)

19.3 — Laboratorios de integración

Lab 19.1 — Servidor doméstico completo

Este laboratorio integra los Módulos 11, 12, 14, 15, 17 y 18 para construir un servidor doméstico real.

Objetivo: Una sola VM (o un mini-PC) que actúe como:
• Servidor NAS (NFS + Samba)
• Servidor de streaming (Jellyfin)
• DNS local (Pi-hole o dnsmasq)
• Gestor de contraseñas (Vaultwarden / Bitwarden self-hosted)
• Panel de control (Homepage o Dasherr)

Arquitectura recomendada:
Debian 12 (minimal) ← Base del sistema
└── Docker + Compose ← Para los servicios
└── Nginx (instalado) ← Proxy inverso con SSL
└── Let's Encrypt ← Certificado con DNS challenge (para dominio local)
└── UFW ← Firewall
└── restic ← Backups automáticos a un disco USB

Pasos guiados:
1. Instalar Debian 12 minimal en la VM/hardware
2. Aplicar la checklist del Módulo 17 §17.1
3. Configurar almacenamiento LVM (Módulo 12) para datos multimedia
4. Instalar Docker y Compose (Módulo 16)
5. Crear compose.yaml con todos los servicios
6. Configurar nginx como proxy inverso para cada servicio
7. Configurar UFW: solo 80, 443, 22 y los puertos NFS/Samba
8. Programar backups con restic (Módulo 18) a disco externo
9. Monitorizar con node_exporter + Prometheus + Grafana (Módulo 15)

Lab 19.2 — Pipeline DevOps de extremo a extremo

Objetivo: Implementar un pipeline CI/CD completo para una aplicación web.

Stack del laboratorio:
• Gitea (Git self-hosted, en Docker)
• Forgejo Actions o Gitea Actions (CI)
• Docker Registry privado (Registry v2)
• Servidor de producción (segunda VM o contenedor)
• Ansible para el despliegue

Pipeline que se construye:
push → lint (ShellCheck + yamllint) → build imagen → push registro → deploy

Pasos:
1. VM1: Instalar Gitea + Registry (docker compose)
2. VM2: El "servidor de producción" (nginx + la app)
3. Subir el código de la app a Gitea
4. Crear el pipeline de Forgejo Actions:
- Stage lint: ShellCheck y yamllint
- Stage build: docker build + push al Registry privado
- Stage deploy: ansible-playbook deploy.yaml
5. Configurar ansible-vault para los secretos del deploy
6. Añadir monitorización: node_exporter en ambas VMs
7. Configurar alertas: si el despliegue falla → correo (Postfix, Módulo 17)

Lab 19.3 — Endurecer y auditar un servidor expuesto

Objetivo: Tomar un servidor "recién instalado sin hardening" y aplicar
el proceso completo de seguridad del Módulo 14.

Escenario inicial (VM intencionalmente insegura):
• SSH con contraseña habilitado, root login permitido
• MySQL con usuario anónimo
• Nginx sirviendo la versión en los headers
• Sin firewall
• Archivos SUID innecesarios
• Contraseñas en archivos de configuración

Proceso:
1. AUDITORÍA INICIAL:
lynis audit system > /tmp/lynis-before.txt
nmap -sV localhost > /tmp/nmap-before.txt
find / -perm /4000 -type f 2>/dev/null > /tmp/suid-before.txt

2. HARDENING (Módulo 14):
→ SSH: solo clave pública, PermitRootLogin no, AllowUsers limitado
→ MySQL: eliminar usuarios anónimos, cambiar root socket
→ Nginx: server_tokens off, cabeceras de seguridad
→ UFW: solo 22, 80, 443
→ AIDE: inicializar la base de datos
→ fail2ban: proteger SSH

3. AUDITORÍA POST-HARDENING:
lynis audit system > /tmp/lynis-after.txt
diff /tmp/lynis-before.txt /tmp/lynis-after.txt
# Ver la mejora en el Hardening Index

4. AUTOMATIZAR con Ansible:
Convertir todo el proceso en un playbook
para poder aplicarlo a nuevos servidores en < 5 minutos

19.4 — Glosario

TérminoDefiniciónMódulo
ACLAccess Control List — permisos extendidos más allá de rwx07
AppArmorMAC basado en perfiles por aplicación (alternativa a SELinux)14
auditdDaemon del kernel que registra eventos de seguridad14
BIOS / UEFIFirmware que inicializa el hardware antes del sistema operativo13
btrfsSistema de archivos con snapshots, compresión y RAID integrados12
cgroupsControl Groups — limitar CPU, RAM e I/O de grupos de procesos09
CI/CDIntegración y despliegue continuos mediante pipelines automáticos18
DKIMFirma criptográfica de correos con clave del dominio17
DMARCPolítica de autenticación de correo (sobre SPF + DKIM)17
eBPFExtended BPF — programas que corren en el kernel de forma segura15
GRUB2Grand Unified Bootloader 2 — cargador de arranque estándar13
hardeningProceso de reducir la superficie de ataque de un sistema14
inodeEstructura del sistema de archivos que almacena metadatos del archivo04
initramfsSistema de archivos inicial en RAM que monta el root real13
IaCInfrastructure as Code — describir infraestructura en archivos de texto18
journaldDaemon de registro de systemd (sustituto de syslogd)15
KVMKernel-based Virtual Machine — hipervisor integrado en el kernel Linux16
LVMLogical Volume Manager — abstracción flexible sobre particiones físicas12
LUKSLinux Unified Key Setup — cifrado de bloques estándar en Linux12
namespaceAislamiento de recursos del kernel (PID, net, mnt, uts, user)16
nftablesSubsistema de filtrado de paquetes (reemplaza iptables)11
OOM killerOut-Of-Memory killer — el kernel mata procesos cuando la RAM se agota15
OverlayFSSistema de archivos que superpone capas (usado en contenedores Docker)16
perfHerramienta de perfilado del kernel Linux15
PID 1El primer proceso del sistema (systemd o el init del contenedor)09
PrometheusSistema de métricas y alertas orientado a series temporales15
RAIDRedundant Array of Independent Disks — redundancia de almacenamiento12
RPO / RTORecovery Point / Time Objective — métricas de recuperación ante desastres18
SELinuxSecurity-Enhanced Linux — MAC basado en políticas de tipo14
SPFSender Policy Framework — qué IPs pueden enviar correo del dominio17
SSHSecure Shell — protocolo de acceso remoto cifrado11
systemdInit system y gestor de servicios estándar en Linux moderno09
TLSTransport Layer Security — cifrado de comunicaciones en red14
UFWUncomplicated Firewall — frontend de iptables para Debian/Ubuntu11
USE methodUtilización / Saturación / Errores — metodología de análisis de rendimiento15
VLANVirtual LAN — segmentación lógica de una red física11
vmlinuzEl kernel Linux compilado (imagen comprimida)13
XFSSistema de archivos de alto rendimiento, por defecto en RHEL12
ZFSSistema de archivos con integridad de datos garantizada (checksums)12

19.5 — Bibliografía completa del curso

Libros fundamentales

  1. The Linux Command Line, 2ª ed. — William Shotts
    No Starch Press, 2019. Disponible libre en: https://linuxcommand.org/tlcl.php
    La mejor introducción práctica a la línea de comandos. Módulos 03-10.

  2. UNIX and Linux System Administration Handbook, 5ª ed. — Evi Nemeth et al.
    Addison-Wesley, 2017.
    La biblia de la administración de sistemas. Referencia permanente para todos los módulos.

  3. How Linux Works, 3ª ed. — Brian Ward
    No Starch Press, 2021.
    Explica el funcionamiento interno del kernel. Módulos 04, 09, 12, 13.

  4. Systems Performance, 2ª ed. — Brendan Gregg
    Addison-Wesley, 2020.
    El libro de referencia sobre rendimiento de sistemas. Módulo 15.

  5. Linux Kernel Development, 3ª ed. — Robert Love
    Addison-Wesley, 2010.
    Introducción al desarrollo del kernel. Avanzado, para quien quiera ir más lejos.

  6. Container Security — Liz Rice
    O'Reilly, 2020. Disponible libre en: https://containersecurity.tech/
    Namespaces, cgroups y seguridad de contenedores. Módulo 16.

  7. Kubernetes: Up and Running, 3ª ed. — Burns, Beda, Hightower
    O'Reilly, 2022.
    Referencia estándar de Kubernetes. Módulo 16.

  8. Pro Git, 2ª ed. — Scott Chacon, Ben Straub
    Disponible libre en: https://git-scm.com/book/es/v2
    Todo sobre Git. Módulo 18.

  9. Ansible: Up and Running, 3ª ed. — Bas Meijer, Lorin Hochstein, René Moser
    O'Reilly, 2022.
    Referencia de Ansible. Módulo 18.

  10. The Site Reliability Engineering Book — Beyer, Jones, Petoff, Murphy
    O'Reilly, 2016. Disponible libre en: https://sre.google/sre-book/
    La cultura DevOps/SRE desde Google. Módulo 18.

Documentación en línea esencial

Arch Wiki — https://wiki.archlinux.org/
La mejor documentación técnica de Linux, aunque el curso no use Arch.
Aplicable a cualquier distribución. Primer lugar donde buscar.

man7.org — https://man7.org/linux/man-pages/
Las páginas del manual online. Cuando man algo no está instalado.
Michael Kerrisk (autor de "The Linux Programming Interface") las mantiene.

The Linux Documentation Project (TLDP) — https://tldp.org/
HOWTOs, guías y libros clásicos. Algunos están desactualizados,
pero siguen siendo valiosos para conceptos fundamentales.

Kernel documentation — https://www.kernel.org/doc/html/latest/
Documentación oficial del kernel Linux. Técnica, definitiva.

Red Hat documentation — https://access.redhat.com/documentation/
Excelente documentación técnica, aplicable más allá de RHEL.
Sus guías de Ansible y SELinux son referencia.

Debian Reference Manual — https://www.debian.org/doc/manuals/debian-reference/
Guía completa de administración Debian.

Ubuntu Server Guide — https://ubuntu.com/server/docs
Documentación actualizada para Ubuntu Server.

DigitalOcean Tutorials — https://www.digitalocean.com/community/tutorials
Tutoriales prácticos de alta calidad, siempre actualizados.

Comunidades y canales

Foros y comunidades:
• r/linuxadmin (Reddit) — preguntas de administración de nivel medio-avanzado
• r/linux4noobs — para quienes empiezan
• r/selfhosted — servidores domésticos y auto-alojamiento
• Unix & Linux Stack Exchange — https://unix.stackexchange.com/
• Server Fault — https://serverfault.com/ (para sysadmins profesionales)
• LinuxQuestions.org — https://www.linuxquestions.org/

Canales de YouTube recomendados (en inglés):
• LearnLinuxTV — tutoriales prácticos de administración
• NetworkChuck — redes y Linux asequibles
• TechWorldWithNana — Docker, Kubernetes, DevOps
• Fireship — contenido técnico muy condensado
• Christian Lempa — self-hosting y homelab

Podcasts (en inglés):
• Linux Unplugged (Jupiter Broadcasting) — noticias y cultura Linux
• Coder Radio — programación y herramientas de desarrollo
• DevOps and Docker Talk — contenedores y DevOps

Canales en español:
• Pelado Nerd (YouTube) — Docker, Kubernetes, homelab
• Hola Linux (YouTube) — tutoriales de uso de Linux

19.6 — Siguientes pasos: especializaciones

Caminos de especialización desde este curso

ADMINISTRACIÓN DE SISTEMAS / SRE
Este curso → RHCSA → RHCE → CKA → trabajo como SRE/DevOps
Profundizar: Kubernetes avanzado, Terraform, Ansible avanzado,
monitorización (Prometheus/Grafana), gestión de incidentes

SEGURIDAD Y HARDENING
Este curso → CompTIA Security+ → CEH o OSCP → trabajo en ciberseguridad
Profundizar: pentesting con Kali Linux, análisis forense, IDS/IPS,
SIEM (Splunk, Elastic), gestión de vulnerabilidades

DESARROLLO DEL KERNEL Y SISTEMAS EMBEBIDOS
Este curso → "Linux Kernel Development" (Robert Love) →
contribuir al kernel → Yocto Project (Linux embebido)
Profundizar: C, módulos del kernel, device drivers, RTOS

CLOUD NATIVE / DEVOPS
Este curso → CKA → AWS/GCP/Azure → Terraform → ArgoCD/GitOps
Profundizar: microservicios, service mesh (Istio), observabilidad (OpenTelemetry)

REDES Y INFRAESTRUCTURA
Este curso → CCNA → LFCS → trabajo como ingeniero de redes/sistemas
Profundizar: BGP, SD-WAN, VPN, infraestructura como código para redes

DATOS Y MACHINE LEARNING
Este curso → Python + SQL → MLOps → Kubeflow
Linux es el substrato de prácticamente todo el procesamiento de datos a escala.

Proyectos para consolidar el aprendizaje

NIVEL BÁSICO (Módulos 01-10):
□ Configurar un servidor personal con SSH, usuarios y bash scripts
□ Versionar /etc con etckeeper y publicar en Gitea privado
□ Automatizar tareas domésticas con cron (backups, informes)

NIVEL INTERMEDIO (Módulos 11-14):
□ Montar un servidor con Nginx + PostgreSQL + Redis en una VM
□ Implementar todas las medidas del módulo 14 y verificar con Lynis
□ Configurar un firewall nftables con reglas manuales (sin UFW)

NIVEL AVANZADO (Módulos 15-18):
□ Stack de monitorización completo: Prometheus + Grafana + Alertmanager
□ Pipeline CI/CD con Gitea + Docker + Ansible + servidor de producción
□ Cluster Kubernetes de 3 nodos con k3s (3 VMs o Raspberry Pi)

PROYECTO FINAL INTEGRADOR:
□ Infraestructura completa gestionada como código:
- Terraform/OpenTofu crea las VMs
- cloud-init las configura inicialmente
- Ansible aplica el hardening y despliega los servicios
- Git + CI/CD actualiza el código automáticamente
- Prometheus + Grafana monitoriza todo
- restic hace backups cifrados a S3/Backblaze B2
- Toda la configuración está en un repositorio Git privado

Resumen del curso

Has completado 19 módulos que recorren Linux desde sus fundamentos filosóficos hasta la automatización y el ecosistema DevOps moderno. El camino ha sido:

Fundamentos (01-05): Qué es Linux, instalación, terminal, filesystem, texto
Herramientas (06-08): Editores, usuarios/permisos, gestión de software
Sistemas (09-10): Procesos/systemd, shell scripting de producción
Redes (11): TCP/IP, DNS, SSH, firewall
Almacenamiento (12): LVM, RAID, LUKS, ZFS, quotas
Kernel (13): Arranque, módulos, udev, recuperación del sistema
Seguridad (14): DAC/MAC, SELinux, AppArmor, auditd, GPG, TLS
Observabilidad (15): USE method, perf, eBPF, Prometheus, Grafana
Virtualización (16): KVM, namespaces, cgroups, Docker, Kubernetes
Servidor (17): Nginx, HTTPS, bases de datos, NFS, DNS, correo
DevOps (18): Git, Ansible, Terraform, CI/CD, backups, SRE

Linux es el sistema operativo del mundo —en servidores, nube, móviles, supercomputadoras, IoT y satélites. Lo que has aprendido aquí no caduca: las herramientas evolucionan, pero los fundamentos (archivos, procesos, red, seguridad) son los mismos desde hace décadas y lo seguirán siendo.

El siguiente paso es tuyo.


Última actualización: 2024-06
Versión: 1.0
Estado: ✅ Curso completo