# Bloque 4 · Tema 1
# Administración del sistema operativo y software de base. Actualización, mantenimiento y reparación del sistema operativo.

# 1. Sistema operativo y software de base

## 1.1. Definición y funciones del sistema operativo

El **sistema operativo (SO)** es el conjunto de programas que actúa de intermediario entre el usuario y el hardware, gestionando todos los recursos del equipo.

**Funciones principales:**

| Función | Descripción |
|---|---|
| Gestión de procesos | Crea, planifica y termina procesos; asigna tiempo de CPU |
| Gestión de memoria | Asigna y libera RAM; gestiona memoria virtual y paginación |
| Gestión de E/S | Controla periféricos mediante drivers |
| Sistema de ficheros | Organiza y almacena datos en disco (NTFS, ext4, FAT32) |
| Seguridad y accesos | Autenticación, permisos y control de usuarios |
| Interfaz con el usuario | CLI (línea de comandos) y GUI (interfaz gráfica) |

**Conceptos clave para el examen:**

| Término | Definición |
|---|---|
| Kernel | Núcleo del SO; parte que interactúa directamente con el hardware |
| Proceso | Programa en ejecución con sus recursos asociados |
| Hilo (thread) | Unidad mínima de ejecución dentro de un proceso |
| Memoria virtual | Extensión de la RAM usando espacio en disco (paginación / swap) |
| Llamada al sistema | Mecanismo por el que un programa solicita servicios al SO |
| Sistema de archivos | Estructura que organiza datos en disco: NTFS, ext4, FAT32 |

---

## 1.2. Tipos de kernel

| Tipo | Descripción | Ejemplo |
|---|---|---|
| Monolítico | Todo el SO en un bloque en espacio kernel; rápido | Linux |
| Microkernel | Solo servicios mínimos en kernel; el resto en espacio usuario; más seguro | Minix, QNX |
| Híbrido | Combinación: kernel compacto con algunos servicios en espacio kernel | Windows NT, macOS XNU |
| Exokernel | Mínima abstracción; mayor control al programador | Investigación |

---

## 1.3. Software de base y proceso de arranque

**Software de base:** conjunto imprescindible para que el equipo funcione.

| Componente | Función |
|---|---|
| Sistema operativo | Gestiona hardware y ejecuta aplicaciones |
| Controladores (drivers) | Permiten al SO comunicarse con cada dispositivo hardware |
| Firmware (BIOS/UEFI) | Inicializa el hardware en el arranque y carga el bootloader |
| Utilidades del sistema | Herramientas de diagnóstico, monitorización y administración |

**Proceso de arranque (boot):**

| Paso | Descripción |
|---|---|
| 1. Power-on → BIOS/UEFI | El firmware inicializa el hardware |
| 2. POST | Power-On Self Test: comprueba CPU, RAM y dispositivos |
| 3. Bootloader | GRUB (Linux) o BCD/bootmgr (Windows) carga el kernel |
| 4. Carga del kernel | El kernel se carga en memoria y toma el control |
| 5. Init / systemd | Linux: inicia systemd; Windows: inicia smss.exe → winlogon.exe |
| 6. Login | Se presenta la pantalla de inicio de sesión al usuario |

**Diferencia BIOS vs UEFI:**

| | BIOS | UEFI |
|---|---|---|
| Tabla de particiones | MBR (máx. 2 TB, 4 particiones primarias) | GPT (máx. 9,4 ZB, 128 particiones) |
| Interfaz | Texto | Gráfica |
| Arranque seguro | No | Secure Boot (sí) |
| Velocidad de arranque | Más lento | Más rápido |

---

## 1.4. Sistemas de ficheros

El **sistema de ficheros** define cómo se organizan y almacenan los datos en disco.

**Sistemas de ficheros Windows:**

| Sistema | Tamaño máx. fichero | Permisos | Journaling | Notas |
|---|---|---|---|---|
| FAT32 | 4 GB | No | No | Compatibilidad universal; pendrives; máx. partición 2 TB |
| exFAT | Sin límite práctico | No | No | USB/SD modernos; no journaling |
| NTFS | 16 TB (teórico 16 EB) | Sí (ACLs) | Sí | Estándar Windows; cifrado EFS; compresión; cuotas |
| ReFS | 35 PB | Sí | Sí (CoW) | Resiliencia; Storage Spaces; no arranca |

**Sistemas de ficheros Linux:**

| Sistema | Tamaño máx. fichero | Uso típico | Características |
|---|---|---|---|
| ext4 | 16 TB | Estándar Linux | Journaling, extents, retrocompatible ext3 |
| XFS | 8 EB | RHEL, grandes archivos | Alto rendimiento; no se puede reducir en caliente |
| Btrfs | 16 EB | Fedora, openSUSE | Copy-on-write, snapshots, checksums integrados |
| ZFS | 256 ZiB | Almacenamiento empresarial | Pool, integridad, RAID-Z, snapshots |
| tmpfs | RAM disponible | `/tmp`, `/run` | En memoria; desaparece al reiniciar |

**Journaling:** registra los cambios pendientes en un log antes de escribirlos en disco. Si hay un fallo, el journal permite recuperar la coherencia sin `fsck` completo.

**Montaje en Linux:**

| Comando | Descripción |
|---|---|
| `mount /dev/sdb1 /mnt/datos` | Montar partición |
| `umount /mnt/datos` | Desmontar |
| `mount -t ext4 /dev/sdb1 /mnt` | Montar especificando tipo de FS |
| `cat /etc/fstab` | Ver tabla de montaje permanente |
| `lsblk -f` | Ver dispositivos, FS y UUID |
| `blkid` | Ver UUID y tipo de FS de cada partición |

El fichero `/etc/fstab` define los montajes automáticos al arranque. Formato: `dispositivo punto_montaje tipo_fs opciones dump pass`.

---

## 1.5. Gestión de procesos y algoritmos de planificación

Un **proceso** es un programa en ejecución con su espacio de memoria, descriptores de fichero y contexto de CPU. Un **hilo (thread)** es la unidad mínima de ejecución dentro de un proceso; varios hilos comparten el espacio de direcciones del mismo proceso.

**Estados de un proceso:**

| Estado | Descripción |
|---|---|
| Nuevo (new) | El proceso se está creando |
| Listo (ready) | Esperando turno de CPU; en la cola del planificador |
| En ejecución (running) | Usando la CPU en este instante |
| Bloqueado (waiting) | Esperando un evento externo (E/S, señal) |
| Terminado (terminated) | Ha finalizado; liberando recursos |

**Algoritmos de planificación de CPU:**

| Algoritmo | Descripción | Ventaja / Inconveniente |
|---|---|---|
| FCFS (First-Come, First-Served) | Se ejecutan por orden de llegada | Simple; puede provocar convoy effect |
| SJF (Shortest Job First) | El más corto siguiente primero | Óptimo en tiempo medio; riesgo de starvation |
| Round Robin | Cada proceso recibe un quantum fijo de CPU | Justo; tiempo de respuesta uniforme; sistema de tiempo compartido |
| Prioridad | Se ejecuta el de mayor prioridad | Puede causar starvation de procesos de baja prioridad |
| Multinivel con realimentación | Colas de distinta prioridad; los procesos bajan si consumen mucho CPU | Usado en Linux (CFS) y Windows; adaptativo |

**Conceptos adicionales:**

| Concepto | Definición |
|---|---|
| Quantum / time slice | Tiempo máximo de CPU antes del cambio de contexto |
| Cambio de contexto | Guardar estado del proceso actual y restaurar el del siguiente |
| Deadlock | Dos o más procesos bloqueados mutuamente esperando recursos |
| Starvation | Un proceso nunca obtiene CPU por procesos de mayor prioridad |
| IPC | Inter-Process Communication: pipes, sockets, memoria compartida, semáforos |

**Señales en Linux:**

| Señal | Número | Efecto |
|---|---|---|
| SIGTERM | 15 | Solicitud de terminación ordenada (capturable) |
| SIGKILL | 9 | Terminación forzada e inmediata (no capturable) |
| SIGHUP | 1 | Recarga de configuración en daemons |
| SIGSTOP | 19 | Pausar proceso (no capturable) |
| SIGCONT | 18 | Reanudar proceso pausado |

---

## 1.6. Gestión de memoria: paginación y memoria virtual

**Conceptos fundamentales:**

| Concepto | Descripción |
|---|---|
| Paginación | Divide la memoria en páginas de tamaño fijo (4 KB típico). Tabla de páginas por proceso. Permite no-contigüedad física |
| Segmentación | Divide en segmentos lógicos de tamaño variable (código, datos, pila) |
| Memoria virtual | Extiende la RAM usando espacio en disco (swap / archivo de paginación) |
| TLB | Translation Lookaside Buffer: caché de traducciones dirección virtual → física |
| Fallo de página | Acceso a una página no cargada en RAM; el SO la trae de swap |
| Thrashing | El SO pasa más tiempo gestionando swap que ejecutando procesos; indica falta de RAM |

**Swap en Linux:**

| Comando | Acción |
|---|---|
| `free -h` | Ver uso de RAM y swap |
| `swapon -s` | Ver swap activo |
| `mkswap /dev/sdaX` | Crear área de swap |
| `swapon /dev/sdaX` | Activar swap |
| `swapoff /dev/sdaX` | Desactivar swap |

**Archivo de paginación en Windows:** `C:\pagefile.sys`. Se configura en Sistema → Configuración avanzada → Rendimiento → Configuración → Memoria virtual. Tamaño recomendado: 1,5 × RAM como mínimo.

---

# 2. Sistemas operativos Windows

## 2.1. Versiones principales

| Versión | Tipo | Notas clave |
|---|---|---|
| Windows 10 | Escritorio | Soporte hasta octubre 2025 |
| Windows 11 | Escritorio | Requiere TPM 2.0 y UEFI |
| Windows Server 2019 | Servidor | LTSC; soporte hasta 2029 |
| Windows Server 2022 | Servidor | LTSC; versión ampliamente desplegada |
| Windows Server 2025 | Servidor | Versión más reciente (2024) |

Ediciones relevantes en la AGE: **Windows 10/11 Pro/Enterprise** y **Windows Server Standard/Datacenter**.

---

## 2.2. Usuarios, grupos y permisos NTFS

**Comandos de gestión de usuarios (cmd):**

| Comando | Acción |
|---|---|
| `net user` | Listar usuarios locales |
| `net user nombre pass /add` | Crear usuario |
| `net user nombre /delete` | Eliminar usuario |
| `net localgroup Administradores nombre /add` | Añadir al grupo Administradores |
| `net user nombre /active:no` | Deshabilitar cuenta |

