Aether Panel Documentation

Seguridad y Mejores Prácticas

Introducción a la Seguridad

La seguridad es una prioridad fundamental en Aether Panel. Este documento cubre las mejores prácticas, características de seguridad integradas y recomendaciones para mantener tu instalación segura.

Aether Panel incluye múltiples capas de seguridad para proteger tus datos y servidores, incluyendo autenticación robusta, sistema de permisos granular, encriptación y más.

Autenticación

Aether Panel implementa un sistema de autenticación robusto con múltiples capas de seguridad:

Métodos de Autenticación
Autenticación por Sesión

El panel utiliza sesiones seguras basadas en cookies HTTP-only para la autenticación web. Las sesiones se validan en cada petición y expiran automáticamente después de un período de inactividad.

OAuth2 para API

Para acceso programático, el panel soporta OAuth2 con el flujo Client Credentials. Los tokens tienen scopes específicos que limitan qué acciones pueden realizar.

  • Tokens con expiración automática
  • Scopes granulares para control de acceso
  • Regeneración segura de client secrets
  • Revocación de tokens
Autenticación de Dos Factores (2FA/TOTP)

Aether Panel soporta TOTP (Time-based One-Time Password) para autenticación de dos factores. Compatible con aplicaciones como Google Authenticator, Authy, Microsoft Authenticator, etc.

Configurar 2FA
  1. Ve a tu perfil en el panel
  2. Haz clic en 'Configurar 2FA'
  3. Escanea el código QR con tu aplicación de autenticación
  4. Ingresa el código de verificación para confirmar
  5. Guarda los códigos de recuperación en un lugar seguro
Códigos de Recuperación

Cuando configuras 2FA, se generan códigos de recuperación únicos. Guárdalos en un lugar seguro. Si pierdes acceso a tu dispositivo 2FA, puedes usar estos códigos para deshabilitar 2FA y recuperar acceso a tu cuenta.

Seguridad de Contraseñas

Las contraseñas en Aether Panel están protegidas con:

  • Hashing con bcrypt: Las contraseñas nunca se almacenan en texto plano
  • Salt automático: Cada contraseña tiene un salt único
  • Validación de fortaleza: Se recomienda usar contraseñas de al menos 12 caracteres
  • Política de contraseñas: Configura requisitos mínimos para tus usuarios
Recomendaciones para Contraseñas
  • Mínimo 12 caracteres (recomendado 16+)
  • Combinación de mayúsculas, minúsculas, números y símbolos
  • No reutilices contraseñas de otros servicios
  • Usa un gestor de contraseñas (como Bitwarden, 1Password, etc.)
  • Cambia las contraseñas regularmente, especialmente las de administrador

Autorización y Permisos

Aether Panel utiliza un sistema de permisos granular basado en scopes que permite control preciso sobre qué puede hacer cada usuario.

Sistema de Scopes

Los scopes son permisos específicos que controlan el acceso a diferentes funcionalidades. Ejemplos incluyen:

  • server.view: Ver información de servidores
  • server.edit: Modificar configuración de servidores
  • server.start: Iniciar servidores
  • server.files.edit: Editar archivos del servidor
  • users.edit: Gestionar usuarios
  • admin: Acceso administrativo completo
Principio de Menor Privilegio

Siempre otorga solo los permisos mínimos necesarios. Un usuario que solo necesita ver servidores no debería tener permisos para editarlos o eliminarlos.

Roles y Grupos

Los roles permiten agrupar múltiples permisos y asignarlos a usuarios. Esto simplifica la gestión de permisos para grupos de usuarios con necesidades similares.

  • Crea roles específicos para diferentes tipos de usuarios (moderadores, desarrolladores, etc.)
  • Revisa regularmente los permisos asignados a cada rol
  • No otorgues el rol 'admin' a menos que sea absolutamente necesario

Mejores Prácticas de Seguridad

Sigue estas recomendaciones para mantener tu instalación de Aether Panel segura:

Actualizaciones y Mantenimiento
  • Mantén tu panel actualizado: Ejecuta siempre la última versión de Aether Panel para asegurarte de tener los últimos parches de seguridad.
  • Actualiza el sistema operativo regularmente: Aplica parches de seguridad del sistema operativo.
  • Revisa los logs regularmente: Monitorea los logs del panel para detectar actividad sospechosa.
  • Haz backups regulares: Mantén backups actualizados de tu base de datos y configuración.
