c8e3ccb07f071a9e2bdb4e5abc072b36a6a8c73c
CSF Web Admin Panel
Panel de administración web moderno para ConfigServer Security & Firewall (CSF) construido con Next.js 15 y Docker.
🚀 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
- Clonar el repositorio:
git clone <repository-url>
cd csf-web-admin
- Configurar variables de entorno:
cp .env.example .env
# Editar .env con sus configuraciones
- Desplegar con un comando:
./deploy.sh
- Acceder al panel:
- URL: http://localhost:3000
- Usuario:
admin - Contraseña:
admin123
🐳 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- LoginGET /api/auth- Verificar sesiónDELETE /api/auth- Logout
Control CSF
GET /api/csf?action=status- Estado del firewallPOST /api/csf- Ejecutar comandos (start, stop, restart)
Reglas
GET /api/rules?type=all- Obtener reglasPOST /api/rules- Agregar reglaDELETE /api/rules- Eliminar regla
Logs y Estadísticas
GET /api/logs?type=firewall- Logs del firewallGET /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
- Cambiar credenciales por defecto
- Usar HTTPS en producción
- Configurar backup automático
- Monitorear logs regularmente
- Actualizar contenedores periódicamente
- Restringir acceso de red
🤝 Contribuir
- Fork el proyecto
- Crear rama feature (
git checkout -b feature/AmazingFeature) - Commit cambios (
git commit -m 'Add AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abrir Pull Request
📝 Licencia
Este proyecto está bajo la Licencia GPL v3. Ver LICENSE para más detalles.
🙏 Reconocimientos
- ConfigServer Services por CSF
- Next.js por el framework web
- Docker por la containerización
📞 Soporte
- 🐛 Reportar Bug
- 💡 Solicitar Feature
- 📧 Email: support@example.com
⚠️ IMPORTANTE: Este es un sistema de seguridad crítico. Siempre pruebe en un entorno de desarrollo antes de desplegar en producción.
Descripción
Languages
Shell
100%