**Permisos NTFS** (se aplican a archivos y carpetas):

| Permiso NTFS | Descripción |
|---|---|
| Control total | Todos los permisos incluyendo cambiar permisos |
| Modificar | Leer, escribir, eliminar (sin cambiar permisos) |
| Leer y ejecutar | Ver contenido y ejecutar programas |
| Leer | Solo lectura |
| Escribir | Crear y modificar archivos |

**Principio de mínimo privilegio:** otorgar solo los permisos estrictamente necesarios para cada tarea.

**ACL (Access Control List):** lista de entradas de control de acceso (ACE) asociada a un objeto. Cada ACE indica qué usuario/grupo tiene qué permiso sobre ese objeto. En Windows hay dos tipos: DACL (Discretionary ACL, controla el acceso) y SACL (System ACL, controla la auditoría).

**Herencia de permisos NTFS:** los permisos se heredan desde la carpeta padre. Se puede romper la herencia para asignar permisos propios. Los permisos explícitos tienen precedencia sobre los heredados.

**Permisos compartidos vs NTFS:** cuando se accede por red, se aplica el más restrictivo entre el permiso compartido (Share Permission) y el permiso NTFS.

**Active Directory (AD) — estructura completa:**

| Concepto | Descripción |
|---|---|
| Bosque (Forest) | Conjunto de uno o más dominios que comparten esquema y catálogo global |
| Árbol (Tree) | Conjunto de dominios con espacio de nombres contiguo dentro del bosque |
| Dominio | Unidad administrativa con un espacio de nombres común |
| Subdominio | Dominio hijo dentro de un árbol |
| Controlador de dominio (DC) | Servidor con AD DS que autentica usuarios y almacena el directorio |
| DC de solo lectura (RODC) | Copia de solo lectura del AD; se usa en sucursales |
| Catálogo global | DC que almacena información de todos los objetos del bosque |
| OU (Organizational Unit) | Contenedor para organizar objetos; se le aplican GPO |
| Relación de confianza | Permite a usuarios de un dominio acceder a recursos de otro |
| Esquema AD | Define las clases y atributos que pueden existir en el directorio |
| LDAP | Protocolo de consulta al directorio (puerto TCP 389; LDAPS 636) |
| Kerberos | Protocolo de autenticación en AD (puerto UDP/TCP 88) |

**Roles FSMO (Flexible Single Master Operations):** roles especiales que solo puede tener un DC a la vez para evitar conflictos.

| Rol FSMO | Ámbito | Función |
|---|---|---|
| Schema Master | Bosque | Gestiona los cambios al esquema de AD |
| Domain Naming Master | Bosque | Gestiona la adición/eliminación de dominios |
| PDC Emulator | Dominio | Sincroniza la hora; gestiona bloqueos de cuentas; compatibilidad NT |
| RID Master | Dominio | Asigna bloques de RID para crear objetos con SID únicos |
| Infrastructure Master | Dominio | Actualiza referencias entre objetos de distintos dominios |

**GPO (Group Policy Objects) — aplicación:**

| Concepto | Descripción |
|---|---|
| GPO | Conjunto de directivas que se aplican a usuarios y equipos |
| Vinculación | Una GPO se vincula a un sitio, dominio u OU |
| Orden de aplicación | Local → Sitio → Dominio → OU (LSDOU); la OU hija tiene precedencia |
| Bloqueo de herencia | Una OU puede bloquear las GPO del dominio padre |
| Forzar (Enforced) | Una GPO marcada como Enforced no puede ser bloqueada por OU hija |
| gpupdate /force | Fuerza la actualización de directivas en el cliente |
| gpresult /r | Muestra las directivas aplicadas al usuario/equipo actual |
| Filtrado de seguridad | Limita la GPO a grupos de seguridad específicos |

**Herramientas de AD:**

| Herramienta | Acceso | Función |
|---|---|---|
| ADUC (Usuarios y equipos de AD) | `dsa.msc` | Gestionar usuarios, grupos, equipos, OU |
| ADSS (Sitios y servicios de AD) | `dssite.msc` | Gestionar sitios, subredes y replicación |
| Administrador de directivas de grupo | `gpmc.msc` | Crear, vincular y editar GPO |
| Usuarios y equipos de AD (PowerShell) | módulo `ActiveDirectory` | `Get-ADUser`, `New-ADUser`, `Add-ADGroupMember` |

---

## 2.3. Registro y herramientas de administración de Windows

**Registro de Windows:** base de datos jerárquica que almacena la configuración del sistema y aplicaciones.

| Clave raíz | Contenido |
|---|---|
| HKEY_LOCAL_MACHINE (HKLM) | Configuración del equipo (hardware, SO, servicios) |
| HKEY_CURRENT_USER (HKCU) | Configuración del usuario activo |
| HKEY_CLASSES_ROOT (HKCR) | Asociaciones de archivos y objetos COM |
| HKEY_USERS (HKU) | Perfiles de todos los usuarios cargados |

**Herramientas de administración de Windows:**

| Herramienta | Comando / Acceso | Función |
|---|---|---|
| Administrador de tareas | `taskmgr` | Procesos, rendimiento, usuarios, servicios |
| Visor de eventos | `eventvwr.msc` | Logs: sistema, seguridad y aplicaciones |
| Monitor de recursos | `resmon` | CPU, memoria, disco y red en tiempo real |
| Administrador de discos | `diskmgmt.msc` | Particiones y volúmenes |
| Servicios | `services.msc` | Gestión de servicios del sistema |
| Editor de directivas locales | `gpedit.msc` | Políticas de seguridad y configuración |
| Editor del registro | `regedit` | Edición directa del registro |

---

## 2.4. Comandos CMD y PowerShell clave

**Comandos CMD:**

| Comando | Descripción |
|---|---|
| `ipconfig /all` | Ver configuración completa de red |
| `ping` / `tracert` | Diagnóstico de conectividad |
| `tasklist` | Ver todos los procesos en ejecución |
| `taskkill /PID n /F` | Forzar terminación de proceso |
| `sfc /scannow` | Reparar archivos protegidos del sistema |
| `chkdsk C: /f /r` | Comprobar y reparar disco |
| `systeminfo` | Información detallada del sistema |
| `netstat -an` | Conexiones y puertos de red activos |
| `bcdedit` | Ver y editar la configuración de arranque BCD |
| `shutdown /r /t 0` | Reiniciar inmediatamente |

**Comandos PowerShell:**

| Cmdlet | Descripción |
|---|---|
| `Get-Process` | Ver procesos (equivale a `tasklist`) |
| `Stop-Process -Id n` | Terminar proceso |
| `Get-Service` | Ver estado de todos los servicios |
| `Start-Service nombre` / `Stop-Service nombre` | Iniciar/detener servicio |
| `Get-EventLog -LogName System -Newest 50` | Ver los últimos 50 eventos del sistema |
| `Get-HotFix` | Ver actualizaciones instaladas |
| `Get-NetIPAddress` | Ver configuración de red |
| `Test-Connection host` | Equivale a `ping` |

---

## 2.5. Seguridad Windows: BitLocker, EFS y Windows Defender

### BitLocker

**BitLocker** es la herramienta de cifrado de disco completo incluida en Windows (ediciones Pro/Enterprise/Server). Cifra el volumen completo con AES-128 o AES-256.

| Concepto | Descripción |
|---|---|
| TPM (Trusted Platform Module) | Chip hardware que almacena las claves de cifrado; impide el arranque sin él |
| PIN de arranque | Capa adicional de autenticación junto al TPM |
| Clave de recuperación | Contraseña de 48 dígitos para desbloquear si falla TPM o PIN |
| BitLocker To Go | Cifrado de unidades extraíbles (USB, disco externo) |
| Modo sin TPM | Necesita clave de inicio USB; admitido con directiva de grupo |

**Comandos BitLocker (PowerShell y cmd):**

| Comando | Acción |
|---|---|
| `manage-bde -status` | Ver estado de cifrado de todos los volúmenes |
| `manage-bde -on C: -RecoveryPassword` | Activar BitLocker en C: |
| `manage-bde -off C:` | Desactivar BitLocker |
| `Get-BitLockerVolume` | PowerShell: ver estado detallado |
| `Enable-BitLocker -MountPoint C: -RecoveryPasswordProtector` | Activar BitLocker en PowerShell |

### EFS (Encrypting File System)

**EFS** permite cifrar archivos y carpetas individuales en NTFS. A diferencia de BitLocker (cifra el disco completo), EFS cifra ficheros concretos.

| Característica | Descripción |
|---|---|
| Cifrado transparente | El usuario autorizado accede normalmente; para otros el fichero aparece cifrado |
| Certificado EFS | Cada usuario tiene un certificado X.509 con el que se cifran los ficheros |
| Recuperación | El agente de recuperación (normalmente el Administrador) puede descifrar |
| Comando | `cipher /e archivo` para cifrar; `cipher /d` para descifrar |

### Windows Defender / Microsoft Defender

**Microsoft Defender** es la solución antimalware integrada en Windows. En versiones modernas incluye:

| Componente | Función |
|---|---|
| Defender Antivirus | Detección y eliminación de malware en tiempo real |
| Defender Firewall | Filtrado de tráfico de red entrante/saliente |
| Defender SmartScreen | Protección ante descargas y webs maliciosas |
| Defender for Endpoint | Solución EDR empresarial (antes ATP); detección avanzada de amenazas |
| Credential Guard | Aísla las credenciales en un entorno virtualizado (Hyper-V VBS) |
| Device Guard / WDAC | Control de aplicaciones; solo ejecuta código firmado y de confianza |

**UAC (User Account Control):** mecanismo de elevación de privilegios. Cuando una acción requiere permisos de Administrador, el SO muestra un diálogo de confirmación. Reduce el impacto de malware que corre como usuario estándar.

---

## 2.6. Hyper-V: virtualización en Windows

**Hyper-V** es el hipervisor de Tipo 1 (bare-metal) integrado en Windows Server y Windows 10/11 Pro/Enterprise (64-bit). Se ejecuta directamente sobre el hardware.

| Concepto | Descripción |
|---|---|
| Host / Anfitrión | Máquina física con Hyper-V instalado |
| Máquina virtual (VM) | Instancia virtualizada con su propio SO, CPU virtual, RAM y discos |
| VHD / VHDX | Formato de disco duro virtual de Hyper-V; VHDX soporta hasta 64 TB |
| Switch virtual | Componente de red virtual que conecta las VM entre sí y con el exterior |
| Snapshot / Checkpoint | Estado guardado de una VM en un momento determinado; permite rollback |
| Live Migration | Mover una VM en ejecución de un host a otro sin tiempo de inactividad |
| Generación 1 / Generación 2 | Gen 2 usa UEFI y es compatible con Linux y Windows 2012+ |

