Arquitectura del Sistema
SentinelOS utiliza Go (Golang) como su motor principal, el cual orquesta los subsistemas subyacentes de Linux. La arquitectura es profundamente modular, asegurando que la capa de la API REST esté completamente desacoplada de la capa de ejecución del sistema.
El Motor Transaccional
El corazón de SentinelOS radica en los paquetes config y runtime. Cuando se solicita un commit, el sistema realiza una secuencia rigurosa de validaciones antes de tocar el kernel de Linux:
- Fase de Validación: El motor verifica errores lógicos (por ejemplo, subredes IP superpuestas, VLANs adjuntas a interfaces padre inexistentes).
- Generación de Diff: El motor compara la Candidate Config con la Running Config para generar un conjunto mínimo de pasos de ejecución.
- Aplicación Atómica: Se ejecutan los scripts de
applyNftables.goy de red. Si algún comando falla, el motor intenta un rollback inmediato.
Evaluación del Firewall: First Match Win
Las políticas de SentinelOS se evalúan de arriba hacia abajo. La primera regla que coincide con un paquete determina su destino (permitir o denegar). Debido a esto, el orden de las reglas es crítico.
Proporcionamos un endpoint específico de la API para mover reglas sin necesidad de eliminarlas y volver a crearlas:
{
"reference_id": 105,
"position": "before"
} NAT y Ruteo
Las reglas NAT (tanto SNAT como DNAT) se evalúan de forma independiente a las políticas de seguridad. Las políticas de seguridad evalúan las IPs reales de los paquetes después de que se ha aplicado el DNAT, o antes de que se aplique el SNAT.