Purga el tráfico impuro. Redefine las reglas de supervivencia.
Pathogen es una interfaz de terminal (TUI) extremadamente rápida, escrita en Rust y potenciada por la arquitectura moderna de nftables en el kernel de Linux. Está diseñada para administradores de sistemas que buscan asegurar sus servidores con la eficiencia de la línea de comandos pero con la elegancia visual de una aplicación interactiva.
Inspirado en la estética biomecánica y oscura de H.R. Giger y el universo de Prometheus / Alien: Covenant, Pathogen no solo es una herramienta de administración; es un guardián implacable.
- Gestión de Puertos (Bloqueo Quirúrgico): Bloquea y desbloquea puertos TCP/UDP al instante.
- Cuarentena de IPs (Blacklists de Alto Rendimiento): Usa
Setsde nftables para aislar IPs maliciosas sin penalizar el uso del CPU. - Escudo Anti-DDoS y Fuerza Bruta (Rate Limiting): Protege servicios críticos (como SSH o Bases de Datos) limitando dinámicamente la cantidad de conexiones por segundo/minuto por IP usando
Meters. - Registros de Purga (Monitor de Logs): Lee los registros de bloqueos del kernel (
journalctl) directamente desde la interfaz para observar a tus atacantes en tiempo real. - Arquitectura Limpia y Segura: Escrito siguiendo Clean Architecture. El binario en Rust no corre como root; delega las acciones específicas a scripts aislados mediante directivas de
sudoers, manteniendo el principio de mínimos privilegios sin interrumpir la UI.
- OS: Sistema basado en Linux.
- Backend:
nftablesinstalado y habilitado en el sistema. - Compilador:
cargo(Rust) para construir desde el código fuente.
Pathogen incluye un instalador automatizado que compila el binario en modo Release y configura los permisos necesarios para que la TUI fluya sin pedir contraseñas interactivas de sudo.
# Clonar el repositorio
git clone https://github.com/tu-usuario/pathogen-firewall.git
cd pathogen-firewall
# Ejecutar el instalador automático
./install.sh
# Iniciar el guardián
pathogen- Compila el proyecto Rust con
cargo build --release. - Mueve los scripts de infraestructura a
/usr/local/share/pathogen/scripts. - Mueve el binario a
/usr/local/bin/pathogen. - Añade una regla a
/etc/sudoers.d/pathogenpermitiendo a tu usuario ejecutar exclusivamente los 5 scripts del firewall, protegiendo así el resto de tu sistema operativo.
- Menú Principal:
Flecha Arriba/Abajopara navegar,Enterpara acceder. - Pantallas de Listas:
moEscpara volver al menú. - Bloquear (Puertos / IPs): Presiona
b(en reglas) oq(en cuarentena) para abrir el diálogo. - Desbloquear: Presiona
dsobre la regla o IP seleccionada. - Cambiar Formularios: Usa
Tab(para protocolos) oEspacio(para unidades de tiempo). - Salir de la herramienta: Presiona
qen el menú principal.
El código en Rust está estrictamente separado:
- Domain: Entidades puras (
Rule,PortRequest,RateLimitRequest, etc.). - Use Cases: Interfaces de aplicación.
- Infrastructure: Implementación de persistencia interactuando con JSON y Shell Scripts.
- Presentation: Vistas de la terminal usando
ratatuiycrossterm.
Distribuido bajo licencia GNU GPLv3. Úsalo bajo tu propia responsabilidad.