**Tipos de switch virtual en Hyper-V:**

| Tipo | Descripción |
|---|---|
| Externo | Conecta la VM a la red física del host |
| Interno | Solo comunicación entre VMs y el host; sin acceso externo |
| Privado | Solo comunicación entre VMs; el host no participa |

**PowerShell para Hyper-V:**

| Cmdlet | Acción |
|---|---|
| `Get-VM` | Listar todas las VMs |
| `Start-VM nombre` | Iniciar una VM |
| `Stop-VM nombre -Force` | Detener forzosamente una VM |
| `New-VM -Name nombre -MemoryStartupBytes 2GB -Generation 2` | Crear VM |
| `Checkpoint-VM -Name nombre -SnapshotName "pre-update"` | Crear checkpoint |

---

# 3. Sistemas operativos Linux/Unix

## 3.1. Distribuciones y estructura de directorios FHS

**Distribuciones principales:**

| Familia | Distribuciones | Gestor de paquetes |
|---|---|---|
| Debian | Ubuntu, Debian, Linux Mint | `apt` / `dpkg` |
| Red Hat | RHEL, CentOS Stream, Fedora, Rocky Linux | `yum` / `dnf` / `rpm` |
| SUSE | openSUSE, SLES | `zypper` / `rpm` |
| Arch | Arch Linux, Manjaro | `pacman` |

**Estructura de directorios FHS (Filesystem Hierarchy Standard):**

| Directorio | Contenido |
|---|---|
| `/` | Raíz del sistema de ficheros |
| `/bin` y `/usr/bin` | Ejecutables de usuario |
| `/sbin` y `/usr/sbin` | Ejecutables de administración (root) |
| `/etc` | Archivos de configuración del sistema |
| `/home` | Directorios personales de usuarios (`/home/usuario`) |
| `/root` | Directorio personal del superusuario root |
| `/var` | Datos variables: logs (`/var/log`), colas, bases de datos |
| `/tmp` | Archivos temporales (se borran al reiniciar) |
| `/dev` | Dispositivos hardware representados como archivos |
| `/proc` | Sistema de ficheros virtual con información de procesos y kernel |
| `/boot` | Kernel (vmlinuz), imagen initrd y GRUB |
| `/mnt` y `/media` | Puntos de montaje para dispositivos externos |
| `/opt` | Software adicional instalado manualmente |

---

## 3.2. Gestión de usuarios y permisos en Linux

**Comandos de usuarios:**

| Comando | Acción |
|---|---|
| `useradd -m nombre` | Crear usuario con directorio home |
| `passwd nombre` | Asignar o cambiar contraseña |
| `userdel -r nombre` | Eliminar usuario y su home |
| `usermod -aG grupo nombre` | Añadir usuario a un grupo adicional |
| `id nombre` | Ver UID, GID y grupos del usuario |
| `who` / `w` | Ver usuarios conectados actualmente |
| `su nombre` | Cambiar a otro usuario |
| `sudo comando` | Ejecutar comando como root |

**Ficheros clave de usuarios:**

| Fichero | Contenido |
|---|---|
| `/etc/passwd` | Lista de usuarios: nombre, UID, GID, home, shell |
| `/etc/shadow` | Contraseñas cifradas (hash) y políticas de expiración |
| `/etc/group` | Grupos del sistema |
| `/etc/sudoers` | Usuarios con permisos para ejecutar sudo |

**Permisos en Linux:**

| Permiso | Símbolo | Valor octal |
|---|---|---|
| Lectura | `r` | 4 |
| Escritura | `w` | 2 |
| Ejecución | `x` | 1 |
| Sin permiso | `-` | 0 |

Los permisos se aplican a tres categorías: **propietario (u)**, **grupo (g)** y **otros (o)**.

Ejemplo: `chmod 755 archivo` → propietario rwx (7) · grupo r-x (5) · otros r-x (5)

**Comandos de permisos:**

| Comando | Acción |
|---|---|
| `chmod 755 archivo` | Cambiar permisos (notación octal) |
| `chmod u+x archivo` | Añadir permiso de ejecución al propietario |
| `chmod go-w archivo` | Quitar escritura a grupo y otros |
| `chown usuario:grupo archivo` | Cambiar propietario y grupo |
| `chown -R usuario /dir` | Cambio recursivo de propietario |
| `ls -l` | Ver permisos de archivos en formato largo |
| `umask` | Ver/establecer máscara de permisos por defecto |

**Permisos especiales:**

| Permiso especial | Octal | Efecto |
|---|---|---|
| setuid (`s` en u) | 4000 | Ejecutar con permisos del propietario del archivo |
| setgid (`s` en g) | 2000 | Ejecutar con permisos del grupo del archivo |
| Sticky bit (`t` en o) | 1000 | En directorios: solo el propietario puede borrar sus archivos (ej. `/tmp`) |

---

## 3.3. Comandos esenciales de Linux

| Categoría | Comando | Descripción |
|---|---|---|
| Ficheros | `ls -la` | Listar con permisos y ocultos |
| | `cp -r src dst` | Copiar (recursivo) |
| | `mv src dst` | Mover o renombrar |
| | `rm -rf dir` | Eliminar directorio recursivamente |
| | `mkdir -p ruta` | Crear directorio con padres |
| | `find / -name "*.conf"` | Buscar archivos por nombre |
| | `grep -r "texto" /etc` | Buscar texto en archivos |
| | `tar -czf backup.tar.gz /dir` | Comprimir directorio |
| Procesos | `ps aux` | Ver todos los procesos en ejecución |
| | `top` / `htop` | Monitor interactivo de CPU y memoria |
| | `kill -9 PID` | Forzar terminación de proceso |
| | `nice -n 10 cmd` | Ejecutar con prioridad reducida |
| Red | `ip addr` / `ip link` | Ver interfaces de red |
| | `ping host` | Comprobar conectividad |
| | `traceroute host` | Ver ruta de paquetes |
| | `ss -tulpn` | Ver puertos y procesos que los usan |
| | `curl -I url` | Ver cabeceras HTTP |
| | `wget url` | Descargar archivo por HTTP |
| Disco | `df -h` | Espacio libre en sistemas de ficheros |
| | `du -sh /directorio` | Tamaño de un directorio |
| | `mount /dev/sdaX /mnt` | Montar sistema de ficheros |
| | `lsblk` | Ver discos y particiones |
| | `fdisk -l` | Ver tabla de particiones |
| Logs | `tail -f /var/log/syslog` | Ver log en tiempo real |
| | `journalctl -xe` | Ver logs recientes con systemd |
| | `grep "ERROR" /var/log/syslog` | Filtrar errores en log |
| Paquetes | `apt update && apt upgrade` | Actualizar sistema (Debian/Ubuntu) |
| | `apt install paquete` | Instalar paquete |
| | `yum update` / `dnf update` | Actualizar sistema (Red Hat) |

---

## 3.4. Gestión de servicios con systemd

**systemd** es el sistema de init estándar en las distribuciones Linux modernas.

**Comandos systemctl:**

| Comando | Acción |
|---|---|
| `systemctl start servicio` | Iniciar servicio |
| `systemctl stop servicio` | Detener servicio |
| `systemctl restart servicio` | Reiniciar servicio |
| `systemctl reload servicio` | Recargar configuración sin reiniciar |
| `systemctl enable servicio` | Activar inicio automático con el sistema |
| `systemctl disable servicio` | Desactivar inicio automático |
| `systemctl status servicio` | Ver estado del servicio |
| `systemctl list-units --type=service` | Listar todos los servicios |

**Targets de systemd (equivalen a runlevels):**

| Target systemd | Runlevel SysV | Descripción |
|---|---|---|
| `poweroff.target` | 0 | Apagado del sistema |
| `rescue.target` | 1 | Modo monousuario / reparación |
| `multi-user.target` | 3 | Multiusuario sin entorno gráfico |
| `graphical.target` | 5 | Multiusuario con entorno gráfico |
| `reboot.target` | 6 | Reinicio del sistema |

---

## 3.5. Firewall en Linux: iptables, nftables y ufw

El kernel Linux incluye el subsistema **Netfilter** para filtrado de paquetes. Las herramientas de espacio de usuario son:

| Herramienta | Descripción | Estado |
|---|---|---|
| `iptables` | Interfaz clásica para IPv4 | Todavía muy extendida; sustituida progresivamente por nftables |
| `ip6tables` | Igual que iptables pero para IPv6 | — |
| `nftables` | Sustituto moderno de iptables; sintaxis unificada para IPv4/IPv6 | Estándar en sistemas modernos |
| `ufw` (Uncomplicated Firewall) | Interfaz simplificada sobre iptables/nftables | Por defecto en Ubuntu |
| `firewalld` | Gestión dinámica de zonas; usa nftables en el backend | Por defecto en RHEL/Fedora |

**Cadenas principales de iptables:**

| Cadena | Tabla | Descripción |
|---|---|---|
| INPUT | filter | Paquetes destinados al propio equipo |
| OUTPUT | filter | Paquetes generados por el equipo |
| FORWARD | filter | Paquetes que el equipo encamina (router) |
| PREROUTING | nat | Se aplica antes del routing (DNAT) |
| POSTROUTING | nat | Se aplica tras el routing (SNAT/masquerade) |

**Comandos iptables básicos:**

| Comando | Acción |
|---|---|
| `iptables -L -n -v` | Listar reglas activas |
| `iptables -A INPUT -p tcp --dport 22 -j ACCEPT` | Permitir SSH entrante |
| `iptables -A INPUT -j DROP` | Denegar todo lo demás |
| `iptables -D INPUT 3` | Eliminar regla número 3 de INPUT |
| `iptables-save > /etc/iptables/rules.v4` | Guardar reglas |
| `iptables-restore < /etc/iptables/rules.v4` | Restaurar reglas |

**Comandos ufw (Ubuntu):**

| Comando | Acción |
|---|---|
| `ufw enable` / `ufw disable` | Activar/desactivar |
| `ufw status verbose` | Ver estado y reglas |
| `ufw allow 22/tcp` | Permitir SSH |
| `ufw deny 23/tcp` | Denegar Telnet |
| `ufw allow from 192.168.1.0/24` | Permitir red local |
| `ufw delete allow 22/tcp` | Eliminar regla |

