2025-09-21 21:03:27 +02:00
2025-09-21 20:55:36 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-21 21:03:27 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00
2025-09-20 19:00:44 +02:00

CSF Web Admin Panel

Panel de administración web moderno para ConfigServer Security & Firewall (CSF) construido con Next.js 15 y Docker.

CSF Web Admin Panel Docker Next.js TypeScript

🚀 Características

  • Panel de Control Moderno: Interfaz web responsive y moderna
  • Gestión Completa de CSF: Control total del firewall desde el navegador
  • Monitoreo en Tiempo Real: WebSockets para estadísticas y logs en vivo
  • Autenticación Segura: Sistema de login con JWT
  • Gestión de Reglas: Agregar, eliminar y gestionar reglas de firewall
  • Visualización de Logs: Monitoreo de actividad del firewall
  • Estadísticas del Sistema: CPU, memoria, disco y red
  • Dockerizado: Despliegue fácil con Docker y Docker Compose

📋 Requisitos Previos

  • Docker 20.10 o superior
  • Docker Compose 2.0 o superior
  • 2GB RAM mínimo
  • Acceso root/privilegiado para iptables

🛠️ Instalación Rápida

  1. Clonar el repositorio:
git clone <repository-url>
cd csf-web-admin
  1. Configurar variables de entorno:
cp .env.example .env
# Editar .env con sus configuraciones
  1. Desplegar con un comando:
./deploy.sh
  1. Acceder al panel:

🐳 Despliegue Manual con Docker

Construcción de Imágenes

# Construir imagen CSF
docker build -f Dockerfile.csf -t csf-firewall .

# Construir imagen Web
docker build -f Dockerfile.web -t csf-web .

Ejecutar con Docker Compose

# Iniciar servicios
docker-compose up -d

# Ver logs
docker-compose logs -f

# Detener servicios
docker-compose down

📁 Estructura del Proyecto

csf-web-admin/
├── 📁 csf-web/                 # Aplicación Next.js
│   ├── 📁 src/
│   │   ├── 📁 app/             # App Router (Next.js 15)
│   │   ├── 📁 components/      # Componentes React
│   │   ├── 📁 hooks/           # Hooks personalizados
│   │   ├── 📁 lib/             # Utilidades
│   │   ├── 📁 store/           # Estado global (Zustand)
│   │   └── 📁 types/           # Tipos TypeScript
│   ├── 📄 package.json
│   └── 📄 next.config.mjs
├── 📁 scripts/                 # Scripts CSF originales
│   └── 📁 csf/                 # Código fuente CSF
├── 📁 docker/                  # Scripts Docker
│   ├── 📄 entrypoint.sh
│   └── 📄 csf-start.sh
├── 📄 Dockerfile.csf           # Dockerfile para CSF
├── 📄 Dockerfile.web           # Dockerfile para Web
├── 📄 docker-compose.yml       # Orquestación
├── 📄 deploy.sh                # Script de despliegue
├── 📄 .env.example             # Variables de entorno
└── 📄 README.md

🎛️ Características del Panel

Dashboard Principal

  • Estado del firewall en tiempo real
  • Estadísticas del sistema (CPU, RAM, Disco)
  • Conexiones activas
  • Resumen de reglas

Gestión de Reglas

  • Agregar/eliminar reglas allow/deny
  • Búsqueda y filtrado de reglas
  • Gestión de bloqueos temporales
  • Validación de direcciones IP

Monitoreo de Logs

  • Logs en tiempo real
  • Filtrado por tipo y nivel
  • Exportación de logs
  • Análisis de patrones de ataque

Configuración

  • Modificación de configuraciones CSF
  • Gestión de puertos TCP/UDP
  • Configuración de alertas
  • Backup y restauración

🔧 Configuración

Variables de Entorno Principales

# Seguridad
JWT_SECRET=tu-clave-secreta-aqui
ADMIN_USERNAME=admin
ADMIN_PASSWORD=contraseña-segura

# Red
WEB_PORT=3000
CSF_TCP_IN=22,80,443,3000
CSF_TCP_OUT=22,25,53,80,113,443,587,993,995

# Paths
CSF_CONFIG_PATH=/etc/csf
CSF_LOG_PATH=/var/log/lfd

Configuración de CSF

El contenedor CSF se configura automáticamente con:

  • Modo de prueba deshabilitado
  • Acceso permitido desde redes Docker
  • Logs habilitados
  • Auto-updates deshabilitado

📊 API Endpoints

Autenticación

  • POST /api/auth - Login
  • GET /api/auth - Verificar sesión
  • DELETE /api/auth - Logout

Control CSF

  • GET /api/csf?action=status - Estado del firewall
  • POST /api/csf - Ejecutar comandos (start, stop, restart)

Reglas

  • GET /api/rules?type=all - Obtener reglas
  • POST /api/rules - Agregar regla
  • DELETE /api/rules - Eliminar regla

Logs y Estadísticas

  • GET /api/logs?type=firewall - Logs del firewall
  • GET /api/stats - Estadísticas del sistema

WebSocket

  • /api/socket - Datos en tiempo real

🔒 Seguridad

Autenticación

  • JWT con cookies httpOnly
  • Protección CSRF
  • Validación de permisos

Red

  • Comunicación interna entre contenedores
  • Headers de seguridad configurados
  • Acceso restringido a APIs

Firewall

  • Configuración segura por defecto
  • Backup automático de configuraciones
  • Logs de auditoría completos

🚨 Resolución de Problemas

Contenedor CSF no inicia

# Verificar privilegios
docker-compose logs csf

# Verificar capacidades
docker run --rm --privileged csf-firewall csf --check

Web interface no conecta

# Verificar logs
docker-compose logs csf-web

# Verificar conectividad
curl http://localhost:3000/api/health

Problemas de iptables

# Verificar módulos del kernel
lsmod | grep ip_tables

# Verificar capacidades del contenedor
docker inspect csf-firewall | grep -i cap

📈 Monitoreo y Logs

Logs del Sistema

# Logs de CSF
docker-compose exec csf tail -f /var/log/lfd/lfd.log

# Logs de la web
docker-compose logs -f csf-web

# Logs combinados
docker-compose logs -f

Métricas

  • CPU y memoria en tiempo real
  • Conexiones de red activas
  • Estadísticas de reglas de firewall
  • Actividad de bloqueos

🔄 Backup y Restauración

Crear Backup

./deploy.sh backup

Restaurar Configuración

# Restaurar volúmenes desde backup
docker run --rm -v csf_config:/target -v $(pwd)/backups/latest:/source alpine cp -a /source/. /target/

🛡️ Mejores Prácticas

  1. Cambiar credenciales por defecto
  2. Usar HTTPS en producción
  3. Configurar backup automático
  4. Monitorear logs regularmente
  5. Actualizar contenedores periódicamente
  6. Restringir acceso de red

🤝 Contribuir

  1. Fork el proyecto
  2. Crear rama feature (git checkout -b feature/AmazingFeature)
  3. Commit cambios (git commit -m 'Add AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abrir Pull Request

📝 Licencia

Este proyecto está bajo la Licencia GPL v3. Ver LICENSE para más detalles.

🙏 Reconocimientos

📞 Soporte


⚠️ IMPORTANTE: Este es un sistema de seguridad crítico. Siempre pruebe en un entorno de desarrollo antes de desplegar en producción.

Descripción
No description provided
Readme 42 KiB
Languages
Shell 100%