Homelab SOC #03 - Preparando el Host (Arch Linux)
En la publicación anterior definí la arquitectura inicial del laboratorio y cómo estarán distribuidos los diferentes equipos que formarán parte del entorno SOC.
Antes de instalar el primer servidor, necesitaba preparar la pieza más importante de toda la infraestructura.
El equipo anfitrión.
Aunque normalmente pensamos en un SOC como un conjunto de servidores, dashboards y herramientas de monitoreo, existe una capa previa que permite que todo eso sea posible.
La infraestructura donde se ejecutará el laboratorio.
En este caso, esa responsabilidad estará a cargo de mi estación de trabajo con Arch Linux.
¿Qué necesita mi máquina principal para soportar un laboratorio SOC?
Esta es la pregunta principal que responde este capítulo.
Un laboratorio SOC requiere ejecutar varios sistemas operativos simultáneamente.
Un servidor encargado de recolectar eventos.
Equipos clientes generando actividad.
Máquinas utilizadas para análisis y simulaciones.
Todo esto significa que el equipo anfitrión debe tener suficientes recursos para ejecutar múltiples cargas de trabajo al mismo tiempo.
El objetivo no es únicamente instalar herramientas.
El objetivo es preparar una base estable, segura y capaz de crecer junto con el proyecto.
El Host del laboratorio
Antes de comenzar cualquier instalación, es importante conocer exactamente sobre qué hardware se construirá el laboratorio.
Este será el equipo físico que funcionará como capa principal de virtualización.
Inventario del SOC Homelab Host
╭──────────────────────────────╮
│ SOC HOMELAB HOST │
├──────────────────────────────┤
│ OS Arch Linux │
│ Kernel Linux 7.x │
│ CPU Intel Core i7 │
│ RAM 32 GB │
│ Storage 2x NVMe 1TB │
│ GPU Integrated │
╰──────────────────────────────╯
Este equipo no será parte del SOC directamente.
Su función será proporcionar los recursos necesarios para ejecutar los diferentes componentes del laboratorio.
Desde aquí funcionarán:
- Debian Server como servidor principal del SOC.
- Windows como equipo cliente monitorizado.
- Linux Agents para generar eventos.
- Herramientas de análisis y pruebas.
La arquitectura será la siguiente:
Relación entre hardware, host y máquinas virtuales
Hardware físico
│
▼
┌─────────────────┐
│ Arch Linux Host │
└────────┬────────┘
│
▼
Virtualización
│
┌───────┼────────┐
│ │ │
▼ ▼ ▼
Debian Windows Ubuntu
Server Agent Agent
Preparando el sistema operativo
Arch Linux será la capa base del laboratorio.
Una de sus principales ventajas es permitir construir un sistema completamente adaptado a las necesidades del usuario, instalando únicamente los componentes necesarios.
Antes de comenzar con la virtualización es importante asegurar que el sistema se encuentre actualizado.
sudo pacman -Syu
Mantener actualizado el host permite:
- Corregir vulnerabilidades conocidas.
- Mantener paquetes seguros.
- Evitar problemas de compatibilidad.
- Tener una base limpia antes de agregar nuevas herramientas.
Un laboratorio de seguridad debe comenzar desde una base segura. No tiene sentido analizar vulnerabilidades dentro de máquinas virtuales mientras el propio sistema anfitrión está desactualizado.
Verificando los recursos disponibles
Una de las partes más importantes antes de crear máquinas virtuales es conocer exactamente los recursos disponibles.
Cada sistema operativo que agreguemos consumirá memoria, procesador y almacenamiento.
Por eso, antes de comenzar debemos responder:
¿Cuántas máquinas puedo ejecutar?
¿Qué recursos puedo asignar a cada una?
¿Qué límites tendrá mi laboratorio?
Procesador
El primer paso es revisar las características del CPU.
lscpu
Entre la información más importante encontramos:
- Modelo del procesador.
- Cantidad de núcleos.
- Cantidad de hilos.
- Arquitectura.
- Soporte de virtualización.
Ejemplo:
CPU(s): 12
Virtualization: VT-x
La virtualización por hardware será un requisito fundamental para ejecutar máquinas virtuales con buen rendimiento.
Memoria RAM
La memoria será probablemente el recurso más importante del laboratorio.
free -h
Con 32 GB de RAM es posible ejecutar un entorno pequeño de SOC distribuyendo los recursos de la siguiente manera:
Distribución inicial de memoria
Debian Server SOC 4 GB
Windows Agent 4 GB
Ubuntu Agent 2 GB
Kali Linux 4 GB
Arch Linux Host 8 GB
Total aproximado 22 GB
La memoria restante permitirá mantener margen para pruebas adicionales, herramientas temporales o nuevas máquinas virtuales.
Almacenamiento
El laboratorio utilizará dos unidades NVMe.
Para conocer la estructura actual del almacenamiento:
lsblk
Ejemplo:
nvme0n1 1TB
nvme1n1 1TB
La separación del almacenamiento ofrece varias ventajas:
- Mejor organización.
- Mayor facilidad para realizar backups.
- Mejor gestión de snapshots.
- Separación entre sistema operativo y máquinas virtuales.
Una posible distribución será:
NVMe 1
│
└── Arch Linux Host
NVMe 2
│
└── Máquinas Virtuales del SOC
Habilitando la virtualización
Antes de crear cualquier máquina virtual debemos confirmar que el procesador tiene habilitada la virtualización.
lscpu | grep Virtualization
Resultado esperado:
Virtualization: VT-x
La virtualización permite ejecutar sistemas operativos completos dentro del equipo principal utilizando los recursos físicos disponibles.
Sin esta tecnología, las máquinas virtuales tendrían un rendimiento muy limitado.
La virtualización por hardware es una característica del procesador. En algunos equipos debe habilitarse manualmente desde la BIOS/UEFI.
Herramientas base del entorno
Antes de instalar la plataforma de virtualización prepararé algunas herramientas básicas para administrar el sistema.
sudo pacman -S git vim curl wget htop fastfetch
Estas herramientas serán utilizadas constantemente durante el desarrollo del laboratorio.
Especialmente fastfetch, que permite visualizar rápidamente información del sistema.
fastfetch
Ejemplo:
OS: Arch Linux
Kernel: Linux 7.x
CPU: Intel Core i7
Memory: 32 GB
Shell: zsh
WM: Hyprland
Además de ser útil, esta información será parte de la identidad visual del proyecto.
Seguridad básica del Host
Al tratarse de la base donde funcionará todo el laboratorio, el host también debe tener una configuración segura.
Aunque este equipo será utilizado principalmente para virtualización y pruebas controladas, aplicar buenas prácticas desde el inicio ayudará a mantener una infraestructura más ordenada.
Un laboratorio SOC no solamente debe enfocarse en detectar problemas dentro de las máquinas virtuales.
También debe proteger la plataforma donde todas esas máquinas están funcionando.
Firewall
Una de las primeras capas de protección será establecer reglas básicas de red mediante un firewall.
Para ello instalaré una herramienta sencilla de administración:
sudo pacman -S ufw
El objetivo inicial será controlar qué servicios pueden comunicarse con el equipo anfitrión.
Posteriormente, conforme avance el laboratorio, estas reglas podrán adaptarse según las necesidades de cada servicio.
Acceso remoto seguro
Durante la evolución del proyecto posiblemente será necesario administrar algunos componentes remotamente.
Por esa razón es importante preparar correctamente cualquier acceso mediante SSH.
Algunas recomendaciones que formarán parte de la configuración del entorno serán:
- Deshabilitar el acceso directo del usuario root.
- Utilizar autenticación mediante claves SSH.
- Evitar contraseñas débiles.
- Mantener actualizado el servicio SSH.
- Revisar periódicamente los accesos permitidos.
Aunque el laboratorio sea doméstico, las buenas prácticas deben mantenerse desde el inicio.
Backups y recuperación
Un laboratorio de seguridad cambia constantemente.
Durante las siguientes fases se crearán máquinas virtuales, se instalarán herramientas, se realizarán configuraciones y también será normal experimentar con diferentes escenarios.
Por esta razón es importante pensar en la recuperación antes de necesitarla.
Algunas estrategias que serán consideradas:
- Snapshots utilizando BTRFS.
- Backup de archivos de configuración.
- Copias de scripts utilizados durante el proyecto.
- Exportación periódica de máquinas virtuales.
Un laboratorio de aprendizaje puede contener semanas o meses de trabajo. Tener mecanismos de recuperación evita perder avances importantes por una mala configuración o una prueba fallida.
Estado actual del Host
Después de completar esta preparación, la primera capa del laboratorio está lista.
Actualmente contamos con:
✓ Arch Linux como sistema anfitrión.
✓ Recursos del equipo identificados.
✓ Virtualización por hardware disponible.
✓ Herramientas básicas instaladas.
✓ Consideraciones iniciales de seguridad.
La infraestructura física ya está preparada para comenzar a recibir los primeros componentes del SOC.
¿Qué sigue?
Hasta este punto solamente tenemos la base.
Todavía no existe un servidor de monitoreo.
No tenemos agentes generando eventos.
No hay alertas ni dashboards.
Pero todos esos elementos necesitan un lugar donde ejecutarse.
Ese será el siguiente paso.
En el próximo capítulo instalaremos VirtualBox como plataforma de virtualización y comenzaremos a crear las primeras máquinas que formarán parte del laboratorio.
La arquitectura definida anteriormente empezará a convertirse en un entorno funcional.
Lo aprendido
Preparar el host puede parecer una etapa poco emocionante dentro de la construcción de un SOC.
No hay gráficos.
No existen alertas.
No estamos analizando incidentes.
Sin embargo, esta fase representa una de las decisiones más importantes del proyecto.
Una infraestructura sólida comienza desde la base.
Un sistema actualizado, correctamente configurado y con recursos bien administrados permitirá que todas las herramientas posteriores funcionen de manera más estable.
Este laboratorio no se construirá únicamente instalando aplicaciones.
Se construirá tomando decisiones técnicas, entendiendo cada componente y documentando todo el proceso.
Ese es precisamente el objetivo de Homelab SOC.
Mostrar no solamente el resultado final.
Sino también cada paso necesario para llegar hasta él.
En el siguiente capítulo comenzaremos con la capa de virtualización utilizando VirtualBox.