**Comandos firewalld (RHEL/Fedora):**

| Comando | Acción |
|---|---|
| `firewall-cmd --list-all` | Ver configuración de la zona activa |
| `firewall-cmd --add-service=http --permanent` | Permitir HTTP (permanente) |
| `firewall-cmd --add-port=8080/tcp --permanent` | Permitir puerto 8080 |
| `firewall-cmd --reload` | Aplicar cambios permanentes |
| `firewall-cmd --zone=trusted --add-source=192.168.1.0/24` | Añadir red a zona confiable |

---

## 3.6. SELinux y AppArmor: control de acceso obligatorio (MAC)

Los controles de acceso discrecional (DAC) estándar de Linux (permisos rwx) pueden complementarse con **control de acceso obligatorio (MAC)**, donde el SO impone restricciones que el usuario no puede ignorar.

### SELinux (Security-Enhanced Linux)

Desarrollado por la NSA e integrado en el kernel. Estándar en RHEL/Fedora/CentOS.

| Modo | Descripción |
|---|---|
| Enforcing | SELinux aplica la política; bloquea acciones no permitidas |
| Permissive | Solo registra violaciones; no bloquea; útil para depuración |
| Disabled | SELinux completamente desactivado (requiere reinicio para cambiar) |

**Comandos SELinux:**

| Comando | Acción |
|---|---|
| `getenforce` | Ver modo actual |
| `setenforce 0` | Pasar a Permissive temporalmente |
| `setenforce 1` | Pasar a Enforcing temporalmente |
| `sestatus` | Estado detallado de SELinux |
| `ls -Z archivo` | Ver contexto SELinux de un archivo |
| `chcon -t httpd_sys_content_t /var/www/html` | Cambiar contexto temporalmente |
| `restorecon -Rv /var/www/html` | Restaurar contexto predeterminado |
| `audit2allow -a` | Generar política para permitir acciones bloqueadas |
| `grep "denied" /var/log/audit/audit.log` | Ver eventos denegados |

El modo permanente se configura en `/etc/selinux/config` modificando `SELINUX=enforcing|permissive|disabled`.

### AppArmor

Alternativa a SELinux. Estándar en Ubuntu/Debian. Usa perfiles por aplicación en lugar de contextos globales.

| Comando | Acción |
|---|---|
| `aa-status` | Ver perfiles cargados y modo |
| `aa-enforce /etc/apparmor.d/usr.sbin.nginx` | Poner perfil en modo enforce |
| `aa-complain /etc/apparmor.d/usr.sbin.nginx` | Poner perfil en modo complain (log) |
| `apparmor_parser -r /etc/apparmor.d/perfil` | Recargar perfil |

---

## 3.7. LVM: gestión lógica de volúmenes

**LVM (Logical Volume Manager)** permite gestionar el almacenamiento de forma flexible: redimensionar volúmenes, añadir discos y crear snapshots sin reiniciar.

**Arquitectura LVM:**

```
Discos físicos → PV (Physical Volume) → VG (Volume Group) → LV (Logical Volume) → Sistema de ficheros
```

| Concepto | Descripción |
|---|---|
| PV (Physical Volume) | Disco o partición inicializada para LVM |
| VG (Volume Group) | Agrupación de uno o más PV; pool de almacenamiento |
| LV (Logical Volume) | Volumen lógico creado dentro de un VG; equivale a una partición |
| PE (Physical Extent) | Unidad mínima de asignación dentro de LVM (4 MB por defecto) |
| Snapshot LVM | Copia instantánea de un LV en un momento dado (CoW) |

**Comandos LVM:**

| Operación | Comandos |
|---|---|
| Crear PV | `pvcreate /dev/sdb` |
| Ver PVs | `pvdisplay` / `pvs` |
| Crear VG | `vgcreate datos /dev/sdb /dev/sdc` |
| Ver VGs | `vgdisplay` / `vgs` |
| Crear LV | `lvcreate -L 10G -n datos_lv datos` |
| Crear LV (% del VG) | `lvcreate -l 100%FREE -n datos_lv datos` |
| Ver LVs | `lvdisplay` / `lvs` |
| Ampliar LV | `lvextend -L +5G /dev/datos/datos_lv` |
| Ampliar FS (ext4) | `resize2fs /dev/datos/datos_lv` |
| Ampliar FS (XFS) | `xfs_growfs /punto/montaje` |
| Reducir LV (ext4) | `resize2fs /dev/datos/datos_lv 8G && lvreduce -L 8G /dev/datos/datos_lv` |
| Crear snapshot | `lvcreate -L 2G -s -n snap_lv /dev/datos/datos_lv` |
| Activar VG | `vgchange -ay datos` |

---

## 3.8. Scripting Bash básico

**Bash** es el intérprete de comandos estándar en Linux. Los scripts permiten automatizar tareas repetitivas.

**Estructura básica de un script:**

```bash
#!/bin/bash
# Comentario
set -e          # Sale si un comando falla
set -u          # Error si se usa variable no definida

VARIABLE="valor"
echo "Hola, $VARIABLE"
```

**Variables y tipos:**

| Concepto | Ejemplo |
|---|---|
| Variable | `NOMBRE="admin"` |
| Variable de entorno | `export PATH=$PATH:/nuevo/dir` |
| Variable especial `$?` | Código de retorno del último comando (0 = éxito) |
| Variable especial `$#` | Número de argumentos pasados al script |
| Variable especial `$1`, `$2`... | Argumentos posicionales |
| Variable especial `$$` | PID del proceso actual |
| Sustitución de comando | `FECHA=$(date +%Y-%m-%d)` |
| Aritmética | `TOTAL=$((5 + 3))` |

**Estructuras de control:**

```bash
# Condicional
if [ "$VARIABLE" == "valor" ]; then
    echo "igual"
elif [ "$VARIABLE" -gt 10 ]; then
    echo "mayor que 10"
else
    echo "otro"
fi

# Bucle for
for i in 1 2 3 4 5; do
    echo "Número $i"
done

# Bucle while
while [ $CONTADOR -lt 10 ]; do
    CONTADOR=$((CONTADOR + 1))
done

# Bucle over files
for FICHERO in /etc/*.conf; do
    echo "Procesando $FICHERO"
done
```

**Operadores de prueba en `[ ]`:**

| Operador | Tipo | Descripción |
|---|---|---|
| `-eq` / `-ne` | Numérico | Igual / distinto |
| `-lt` / `-le` / `-gt` / `-ge` | Numérico | Menor / ≤ / Mayor / ≥ |
| `==` / `!=` | Cadena | Igual / distinto |
| `-z` | Cadena | Vacía |
| `-f` | Fichero | Es un fichero regular |
| `-d` | Fichero | Es un directorio |
| `-e` | Fichero | Existe |
| `-r` / `-w` / `-x` | Fichero | Permisos lectura/escritura/ejecución |

**Cron — programación de tareas:**

```
# Formato: min hora día mes díaSemana comando
# * = cualquier valor; , = lista; - = rango; / = paso
0 2 * * *       /usr/local/bin/backup.sh    # Cada día a las 02:00
*/15 * * * *    /usr/local/bin/check.sh     # Cada 15 minutos
0 9 * * 1-5     /usr/local/bin/informe.sh   # Lunes a viernes a las 09:00
0 0 1 * *       /usr/local/bin/mensual.sh   # El día 1 de cada mes a medianoche
```

| Comando | Acción |
|---|---|
| `crontab -e` | Editar crontab del usuario actual |
| `crontab -l` | Listar crontab del usuario actual |
| `crontab -u usuario -e` | Editar crontab de otro usuario (root) |
| `/etc/cron.daily/` | Scripts que se ejecutan diariamente |
| `/etc/cron.weekly/` | Scripts semanales |
| `/etc/cron.monthly/` | Scripts mensuales |

---

# 4. Virtualización y contenedores

## 4.1. Conceptos de virtualización

**Virtualización** es la tecnología que permite ejecutar múltiples sistemas operativos o entornos aislados sobre el mismo hardware físico.

**Beneficios de la virtualización:**

| Beneficio | Descripción |
|---|---|
| Consolidación | Múltiples servidores virtuales en un servidor físico; reduce costes |
| Aislamiento | Los problemas de una VM no afectan a las demás |
| Portabilidad | Las VMs se pueden migrar entre hosts |
| Alta disponibilidad | Live migration, vMotion; cero tiempo de inactividad |
| Snapshots | Rollback rápido a un estado anterior |
| Entornos de prueba | Clonar VMs para testing sin afectar producción |

**Terminología clave:**

| Término | Descripción |
|---|---|
| Hipervisor (VMM) | Software que gestiona las VMs y presenta hardware virtual |
| Host (anfitrión) | Máquina física donde corre el hipervisor |
| Guest (invitado) | Sistema operativo que corre dentro de una VM |
| VM (Máquina virtual) | Instancia virtualizada con CPU, RAM, disco y red virtuales |
| vCPU | CPU virtual asignada a una VM |
| VDI / VMDK / VHD / VHDX | Formatos de disco duro virtual (VirtualBox, VMware, Hyper-V) |

---

## 4.2. Hipervisores Tipo 1 y Tipo 2

| | Tipo 1 (bare-metal) | Tipo 2 (hosted) |
|---|---|---|
| Corre sobre | Hardware directamente | Sistema operativo anfitrión |
| Rendimiento | Muy alto | Menor (capa extra) |
| Uso | Producción, centros de datos | Desarrollo, entornos de prueba |
| Ejemplos | VMware ESXi, Hyper-V, KVM | VirtualBox, VMware Workstation, QEMU |

**Principales hipervisores:**

| Hipervisor | Tipo | Plataforma | Notas |
|---|---|---|---|
| VMware ESXi | 1 | Independiente | Estándar en empresas; parte de vSphere |
| Microsoft Hyper-V | 1 | Windows Server / Win 10/11 | Integrado en Windows |
| KVM | 1 | Linux (módulo del kernel) | Estándar en RHEL/Ubuntu server |
| Xen | 1 | Independiente | Usado por AWS en sus primeros años |
| VirtualBox | 2 | Windows/Linux/macOS | Oracle; gratuito; muy usado para pruebas |
| VMware Workstation | 2 | Windows/Linux | Comercial; muy completo |

**KVM (Kernel-based Virtual Machine):** módulo del kernel Linux que convierte Linux en un hipervisor de Tipo 1. Se gestiona con `libvirt`/`virsh` o con la interfaz gráfica `virt-manager`.

