El reto: un VPS recién creado empieza a recibir ataques automatizados a los minutos de estar en línea. Sobre él debía construirse una plataforma pública. La respuesta no es una medida, sino un ecosistema: capas independientes donde cada una asume que la anterior puede fallar.
Ninguna capa confía en las demás. Si UFW fallara, los servicios internos siguen sin puertos publicados; si un contenedor se comprometiera, su red no tiene salida a Internet; si alguien tocara la configuración, auditd lo habría registrado. Sobre esta base se apoyan las capas superiores: el pipeline sin SSH expuesto y la firma de imágenes con Cosign.
Un host donde todo lo no autorizado está denegado por defecto: tres puertos abiertos de miles, acceso solo por clave, contenedores que no pueden exponerse por accidente, servicios internos sin salida a Internet, parches de seguridad aplicándose solos y 12 reglas de auditoría vigilando los puntos sensibles. No es una foto: fail2ban banea IPs cada día, y cada medida quedó verificada y documentada antes de apilar la siguiente.