Laboratorio 2B: Hardening Basico Post-Instalacion
Unidad: 2 - Instalación y Configuración
Duración Estimada: 90-120 minutos
Dificultad: Intermedio
Objetivos
- Actualizar el sistema de forma segura
- Configurar UFW sin perder acceso SSH
- Endurecer SSH (minimo viable)
- (Opcional) Instalar Fail2Ban
- (Opcional) Habilitar unattended-upgrades
Requisitos Previos
- Lab 1 completado (Ubuntu Server LTS instalado)
- Acceso SSH funcional
- Usuario con permisos sudo
Warning⚠️ ADVERTENCIA CRÍTICA
Vas a tocar firewall y SSH.
Lo que podría salir mal: - Bloquear tu acceso remoto por SSH.
Cómo prevenirlo: 1. Mantén una sesión SSH abierta mientras pruebas cambios. 2. Permite el puerto SSH en UFW antes de habilitarlo. 3. Valida la sintaxis de sshd antes de reiniciar el servicio.
Pasos del Laboratorio
Paso 1: Actualizar el sistema (20 min)
- 1
- apt update actualiza el indice de paquetes.
- 2
- apt upgrade aplica actualizaciones.
- 3
- apt autoremove limpia dependencias no usadas.
Paso 2: UFW seguro (25-35 min)
Primero identifica el puerto SSH actual:
BASH
1$ sudo ss -lntp | grep sshd
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:("sshd",pid=987,fd=3)- 1
- ss -lntp evidencia el puerto donde escucha sshd.
Ahora configura UFW:
BASH
- 1
- ufw status muestra estado actual.
- 2
- ufw allow 22/tcp permite SSH antes de activar firewall.
- 3
- ufw allow 80/tcp permite HTTP.
- 4
- ufw allow 443/tcp permite HTTPS.
- 5
- ufw enable activa el firewall.
- 6
- ufw status verbose valida reglas activas.
Paso 3: Endurecer SSH (25-35 min)
- 1
- cp crea backup antes de cambios.
- 2
- sshd -t valida sintaxis (antes/despues).
Edita /etc/ssh/sshd_config y aplica minimo:
PermitRootLogin noPasswordAuthentication no(solo si ya tienes claves)MaxAuthTries 3
Luego valida y recarga:
- 1
- sshd -t evita recargar una config invalida.
- 2
- systemctl reload ssh aplica cambios sin cortar sesiones activas.
Paso 4 (opcional): Fail2Ban (20 min)
BASH
- 1
- apt install fail2ban instala Fail2Ban.
- 2
- systemctl status valida servicio.
Paso 5 (opcional): Unattended upgrades (20 min)
BASH
- 1
- apt install unattended-upgrades instala actualizaciones automaticas.
- 2
- systemctl status valida servicio.
Entregables (Evidencia)
ufw status verbosecon reglas y estado active- Evidencia del puerto SSH en escucha (
ss -lntp | grep sshd) sshd -tsin errores- (Opcional)
systemctl status fail2ban --no-pager - (Opcional)
systemctl status unattended-upgrades --no-pager