| Comando KVM/libvirt | Acción |
|---|---|
| `virsh list --all` | Listar todas las VMs |
| `virsh start nombre` | Iniciar VM |
| `virsh shutdown nombre` | Apagado ordenado |
| `virsh destroy nombre` | Forzar apagado |
| `virsh snapshot-create-as nombre snap1` | Crear snapshot |
| `virt-install --name vm1 --memory 2048 --vcpus 2 --disk size=20 --os-variant ubuntu22.04` | Crear VM |

---

## 4.3. Contenedores: Docker

Los **contenedores** son entornos ligeros de ejecución que comparten el kernel del SO anfitrión. Son mucho más ligeros que las VMs porque no necesitan un SO completo.

**Diferencia VM vs Contenedor:**

| | Máquina virtual | Contenedor |
|---|---|---|
| Aislamiento | Total (kernel independiente) | Parcial (comparte kernel del host) |
| Tamaño | GBs | MBs |
| Inicio | Minutos | Segundos |
| Portabilidad | Alta | Muy alta |
| Uso de recursos | Mayor | Menor |
| Seguridad | Mayor aislamiento | Menor (escalada de privilegios posible) |

**Docker** es la plataforma de contenedores más extendida. Usa el formato de imagen OCI.

| Concepto Docker | Descripción |
|---|---|
| Imagen | Plantilla inmutable con el SO y la aplicación |
| Contenedor | Instancia en ejecución de una imagen |
| Dockerfile | Fichero de texto con instrucciones para construir una imagen |
| Registry | Repositorio de imágenes (Docker Hub, GitLab Registry, ECR) |
| Volumen | Almacenamiento persistente montado en el contenedor |
| Red Docker | Redes virtuales para comunicación entre contenedores |
| Docker Compose | Herramienta para definir y gestionar múltiples contenedores (`docker-compose.yml`) |

**Comandos Docker básicos:**

| Comando | Acción |
|---|---|
| `docker ps` | Ver contenedores en ejecución |
| `docker ps -a` | Ver todos los contenedores (incluidos parados) |
| `docker images` | Ver imágenes locales |
| `docker pull ubuntu:22.04` | Descargar imagen |
| `docker run -d -p 8080:80 --name web nginx` | Ejecutar contenedor en segundo plano |
| `docker stop web` / `docker start web` | Detener / iniciar contenedor |
| `docker rm web` | Eliminar contenedor |
| `docker rmi nginx` | Eliminar imagen |
| `docker exec -it web bash` | Acceder al shell del contenedor |
| `docker logs web` | Ver logs del contenedor |
| `docker build -t mi-app:1.0 .` | Construir imagen desde Dockerfile |
| `docker volume create datos` | Crear volumen persistente |

**Ejemplo mínimo de Dockerfile:**

```dockerfile
FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY app.jar .
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
```

---

## 4.4. Kubernetes: orquestación de contenedores

**Kubernetes (K8s)** es la plataforma estándar para orquestar contenedores a escala: gestiona el despliegue, escalado y disponibilidad de contenedores.

**Arquitectura de Kubernetes:**

| Componente | Rol | Descripción |
|---|---|---|
| Control Plane | Master | Gestiona el clúster |
| kube-apiserver | Control Plane | Punto de entrada para todas las operaciones (API REST) |
| etcd | Control Plane | Base de datos clave-valor que almacena el estado del clúster |
| kube-scheduler | Control Plane | Decide en qué nodo worker se ejecuta cada Pod |
| kube-controller-manager | Control Plane | Controla el estado deseado vs. el estado real |
| Node (worker) | Nodo | Máquina que ejecuta los contenedores |
| kubelet | Node | Agente en cada nodo; ejecuta las instrucciones del apiserver |
| kube-proxy | Node | Gestiona las reglas de red en el nodo |
| Pod | Workload | Unidad mínima de despliegue; uno o varios contenedores |

**Objetos Kubernetes clave:**

| Objeto | Descripción |
|---|---|
| Pod | Uno o más contenedores que comparten red y almacenamiento |
| Deployment | Gestiona un conjunto de Pods con réplicas y rolling updates |
| Service | Expone un conjunto de Pods como un servicio de red estable |
| ConfigMap | Almacena configuración no sensible como variables de entorno |
| Secret | Almacena datos sensibles (contraseñas, tokens) cifrados en base64 |
| PersistentVolume (PV) | Recurso de almacenamiento persistente en el clúster |
| Namespace | Partición lógica del clúster para separar entornos |

---

# 5. Almacenamiento: RAID, SAN y NAS

## 5.1. RAID (Redundant Array of Independent Disks)

**RAID** combina múltiples discos físicos para conseguir mayor rendimiento, capacidad o tolerancia a fallos.

**Niveles RAID:**

| Nivel | Discos mínimos | Tolerancia fallos | Espacio útil | Rendimiento | Uso típico |
|---|---|---|---|---|---|
| RAID 0 | 2 | 0 (ninguno) | 100 % | Lectura y escritura muy rápidos | Edición de vídeo; solo rendimiento |
| RAID 1 | 2 | 1 disco | 50 % | Lectura rápida; escritura normal | SO, bases de datos pequeñas |
| RAID 5 | 3 | 1 disco | (n−1)/n | Lectura rápida; escritura media | Servidor de ficheros, NAS |
| RAID 6 | 4 | 2 discos | (n−2)/n | Similar a RAID 5 | Datos críticos con reconstrucción lenta |
| RAID 10 (1+0) | 4 | 1 por subespejo | 50 % | Muy rápido en lectura y escritura | Bases de datos de alto rendimiento |

**RAID por hardware vs software:**

| | RAID hardware | RAID software |
|---|---|---|
| Implementación | Controladora RAID dedicada | SO (mdadm en Linux, Storage Spaces en Windows) |
| Rendimiento | Muy alto (caché en controladora) | Menor (usa CPU del sistema) |
| Coste | Mayor | Gratis |
| Independencia del SO | Sí | No |

**RAID software en Linux con mdadm:**

| Comando | Acción |
|---|---|
| `mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd` | Crear RAID 5 |
| `cat /proc/mdstat` | Ver estado del RAID |
| `mdadm --detail /dev/md0` | Detalle del array |
| `mdadm --manage /dev/md0 --add /dev/sde` | Añadir disco de recambio |
| `mdadm --manage /dev/md0 --fail /dev/sdb` | Marcar disco como fallido |

---

## 5.2. Tipos de almacenamiento: DAS, NAS y SAN

| Tipo | Significado | Conexión | Protocolo | Uso |
|---|---|---|---|---|
| DAS | Direct Attached Storage | Cable directo al servidor | ATA, SATA, SAS, USB | Servidor individual |
| NAS | Network Attached Storage | Red Ethernet | NFS (Linux), SMB/CIFS (Windows) | Compartición de ficheros en red |
| SAN | Storage Area Network | Red dedicada de alta velocidad | iSCSI, Fibre Channel (FC), FCoE | Almacenamiento de bloques para bases de datos |

**NFS (Network File System) — Linux:**

| Comando | Acción |
|---|---|
| `cat /etc/exports` | Ver comparticiones NFS exportadas |
| `exportfs -a` | Aplicar cambios en exports |
| `mount -t nfs servidor:/ruta /mnt/nfs` | Montar compartición NFS |
| `showmount -e servidor` | Ver comparticiones disponibles en servidor NFS |

**SMB/CIFS — Samba en Linux:**

| Fichero/Comando | Descripción |
|---|---|
| `/etc/samba/smb.conf` | Fichero de configuración principal |
| `testparm` | Verificar sintaxis de smb.conf |
| `systemctl restart smbd` | Reiniciar Samba |
| `smbpasswd -a usuario` | Añadir usuario Samba |
| `smbclient -L //servidor` | Listar comparticiones |

---

# 6. Copias de seguridad

## 6.1. Tipos de copia de seguridad

| Tipo | Qué copia | Velocidad backup | Velocidad restauración | Espacio |
|---|---|---|---|---|
| Completa (full) | Todos los datos | Lenta | Rápida (un solo set) | Mayor |
| Incremental | Solo cambios desde la última copia (completa o incremental) | Muy rápida | Lenta (necesita full + todos los incrementales) | Menor |
| Diferencial | Cambios desde la última copia completa | Media (crece con el tiempo) | Media (full + último diferencial) | Media |
| Sintética full | Construye una nueva full a partir de full + incrementales sin leer el origen | Rápida | Rápida | — |

**Estrategia habitual:** full semanal (domingo) + incrementales diarios (lunes a sábado). La restauración requiere el full + los incrementales del lunes al día del desastre.

---

## 6.2. Conceptos clave: RTO, RPO y regla 3-2-1

| Concepto | Definición | Ejemplo |
|---|---|---|
| RTO (Recovery Time Objective) | Tiempo máximo tolerable para restaurar el servicio tras un incidente | RTO = 4 h: el servicio debe estar operativo en 4 horas |
| RPO (Recovery Point Objective) | Máxima pérdida de datos tolerable (en tiempo) | RPO = 1 h: se puede perder como máximo 1 hora de datos |
| MTTR (Mean Time To Repair) | Tiempo medio de reparación | Métrica de disponibilidad |
| MTBF (Mean Time Between Failures) | Tiempo medio entre fallos | Métrica de fiabilidad |

**Regla 3-2-1:**

- **3** copias de los datos (1 original + 2 copias)
- **2** soportes o tecnologías diferentes (disco local + nube, o disco + cinta)
- **1** copia fuera de las instalaciones (offsite) para protegerse ante desastres físicos (incendio, inundación)

**Extensión 3-2-1-1-0:**

- Adicionalmente, **1** copia offline o air-gapped (desconectada de la red) para protección ante ransomware
- **0** errores verificados: cada copia debe testarse periódicamente con restauraciones de prueba

---

## 6.3. Herramientas de backup

**Windows:**

| Herramienta | Descripción |
|---|---|
| `wbadmin` | Backup de Windows Server desde línea de comandos |
| `robocopy` | Copia incremental de ficheros con opciones avanzadas |
| VSS (Volume Shadow Copy Service) | Servicio de instantáneas de volumen; permite copiar ficheros abiertos |
| Windows Server Backup | Interfaz gráfica de backup de Windows Server |
| Azure Backup | Servicio en la nube de Microsoft para backup |
| DPM (Data Protection Manager) | Solución empresarial de backup de Microsoft |

**Comandos robocopy:**

| Comando | Acción |
|---|---|
| `robocopy C:\origen D:\destino /E /Z /LOG:log.txt` | Copia completa con subdirectorios y modo reiniciable |
| `robocopy C:\origen D:\destino /E /MIR` | Espejo (elimina en destino lo que no está en origen) |
| `robocopy C:\origen D:\destino /E /COPYALL /DCOPY:DAT /XA:SH` | Mantener permisos y atributos |