Contraseñas y Autenticación
  • Usa contraseñas seguras: Impón políticas de contraseñas robustas para todas las cuentas de usuario.
  • Habilita 2FA para administradores: Todos los administradores deben tener 2FA habilitado.
  • Habilita 2FA para usuarios: Anima a todos los usuarios a habilitar 2FA.
  • Rota las contraseñas regularmente: Especialmente para cuentas administrativas.
  • No compartas credenciales: Cada usuario debe tener su propia cuenta.
Permisos y Acceso
  • Limita los permisos de usuario: Concede a los usuarios solo los permisos que absolutamente necesiten.
  • Revisa permisos regularmente: Audita los permisos de usuario periódicamente.
  • Usa roles en lugar de permisos individuales: Simplifica la gestión y reduce errores.
  • Desactiva cuentas no utilizadas: Elimina o desactiva cuentas de usuarios que ya no necesitan acceso.
Red y Comunicación
  • Usa HTTPS: Accede siempre a tu panel a través de una conexión segura HTTPS.
  • Configura SSL/TLS correctamente: Usa certificados válidos (preferiblemente Let's Encrypt).
  • Restringe acceso por IP: Si es posible, limita el acceso administrativo a IPs específicas.
  • Usa VPN para acceso remoto: Para acceso administrativo remoto, usa una VPN en lugar de exponer el panel directamente.
Servidor y Sistema
  • Configura el firewall correctamente: Solo abre los puertos necesarios.
  • Deshabilita SSH con contraseña: Usa autenticación por clave SSH.
  • Cambia el puerto SSH por defecto: Reduce la exposición a ataques automatizados.
  • Monitorea recursos del sistema: Configura alertas para uso anormal de CPU, RAM o disco.
  • Aísla servidores: Cada servidor debe ejecutarse en su propio entorno aislado.
API y Automatización
  • Protege tus client secrets: Nunca compartas client secrets públicamente.
  • Rota client secrets regularmente: Genera nuevos secrets periódicamente.
  • Usa scopes mínimos: Solo otorga los scopes necesarios para cada cliente OAuth2.
  • Monitorea uso de API: Revisa logs de API para detectar actividad anormal.
  • Implementa rate limiting: Si creas integraciones, respeta los límites de tasa.

Configuración del Firewall

Asegúrate de que el firewall de tu servidor esté configurado correctamente. Los siguientes puertos deben estar abiertos para que el panel funcione correctamente:

8080/TCP

Puerto predeterminado para el panel web (HTTP/HTTPS). Obligatorio.

En producción, considera restringir este puerto a IPs específicas o usar un proxy reverso.

8081/TCP

Puerto para Gatus (monitoreo de uptime). Opcional pero recomendado.

Puede ser restringido a acceso interno si no necesitas acceso externo.

5657/TCP

Puerto SFTP para transferencia de archivos. Obligatorio si usas SFTP.

Solo debe ser accesible para usuarios que necesitan transferir archivos.

22/TCP

Puerto SSH para administración del servidor. Recomendado cambiar a un puerto no estándar (ej: 2022).

Solo debe ser accesible para administradores. Considera usar fail2ban.

Configuración con UFW (Ubuntu/Debian)

Para configurar el firewall con UFW:

# Permitir puertos necesarios
sudo ufw allow 8080/tcp
sudo ufw allow 5657/tcp
sudo ufw allow 8081/tcp

# Cambiar puerto SSH (opcional pero recomendado)
sudo ufw allow 2022/tcp
sudo ufw deny 22/tcp

# Habilitar firewall
sudo ufw enable

# Verificar estado
sudo ufw status
Configuración con firewalld (Fedora/RHEL/CentOS)

Para configurar el firewall con firewalld:

# Permitir puertos necesarios
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=5657/tcp
sudo firewall-cmd --permanent --add-port=8081/tcp

# Cambiar puerto SSH (opcional pero recomendado)
sudo firewall-cmd --permanent --add-port=2022/tcp
sudo firewall-cmd --permanent --remove-service=ssh

# Aplicar cambios
sudo firewall-cmd --reload

# Verificar reglas
sudo firewall-cmd --list-ports

Configuración SSL/TLS

El uso de HTTPS es esencial para proteger las credenciales y datos transmitidos entre el cliente y el servidor.

Certificados con Let's Encrypt

Let's Encrypt proporciona certificados SSL gratuitos y renovación automática. Para configurarlo:

  1. Instala Certbot: sudo apt install certbot (Ubuntu/Debian) o sudo dnf install certbot (Fedora)
  2. Obtén certificado: sudo certbot certonly --standalone -d tu-dominio.com
  3. Configura renovación automática: sudo certbot renew --dry-run
  4. Configura Nginx para usar el certificado (ver documentación de Nginx)

Los certificados de Let's Encrypt expiran cada 90 días, pero Certbot puede renovarlos automáticamente.

Certificados Auto-firmados (Solo Desarrollo)

Los certificados auto-firmados solo deben usarse en entornos de desarrollo. Nunca los uses en producción.

Los navegadores mostrarán advertencias de seguridad con certificados auto-firmados.

Monitoreo y Detección de Intrusiones

Monitorear tu instalación ayuda a detectar problemas de seguridad antes de que se conviertan en incidentes graves.

Revisión de Logs

Revisa regularmente los logs del panel para detectar:

  • Intentos de inicio de sesión fallidos
  • Accesos desde IPs desconocidas
  • Actividad anormal de API
  • Errores inusuales o patrones sospechosos
Ubicación de Logs

Nativo: En instalaciones nativas: /var/log/skypanel/

Docker: En Docker: docker-compose logs -f skypanel

Fail2ban (Protección contra Fuerza Bruta)

Fail2ban puede proteger tu servidor contra ataques de fuerza bruta bloqueando IPs después de múltiples intentos fallidos.

Instalación y Configuración
# Ubuntu/Debian
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Fedora/RHEL/CentOS
sudo dnf install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Configuración Básica

Crea un archivo de configuración personalizado en /etc/fail2ban/jail.local para proteger SSH y otros servicios.

Backups y Recuperación

Los backups regulares son esenciales para la seguridad y continuidad del negocio.

Qué Hacer Backup
  • Base de datos del panel (database.db o MySQL)
  • Archivo de configuración (config.json)
  • Archivos de servidores importantes
  • Certificados SSL
  • Configuración de Nginx/Apache
Frecuencia de Backups

Se recomienda hacer backups diarios de la base de datos y semanales de archivos de servidores. Ajusta según tus necesidades.

Almacenamiento de Backups
  • Almacena backups en una ubicación separada del servidor principal
  • Usa encriptación para backups sensibles
  • Prueba la restauración de backups regularmente
  • Mantén múltiples versiones de backups (últimos 7 días, mensuales, etc.)

Respuesta a Incidentes

Si sospechas que tu instalación ha sido comprometida:

  1. Desconecta el servidor de la red inmediatamente si es posible
  2. Cambia todas las contraseñas (panel, base de datos, SSH, etc.)
  3. Revisa los logs para identificar el vector de ataque
  4. Revoca todos los tokens OAuth2 y regenera client secrets
  5. Revisa y elimina cualquier usuario o permiso sospechoso
  6. Restaura desde un backup conocido seguro si es necesario
  7. Actualiza el panel y todas las dependencias
  8. Notifica a los usuarios afectados si es apropiado
Prevención

La mejor respuesta a incidentes es prevenirlos. Sigue todas las mejores prácticas de seguridad y mantén tu instalación actualizada.

Checklist de Seguridad

Usa este checklist para asegurarte de que tu instalación está configurada de forma segura:

  • Panel actualizado a la última versión
  • Sistema operativo actualizado
  • HTTPS configurado con certificado válido
  • 2FA habilitado para todos los administradores
  • Firewall configurado correctamente
  • Puerto SSH cambiado del puerto 22
  • Contraseñas seguras para todas las cuentas
  • Permisos de usuario revisados y limitados
  • Backups configurados y probados
  • Logs siendo monitoreados
  • Fail2ban configurado (recomendado)
  • Acceso administrativo restringido por IP (si es posible)
  • Client secrets OAuth2 protegidos
  • Certificados SSL con renovación automática configurada

No olvides que Aether Panel es un proyecto en desarrollo open source, si tienes alguna duda o problema al instalar o el comando del instalador no funciona puedes contactarnos en el Discord de Aether Panel.