
Firewall ligero y rápido basado en XDP
Siper es un cortafuegos de listas negras IP basado en XDP de alto rendimiento, construido con Go y C (eBPF). Permite descartar tráfico malicioso en la etapa más temprana posible de la pila de red de Linux—el nivel del controlador de red. Al aprovechar XDP (Express Data Path), Siper procesa los paquetes antes de que lleguen al pesado subsistema de red del kernel, proporcionando un rendimiento extremo incluso bajo condiciones de DDoS pesado.
Rendimiento Impulsado por XDP: El filtrado de paquetes ocurre a nivel del controlador de NIC usando XDP_DROP, resultando en una sobrecarga de CPU significativamente menor en comparación con iptables o nftables.
LPM (Coincidencia de Prefijo Más Largo): Soporta bloqueo basado en CIDR (p. ej., 192.168.1.0/24) usando mapas especializados BPF LPM Trie para búsquedas eficientes de rangos IP.
Configuración Persistente: Las reglas se gestionan a través de una lista negra local basada en JSON, permitiendo una fácil auditoría y versionado de las direcciones bloqueadas.
Observabilidad en Tiempo Real: Métricas integradas para rastrear contadores de paquetes y bytes tanto para tráfico descartado como para el que pasa.
Arquitectura Minimalista: Un objeto BPF compilado maneja el plano de datos, mientras que una CLI basada en Go gestiona el plano de control.
Siper opera bajo el principio de separar el Plano de Control (Espacio de Usuario) del Plano de Datos (Espacio de Kernel).
Ingreso: Un paquete llega a la interfaz de red.
Búsqueda: El programa XDP intercepta el paquete y realiza una búsqueda en el mapa block_list.
Veredicto:
Requisitos Previos
make
Mover al directorio build/
Añadir o eliminar rangos IP de su archivo de configuración local:
# Añadir un CIDR a la lista
sudo ./siper add --cidr 1.2.3.0/24 --comment "Botnet conocida"
# Eliminar una regla
sudo ./siper del --cidr 1.2.3.0/24
Adjuntar el cortafuegos a una interfaz de red específica:
# Iniciar el cortafuegos
sudo ./siper run --iface eth0 --path ./blacklist.json
# Detener y desvincular el cortafuegos
sudo ./siper stop --iface eth0
Ver lo que está sucediendo dentro del kernel:
# Ver las claves actualmente activas en el mapa BPF
sudo ./siper dump-keys
# Monitorear estadísticas de descarte/paso
sudo ./siper dump-metrics
Las solicitudes de extracción son bienvenidas. Para correcciones de errores y mejoras pequeñas, envíe una solicitud de extracción. Para cambios importantes, abra primero un issue para discutir lo que le gustaría cambiar.
Este proyecto es software libre; puede redistribuirlo y/o modificarlo bajo los términos de la licencia GPLv3. Consulte LICENSE para más detalles.