**Linux:**

| Herramienta | Descripción |
|---|---|
| `rsync` | Sincronización incremental local o remota; estándar Linux |
| `tar` | Compresión y archivado (`.tar.gz`, `.tar.bz2`) |
| `dd` | Copia bit a bit de discos y particiones |
| Bacula / Bareos | Solución de backup empresarial open source |
| Amanda | Backup de red open source |
| BorgBackup / restic | Backup deduplicado con cifrado; moderno |

**Comandos rsync:**

| Comando | Acción |
|---|---|
| `rsync -avz /origen/ /destino/` | Sincronización local con compresión |
| `rsync -avz /origen/ usuario@servidor:/destino/` | Sincronización remota por SSH |
| `rsync -avz --delete /origen/ /destino/` | Espejo (elimina en destino lo inexistente en origen) |
| `rsync -avz --exclude='*.log' /origen/ /destino/` | Excluir ficheros |

---

# 7. Alta disponibilidad y clustering

## 7.1. Conceptos de alta disponibilidad

**Alta disponibilidad (HA)** garantiza que un servicio esté disponible el mayor porcentaje de tiempo posible, minimizando el tiempo de inactividad (downtime).

| Concepto | Descripción |
|---|---|
| SLA (Service Level Agreement) | Acuerdo de nivel de servicio entre proveedor y cliente |
| Disponibilidad del 99,9 % ("tres nueves") | Max. ~8,7 h de downtime al año |
| Disponibilidad del 99,99 % ("cuatro nueves") | Max. ~52 min de downtime al año |
| Disponibilidad del 99,999 % ("cinco nueves") | Max. ~5 min de downtime al año |
| SPF (Single Point of Failure) | Componente cuyo fallo detiene todo el servicio; debe eliminarse en HA |
| Failover | Transferencia automática del servicio a un nodo de respaldo cuando el principal falla |
| Failback | Retorno del servicio al nodo principal una vez reparado |
| Active-Active | Todos los nodos sirven tráfico simultáneamente; mayor aprovechamiento |
| Active-Passive | Un nodo sirve; el otro espera en caliente; la conmutación tarda segundos |

---

## 7.2. Clustering en Windows: WSFC

**WSFC (Windows Server Failover Clustering)** permite crear clústeres de alta disponibilidad en Windows Server. Requiere almacenamiento compartido (SAN).

| Componente | Descripción |
|---|---|
| Nodo | Servidor miembro del clúster |
| Quórum | Mecanismo de votación para decidir qué nodo es el propietario activo; evita split-brain |
| Recurso de clúster | Servicio o recurso gestionado por el clúster (IP, disco, servicio de aplicación) |
| Failover | El clúster mueve los recursos del nodo fallido al nodo activo |
| Always On AG (SQL Server) | Alta disponibilidad de bases de datos SQL Server sin necesidad de almacenamiento compartido |

---

## 7.3. Clustering en Linux: Pacemaker y Corosync

| Componente | Capa | Función |
|---|---|---|
| Corosync | Comunicación entre nodos | Heartbeat y mensajería entre nodos del clúster |
| Pacemaker | Gestión de recursos | Decide qué nodo debe ejecutar cada recurso; gestiona failover |
| DRBD | Replicación de disco | Replica datos de bloque entre nodos en tiempo real (RAID 1 por red) |

**Comandos Pacemaker:**

| Comando | Acción |
|---|---|
| `crm status` / `pcs status` | Ver estado del clúster |
| `pcs node standby nodo1` | Poner nodo en modo standby |
| `pcs resource failover recurso` | Forzar failover de un recurso |

---

## 7.4. Balanceo de carga

El **balanceador de carga** distribuye las peticiones entrantes entre múltiples servidores para maximizar el rendimiento y la disponibilidad.

| Algoritmo | Descripción |
|---|---|
| Round Robin | Reparte peticiones cíclicamente entre servidores |
| Round Robin ponderado | Igual que Round Robin pero con peso según capacidad del servidor |
| Least Connections | Envía al servidor con menos conexiones activas |
| IP Hash | El mismo cliente siempre va al mismo servidor (sesiones persistentes) |

**Soluciones de balanceo:**

| Solución | Tipo | Notas |
|---|---|---|
| HAProxy | Software (Linux) | Muy usado; rendimiento muy alto; TCP y HTTP |
| Nginx | Software (Linux) | Servidor web + proxy + balanceador |
| Windows NLB | Software (Windows) | Network Load Balancing integrado en Windows Server |
| F5 BIG-IP | Hardware/software | Solución empresarial de alto rendimiento |
| Azure Load Balancer / AWS ELB | Cloud | Balanceo gestionado en la nube |

---

# 8. Actualización del sistema operativo

## 8.1. Tipos de actualizaciones

| Tipo | Descripción | Urgencia |
|---|---|---|
| Actualización de seguridad | Corrige vulnerabilidades identificadas (CVE) | Crítica → aplicar cuanto antes |
| Parche (hotfix / patch) | Corrección de un error concreto | Alta |
| Actualización funcional | Añade nuevas características | Normal |
| Service Pack / Feature Update | Conjunto acumulado de actualizaciones | Planificada en ventana de mantenimiento |
| Actualización de firmware | Mejoras en BIOS/UEFI o firmware de dispositivos | Según necesidad |

---

## 8.2. Estrategias y herramientas de actualización centralizada

| Estrategia | Descripción | Entorno típico |
|---|---|---|
| Automática | El SO descarga e instala sin intervención | Usuarios finales |
| Manual | El administrador aplica cada actualización | Servidores críticos |
| Programada | Se aplican en ventana de mantenimiento planificada | Producción |
| Centralizada | Un servidor gestiona y distribuye las actualizaciones | Corporativo / AGE |

**Herramientas de gestión centralizada:**

| Herramienta | Plataforma | Función |
|---|---|---|
| WSUS (Windows Server Update Services) | Windows | Aprueba y distribuye actualizaciones de Windows |
| SCCM / Endpoint Configuration Manager | Windows | Gestión completa: parches, software, inventario |
| Ansible | Linux/Windows | Automatización de despliegues y aplicación de parches |
| Red Hat Satellite | RHEL/CentOS | Gestión centralizada en entornos Red Hat |
| Landscape | Ubuntu | Gestión centralizada de servidores Ubuntu |

---

## 8.3. Buenas prácticas en la actualización

| Práctica | Descripción |
|---|---|
| Entorno de pruebas | Probar la actualización en staging antes de producción |
| Copia de seguridad previa | Realizar backup antes de aplicar cambios importantes |
| Priorizar seguridad | Aplicar parches críticos (CVE) lo antes posible |
| Documentar cambios | Registrar qué se actualizó, cuándo y por quién |
| Plan de rollback | Definir cómo volver al estado anterior si falla |
| Ventanas de mantenimiento | Actualizar en horas de baja actividad |

---

# 9. Mantenimiento del sistema operativo

## 9.1. Tipos de mantenimiento

| Tipo | Cuándo | Objetivo | Ejemplo |
|---|---|---|---|
| **Preventivo** | Antes del fallo | Evitar que ocurra | Monitorizar disco, revisar logs, limpiar temporales |
| **Correctivo** | Tras el fallo | Solucionar el problema | Reparar archivo corrupto, restaurar backup |
| **Evolutivo** | Mejora planificada | Mejorar funcionalidad o rendimiento | Migrar a nueva versión del SO |
| **Perfectivo** | Optimización continua | Mejorar sin cambiar funcionalidad | Ajustar parámetros del kernel |

---

## 9.2. Tareas y herramientas de mantenimiento

| Tarea | Windows | Linux |
|---|---|---|
| Limpieza de temporales | `cleanmgr`, `%temp%` | `/tmp`, `apt autoremove`, `journalctl --vacuum-size=500M` |
| Desfragmentación | `defrag` (solo HDD) | No necesario en ext4/XFS/SSD |
| Comprobación de disco | `chkdsk /f /r` | `fsck /dev/sdaX` (sistema desmontado) |
| Gestión de logs | Visor de eventos (`eventvwr`) | `/var/log`, `journalctl`, `logrotate` |
| Gestión de procesos | `taskmgr`, `tasklist`, `taskkill` | `ps aux`, `top`, `kill`, `killall` |
| Backup | `wbadmin`, `robocopy`, VSS | `rsync`, `tar`, `cron`, `bacula` |
| Planificación de tareas | Programador de tareas (`taskschd.msc`) | `cron` / `crontab -e`, `at` |

---

## 9.3. Monitorización del sistema

**Métricas clave a monitorizar:**

| Métrica | Herramienta Windows | Herramienta Linux |
|---|---|---|
| Uso de CPU | Administrador de tareas, Monitor de rendimiento | `top`, `htop`, `mpstat` |
| Uso de RAM | Monitor de recursos (`resmon`) | `free -h`, `vmstat` |
| Espacio en disco | Administrador de discos | `df -h`, `du -sh` |
| E/S de disco | Monitor de rendimiento (`perfmon`) | `iostat`, `iotop` |
| Red | Monitor de recursos, `netstat` | `ss -tulpn`, `iftop`, `nethogs` |
| Logs y eventos | Visor de eventos | `journalctl -f`, `tail -f /var/log/syslog` |

**SNMP** (Simple Network Management Protocol): protocolo estándar para la monitorización remota de dispositivos y servidores en red. Usa el puerto UDP 161.

---

# 10. Reparación del sistema operativo

## 10.1. Tipos de fallos

| Tipo de fallo | Causa habitual | Síntoma típico |
|---|---|---|
| Fallo de arranque | Bootloader dañado, MBR/GPT corrupto | Pantalla negra, error "bootmgr missing" o "GRUB rescue" |
| Archivos del sistema corruptos | Actualización fallida, apagado abrupto | BSOD en Windows, kernel panic en Linux |
| Fallo de hardware | Disco dañado, RAM defectuosa, sobrecalentamiento | Errores de lectura, cuelgues, reinicios espontáneos |
| Infección por malware | Virus, ransomware, rootkits | Comportamiento anómalo, cifrado de datos, lentitud |
| Configuración incorrecta | Error humano, fallo en actualización | Servicios que no arrancan, red no funciona |

---

## 10.2. Técnicas de reparación

| Técnica | Cuándo usarla | Herramienta |
|---|---|---|
| Restauración del sistema | Un cambio reciente ha causado el fallo | `rstrui.exe` (Windows), snapshots LVM (Linux) |
| Reparación de archivos del sistema | Archivos corruptos del SO | `sfc /scannow` + `DISM` (Windows) |
| Reparación de arranque | Bootloader dañado | WRE + `bootrec` (Windows), `grub-install` (Linux) |
| Comprobación de disco | Sectores defectuosos o ficheros corruptos | `chkdsk /f /r` (Windows), `fsck` (Linux) |
| Modo seguro / rescue | Sistema no arranca normalmente | F8 → Modo seguro (Windows), `rescue.target` (Linux) |
| Reinstalación del SO | Daño irreparable en el sistema | Instalador Windows, DVD/USB Live Linux |
| Recuperación desde backup | Pérdida de datos o sistema completo | `wbadmin restore`, `rsync`, snapshots |

---

## 10.3. Herramientas de diagnóstico y recuperación

**Windows:**

| Herramienta | Uso |
|---|---|
| `sfc /scannow` | Comprueba y repara archivos protegidos del sistema (System File Checker) |
| `DISM /Online /Cleanup-Image /RestoreHealth` | Repara la imagen del sistema usando Windows Update o un WIM |
| `chkdsk C: /f /r` | Comprueba errores en el disco y repara sectores defectuosos |
| `bootrec /fixmbr` | Repara el Master Boot Record |
| `bootrec /fixboot` | Repara el sector de arranque |
| `bootrec /rebuildbcd` | Reconstruye el BCD (Boot Configuration Data) |
| WinPE / WRE | Entorno de recuperación; permite arrancar sin SO operativo |
| Restaurar sistema | Vuelve a un punto de restauración anterior sin afectar documentos |

**Linux:**

| Herramienta | Uso |
|---|---|
| `fsck /dev/sdaX` | Comprueba y repara sistema de ficheros (disco desmontado) |
| `grub-install /dev/sda` | Reinstala el bootloader GRUB en el disco |
| `update-grub` | Regenera la configuración de GRUB (`/boot/grub/grub.cfg`) |
| Live CD/USB | Arrancar Linux desde medio externo para reparar el sistema instalado |
| `rescue.target` / `rd.break` | Arranque mínimo en modo rescate para reparación |
| `journalctl -xe` | Ver logs detallados de errores del sistema |
| `memtest86+` | Diagnóstico de memoria RAM desde arranque |

---

# 11. Seguridad en la administración del sistema

## 11.1. Principios de seguridad: la tríada CIA

| Principio | Descripción | Ejemplo en administración de SO |
|---|---|---|
| **Confidencialidad** | La información solo es accesible por quien está autorizado | Permisos NTFS/chmod, cifrado de disco, control de accesos |
| **Integridad** | La información no se modifica sin autorización | Hash de archivos, firma digital, permisos de solo lectura |
| **Disponibilidad** | La información y el sistema están accesibles cuando se necesitan | Redundancia, copias de seguridad, UPS, RAID |

La tríada CIA es la base de cualquier política de seguridad de la información (ISO 27001, ENS).

---

## 11.2. Medidas técnicas de seguridad en el sistema operativo

| Medida | Windows | Linux |
|---|---|---|
| Control de accesos con mínimo privilegio | UAC, permisos NTFS, grupos | sudo, permisos rwx, SELinux/AppArmor |
| Firewall del SO | Windows Defender Firewall | `iptables` / `nftables` / `ufw` |
| Antivirus/antimalware | Windows Defender | ClamAV, herramientas EDR |
| Cifrado de disco | BitLocker (TPM + PIN) | LUKS (`cryptsetup`) |
| Auditoría y logs | Visor de eventos, políticas de auditoría GPO | `auditd`, `/var/log/auth.log`, `journalctl` |
| Actualizaciones de seguridad | Windows Update, WSUS | `apt upgrade`, `yum update` |
| Autenticación fuerte | Contraseñas complejas, MFA, tarjeta inteligente | PAM, MFA, claves SSH |
| Copias de seguridad | `wbadmin`, VSS | `rsync`, `tar`, snapshots LVM |

**ENS (Esquema Nacional de Seguridad):** marco de referencia obligatorio para la seguridad de los sistemas de información en la Administración Pública española. Define medidas en tres dimensiones (confidencialidad, integridad y disponibilidad) y tres niveles (básico, medio, alto).

---

## 11.3. PKI y certificados digitales

**PKI (Public Key Infrastructure)** es el conjunto de roles, políticas, hardware, software y procedimientos necesarios para crear, gestionar, distribuir, usar y revocar certificados digitales.

| Concepto | Descripción |
|---|---|
| Clave pública / privada | Par de claves asimétricas; lo que cifra una solo lo descifra la otra |
| Certificado X.509 | Estándar de formato de certificado; contiene clave pública, identidad del titular, firma de la CA |
| CA (Certification Authority) | Entidad que emite y firma certificados; garantiza la identidad |
| CA raíz | CA de nivel superior; autofirmada; su certificado viene preinstalado en el SO |
| CA intermedia | CA firmada por la CA raíz; emite certificados a usuarios y servidores |
| CRL (Certificate Revocation List) | Lista de certificados revocados publicada por la CA |
| OCSP (Online Certificate Status Protocol) | Consulta en tiempo real sobre la validez de un certificado |
| SSL/TLS | Protocolo de comunicación cifrada; usa certificados X.509 para autenticar el servidor |
| HTTPS | HTTP sobre TLS; puerto 443; certificado del servidor validado por el cliente |
| Let's Encrypt | CA gratuita y automatizada; emite certificados DV para HTTPS |
| DNIe (DNI electrónico) | Documento de identidad español con chip; incluye certificados X.509 del ciudadano |
| Firma digital | Hash del documento cifrado con la clave privada del firmante; verificable con su clave pública |
| Sello de tiempo (TSA) | Tercero de confianza que certifica que un documento existía en un momento dado |

**Comando útiles:**

| Comando | Acción |
|---|---|
| `openssl genrsa -out private.key 4096` | Generar clave RSA de 4096 bits |
| `openssl req -new -key private.key -out server.csr` | Crear CSR (Certificate Signing Request) |
| `openssl x509 -in cert.crt -text -noout` | Ver contenido de un certificado |
| `openssl verify -CAfile ca.crt cert.crt` | Verificar certificado contra una CA |

---

## 11.4. ENS (Esquema Nacional de Seguridad) — detalle

El ENS está regulado por el **Real Decreto 311/2022**, que deroga el anterior RD 3/2010. Es obligatorio para todas las Administraciones Públicas españolas y para los proveedores de servicios que traten datos de la AGE.

**Dimensiones de seguridad:**

| Dimensión | Sigla | Descripción |
|---|---|---|
| Disponibilidad | D | Acceso al sistema y a sus datos cuando se necesita |
| Autenticidad | A | Identificar con certeza al usuario y al origen de los datos |
| Integridad | I | Garantizar que los datos no han sido modificados sin autorización |
| Confidencialidad | C | Solo acceden quienes están autorizados |
| Trazabilidad | T | Quién hizo qué y cuándo; no repudio |

**Niveles de seguridad:**

| Nivel | Criterio | Ejemplo |
|---|---|---|
| Básico | Daño limitado si se compromete la seguridad | Web informativa de un ayuntamiento |
| Medio | Daño grave para los intereses de la organización | Gestión de personal; expedientes administrativos |
| Alto | Daño muy grave; puede comprometer la seguridad nacional | Datos penitenciarios; fuerzas y cuerpos de seguridad |

**Proceso de adecuación ENS:**

1. Análisis diferencial (GAP análisis vs. ENS)
2. Análisis y gestión de riesgos (MAGERIT es la metodología oficial)
3. Plan de adecuación con las medidas a implementar
4. Implantación de medidas de seguridad
5. Declaración de Aplicabilidad (DA)
6. Auditoría de seguridad (cada 2 años para nivel medio y alto)
7. Certificación ENS (emitida por entidad acreditada ENAC)

**Relación con ISO 27001:** el ENS es obligatorio por ley en la AGE; ISO 27001 es una norma internacional voluntaria. Ambos tienen un enfoque de ciclo de mejora continua (PDCA). Obtener la certificación ISO 27001 facilita la adecuación al ENS.

---

## 11.5. Hardening del sistema operativo

**Hardening** es el proceso de reducir la superficie de ataque del sistema eliminando componentes, servicios y configuraciones innecesarias.

**Principios de hardening:**

| Principio | Descripción |
|---|---|
| Mínimo privilegio | Cada usuario/proceso solo tiene los permisos estrictamente necesarios |
| Superficie de ataque mínima | Desinstalar/deshabilitar todo lo que no se usa |
| Defensa en profundidad | Múltiples capas de seguridad; si una falla, las otras protegen |
| Fail-secure | En caso de error, el sistema debe quedar en estado seguro (denegar por defecto) |

**Medidas de hardening (Windows):**

| Medida | Descripción |
|---|---|
| Deshabilitar servicios innecesarios | Telnet, FTP, Remote Registry si no se usan |
| Renombrar cuenta Administrador | Dificulta ataques de fuerza bruta |
| Directiva de contraseñas | Longitud mínima 12 chars, complejidad, historial, expiración |
| Deshabilitar LLMNR y NetBIOS | Evitar ataques de envenenamiento (responder) |
| Activar Windows Defender + Firewall | Protección básica siempre activa |
| AppLocker / WDAC | Listas blancas de aplicaciones autorizadas |
| BitLocker | Cifrado de disco en reposo |
| Parches al día | Aplicar actualizaciones de seguridad puntualmente |

**Medidas de hardening (Linux):**

| Medida | Descripción |
|---|---|
| Deshabilitar root SSH | `PermitRootLogin no` en `/etc/ssh/sshd_config` |
| Autenticación SSH por clave | Deshabilitar contraseñas: `PasswordAuthentication no` |
| fail2ban | Bloquea IPs tras N intentos fallidos de login |
| auditd | Registro detallado de llamadas al sistema |
| SELinux/AppArmor | Control de acceso obligatorio |
| Deshabilitar servicios | `systemctl disable <servicio>` si no se usa |
| umask restrictivo | `umask 027` (ficheros nuevos sin permisos para otros) |
| Actualizaciones automáticas | `unattended-upgrades` (Debian/Ubuntu) |
| CIS Benchmarks | Guías de referencia de seguridad por SO y versión; auditables con `lynis` |

---

## 11.6. LOPD/RGPD y administración de sistemas

Los administradores de sistemas gestionan sistemas que procesan datos personales, por lo que deben conocer la normativa de protección de datos.

| Normativa | Ámbito | Descripción |
|---|---|---|
| RGPD (Reglamento General de Protección de Datos) | Unión Europea | Reglamento 2016/679; aplicación directa en todos los EEMM desde mayo 2018 |
| LOPDGDD (Ley Orgánica 3/2018) | España | Adapta el RGPD al ordenamiento español; deroga la LOPD de 1999 |
| AEPD | España | Agencia Española de Protección de Datos; autoridad de control |

**Principios RGPD aplicables a la administración de sistemas:**

| Principio | Implicación para el administrador |
|---|---|
| Licitud, lealtad y transparencia | Solo tratar datos con base legal; no recopilar más de lo necesario |
| Limitación de la finalidad | Los logs del sistema no pueden usarse para fines distintos al mantenimiento |
| Minimización de datos | No recopilar ni conservar más datos de los necesarios |
| Exactitud | Datos actualizados; eliminar los incorrectos |
| Limitación del plazo de conservación | Los logs deben tener un plazo de retención definido y cumplirse |
| Integridad y confidencialidad | Medidas técnicas adecuadas; cifrado; control de accesos |
| Responsabilidad proactiva | Documentar las medidas aplicadas; privacy by design/default |

**Obligaciones prácticas del administrador:**

- **Logs**: definir retención (p. ej. 6 meses para logs de acceso); anonimizar IPs si se usan para analítica
- **Brechas de seguridad**: notificar a la AEPD en **72 horas** si hay riesgo para los derechos de los afectados
- **DPO (Delegado de Protección de Datos)**: figura obligatoria en la AGE y en organismos que traten datos a gran escala
- **Registro de actividades de tratamiento**: documento que describe cada tratamiento de datos (Art. 30 RGPD)
- **DPIA (Evaluación de Impacto)**: obligatoria cuando el tratamiento implique alto riesgo (videovigilancia, perfilado, datos sensibles)

---

# Miniresumen final del tema

| Bloque | Contenido clave para el examen |
|---|---|
| SO y software de base | SO gestiona hardware y apps; kernel monolítico (Linux), híbrido (Windows NT); arranque: BIOS/UEFI → POST → bootloader → kernel → init; BIOS usa MBR; UEFI usa GPT + Secure Boot |
| Sistemas de ficheros | FAT32 (4 GB), NTFS (permisos, journaling, cifrado EFS), ext4/XFS/Btrfs (Linux); journaling previene corrupción; `/etc/fstab` para montaje automático |
| Gestión de procesos | Estados: ready/running/blocked/zombie; algoritmos: FCFS, SJF, Round Robin, prioridad, colas multinivel; deadlock; señales Linux (SIGTERM=15, SIGKILL=9) |
| Gestión de memoria | Paginación (pages+frames), segmentación, memoria virtual, TLB, page fault, thrashing; swap (Linux) / pagefile.sys (Windows) |
| Windows | Win 10/11/Server 2022; permisos NTFS + ACL (DACL/SACL); AD: bosque/árbol/dominio/DC/RODC/catálogo global; FSMO (5 roles); GPO (LSDOU); BitLocker/EFS; Hyper-V Tipo 1 |
| Linux | Familias: Debian (`apt`), Red Hat (`dnf`), SUSE (`zypper`); chmod octal; systemd/systemctl/targets; iptables/nftables/ufw; SELinux (enforcing/permissive); LVM (PV/VG/LV); bash/cron |
| Virtualización | Tipo 1 (ESXi, Hyper-V, KVM) vs Tipo 2 (VirtualBox); Docker (imagen/contenedor/Dockerfile/Compose); Kubernetes (Pod/Deployment/Service/kubelet) |
| Almacenamiento | RAID 0/1/5/6/10 (discos mínimos, tolerancia); DAS/NAS/SAN; iSCSI/FC; LVM (Linux) |
| Copias de seguridad | Completa/Incremental/Diferencial/Sintética; RTO (tiempo recuperación) y RPO (datos perdidos); regla 3-2-1; rsync/tar/wbadmin/VSS |
| Alta disponibilidad | Failover/failback; WSFC (Windows); Pacemaker+Corosync (Linux); HAProxy/Nginx LB; "cinco nueves" = 5 min downtime/año |
| Actualización | CVE; WSUS/Ansible para centralizar; probar en staging + backup + rollback |
| Seguridad | CIA + trazabilidad; hardening (fail2ban, SELinux, CIS); PKI/X.509/CA/TLS; ENS (RD 311/2022, niveles básico/medio/alto, dimensiones DAICT); RGPD/LOPDGDD (72h breach, DPO, DPIA) |

---

## Repaso rápido

**Componentes del sistema**

| Componente | Descripción | Ejemplos |
|---|---|---|
| Sistema operativo | Software que gestiona hardware y permite ejecutar aplicaciones | Windows 11, Ubuntu 24, RHEL 9 |
| Kernel | Núcleo del SO; interactúa directamente con el hardware | Linux kernel, NT kernel (Windows) |
| Driver / Controlador | Software que permite al SO comunicarse con un dispositivo hardware | Driver NIC, driver GPU |
| Firmware | Software grabado en el chip; controla el hardware desde el inicio | BIOS/UEFI, firmware SSD |
| Utilidades del sistema | Herramientas de administración y diagnóstico incluidas con el SO | Administrador de tareas, top |
| Hypervisor | Software que permite ejecutar máquinas virtuales sobre el hardware | Hyper-V, KVM, VMware ESXi |
| Contenedor | Entorno aislado que comparte el kernel del SO anfitrión | Docker, Podman |

**Tipos de kernel**

| Tipo | Modelo | Ejemplo | Ventaja |
|---|---|---|---|
| Monolítico | Todo en espacio kernel | Linux | Rápido |
| Microkernel | Solo servicios mínimos en kernel | Minix, QNX | Seguro y estable |
| Híbrido | Combinación monolítico + microkernel | Windows NT, macOS XNU | Equilibrio |
| Exokernel | Mínima abstracción | Investigación | Control total |

**Sistemas de ficheros**

| Sistema | SO | Características clave |
|---|---|---|
| NTFS | Windows | ACLs, journaling, cifrado EFS, compresión; bloques de 4 KB |
| FAT32 | Windows/USB | Sin permisos; máx. fichero 4 GB; máx. partición 2 TB |
| exFAT | USB/SD | Sin límite práctico de tamaño; no tiene journaling |
| ext4 | Linux | Journaling, extents, hasta 1 EiB; estándar Linux |
| XFS | Linux (RHEL) | Alto rendimiento, grandes archivos; no reduce tamaño en caliente |
| Btrfs | Linux (SUSE, Fedora) | Copy-on-write, snapshots integrados, checksums |
| ZFS | Solaris/FreeBSD/Linux | Pool de almacenamiento, integridad, snapshots, RAID-Z |

**Actualizaciones y estrategias**

| Tipo | Finalidad | Urgencia |
|---|---|---|
| Actualización de seguridad | Corrige vulnerabilidades (CVE) | Crítica — aplicar cuanto antes |
| Parche (hotfix/patch) | Corrección de error concreto | Alta |
| Actualización funcional | Nuevas características | Normal |
| Service Pack / Feature Update | Conjunto acumulado de actualizaciones | Planificada |
| Actualización de firmware | Mejoras en BIOS/UEFI | Según necesidad |

| Herramienta centralizada | Plataforma | Función |
|---|---|---|
| WSUS | Windows | Aprueba y distribuye actualizaciones Windows en la red |
| SCCM / Endpoint Config. Manager | Windows | Parches, inventario, despliegue de software |
| Ansible | Linux/Windows | Automatización de despliegues y aplicación de parches |
| Red Hat Satellite | RHEL | Gestión centralizada en entornos Red Hat |
| Landscape | Ubuntu | Gestión centralizada servidores Ubuntu |

**RAID: niveles principales**

| Nivel | Discos mín. | Tolerancia fallos | Uso espacio | Uso típico |
|---|---|---|---|---|
| RAID 0 | 2 | 0 (ninguno) | 100 % | Rendimiento puro |
| RAID 1 | 2 | 1 disco | 50 % | SO, BD críticas |
| RAID 5 | 3 | 1 disco | (n−1)/n | Servidores de ficheros |
| RAID 6 | 4 | 2 discos | (n−2)/n | Archivos grandes |
| RAID 10 | 4 | 1 por espejo | 50 % | BD alto rendimiento |

**Virtualización**

| Tipo | Hipervisor | Ejemplo | Característica |
|---|---|---|---|
| Tipo 1 (bare metal) | Corre sobre hardware | VMware ESXi, Hyper-V, KVM | Mayor rendimiento |
| Tipo 2 (hosted) | Corre sobre SO anfitrión | VirtualBox, VMware Workstation | Fácil de instalar |
| Contenedor | Comparte kernel del host | Docker, Podman | Ligero, rápido |
| Cloud | IaaS, PaaS, SaaS | AWS EC2, Azure VM, Google Cloud | Escalable bajo demanda |

**Copias de seguridad**

| Tipo | Qué copia | Velocidad backup | Velocidad restauración |
|---|---|---|---|
| Completa (full) | Todo | Lenta | Rápida |
| Incremental | Solo cambios desde última copia | Muy rápida | Lenta (requiere toda la cadena) |
| Diferencial | Cambios desde última copia completa | Media | Media |
| Sintética full | Combina full + incrementales sin acceso al origen | Rápida | Rápida |

**Mantenimiento, reparación y seguridad**

| Tipo mantenimiento | Cuándo | Acciones típicas |
|---|---|---|
| Preventivo | Antes del fallo | Limpieza, logs, actualizaciones, monitorización |
| Correctivo | Al detectar el fallo | Reparar, restaurar backup |
| Evolutivo | Mejora planificada | Migración a nueva versión del SO |
| Perfectivo | Optimización continua | Ajuste de parámetros del kernel |

| Tríada CIA | Descripción | Ejemplo en SO |
|---|---|---|
| Confidencialidad | Solo accede quien está autorizado | Permisos NTFS, chmod, BitLocker, LUKS |
| Integridad | Los datos no se modifican sin autorización | Hash, firma digital, permisos |
| Disponibilidad | El sistema está accesible cuando se necesita | RAID, backup, UPS, clustering HA |

**ENS (Esquema Nacional de Seguridad) — niveles y dimensiones**

| Nivel ENS | Impacto de un incidente | Medidas |
|---|---|---|
| Básico | Perjuicio limitado | Medidas mínimas obligatorias |
| Medio | Perjuicio grave | Medidas básicas + reforzadas |
| Alto | Perjuicio muy grave o catastrófico | Medidas medias + avanzadas |