For the complete documentation index, see llms.txt. This page is also available as Markdown.

Guía de Seguridad

Esta guía aborda las mejores prácticas de seguridad para operar una plataforma Chamilo 2.0 en producción. La seguridad es una responsabilidad compartida entre el software de la plataforma, la configuración de su servidor y las prácticas operativas continuas.

Mantener Chamilo Actualizado

La práctica de seguridad más importante es mantener su instalación de Chamilo actualizada.

  • Suscríbase a la cuenta X de seguridad de Chamilo (@chamilosecurity) o siga el repositorio de GitHub para recibir anuncios de lanzamientos.

  • Aplique los parches de seguridad de manera inmediata. Las actualizaciones menores dentro de la rama 2.0 están diseñadas para ser seguras de aplicar.

  • Siga el proceso de actualización para cada actualización.

HTTPS

Siempre sirva Chamilo a través de HTTPS en producción.

  • Obtenga un certificado SSL/TLS (Let's Encrypt ofrece certificados gratuitos a través de Certbot).

  • Configure su servidor web para redirigir todo el tráfico HTTP a HTTPS.

  • Habilite el encabezado HSTS (HTTP Strict Transport Security) para prevenir ataques de degradación:

    Strict-Transport-Security: max-age=31536000; includeSubDomains

Sin HTTPS, las credenciales de inicio de sesión, las cookies de sesión y todos los datos de los usuarios se transmiten en texto plano y pueden ser interceptados en la red.

Permisos de Archivos

Restrinja los permisos de archivos al mínimo necesario.

Ruta
Propietario
Permisos
Notas

Archivos de la aplicación (código fuente)

root o usuario de despliegue

755 (directorios), 644 (archivos)

El servidor web necesita acceso de solo lectura.

var/

usuario del servidor web

775

Debe ser escribible para el caché de Symfony, registros y subidas de archivos

.env

root o usuario de despliegue

640

Contiene secretos. El servidor web necesita acceso de lectura solo durante el uso normal, pero requiere acceso de escritura durante la instalación.

config/

root o usuario de despliegue

750

Contiene secretos. El servidor web necesita acceso de lectura solo durante el uso normal, pero requiere acceso de escritura durante la instalación.

Nunca establezca permisos a 777. Nunca ejecute el servidor web como root.

Políticas de Contraseñas

Configure requisitos estrictos para las contraseñas en Configuraciones de Seguridad:

  • Longitud mínima de 8 caracteres (se recomiendan 12 o más).

  • Exija una combinación de mayúsculas, minúsculas, números y caracteres especiales.

  • Considere habilitar la expiración de contraseñas en entornos impulsados por cumplimiento normativo.

  • Eduque a los usuarios sobre la elección de contraseñas fuertes y únicas.

Limitación de Tasa y Protección contra Fuerza Bruta

Nivel de Aplicación

  • Establezca un valor pequeño para Intentos máximos de inicio de sesión antes de bloquear la cuenta (login_max_attempt_before_blocking_account), por ejemplo, 5.

  • Habilite CAPTCHA en la página de inicio de sesión. CAPTCHA está activado o desactivado; no se activa automáticamente después de N intentos fallidos. Combínelo con Errores de CAPTCHA antes de bloquear (captcha_number_mistakes_to_block_account) para bloquear una cuenta que siga fallando el CAPTCHA.

Nivel de Servidor

Use fail2ban para monitorear fallos de inicio de sesión y bloquear direcciones IP ofensivas:

Cree un filtro correspondiente en /etc/fail2ban/filter.d/chamilo-auth.conf para coincidir con las entradas de registro de fallos de autenticación.

Gestión de Sesiones

  • Establezca un tiempo de vida de sesión razonable (por ejemplo, 3600 segundos / 1 hora) en las configuraciones de seguridad.

  • Configure banderas de cookies de sesión en su configuración de Symfony:

  • Considere deshabilitar "Recordarme" en plataformas con contenido sensible.

Encabezados de Seguridad HTTP

Configure su servidor web para enviar encabezados de seguridad:

Encabezado
Valor
Propósito

X-Content-Type-Options

nosniff

Previene la detección de tipo MIME.

X-Frame-Options

SAMEORIGIN

Previene el clickjacking a través de iframes.

X-XSS-Protection

1; mode=block

Protección XSS heredada para navegadores antiguos.

Referrer-Policy

strict-origin-when-cross-origin

Controla la fuga de información de referencia.

Content-Security-Policy

Varía

Controla qué recursos se pueden cargar. Requiere ajustes cuidadosos para Chamilo.

Ejemplo para Apache:

Ejemplo para Nginx:

Seguridad de Carga de Archivos

  • Bloquee extensiones de archivos ejecutables (exe, bat, sh, php, phtml, cgi) en Configuraciones de Seguridad.

  • Configure su servidor web para que nunca ejecute archivos cargados. Para Apache, añada lo siguiente al directorio completo var/:

  • Escanee los archivos cargados con un antivirus (ClamAV) si su entorno lo requiere.

Seguridad de la Base de Datos

  • Utilice un usuario de base de datos dedicado para Chamilo con solo los privilegios que necesita (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX en la base de datos de Chamilo).

  • No utilice la cuenta root de la base de datos.

  • Asegúrese de que la base de datos no sea accesible desde internet público. Enlácela a localhost o a una red privada.

  • Habilite el registro de auditoría de la base de datos para entornos sensibles al cumplimiento normativo.

Copias de Seguridad

  • Programe copias de seguridad automatizadas diarias tanto de la base de datos como de los archivos cargados.

  • Almacene las copias de seguridad en una ubicación separada del servidor (fuera del sitio o en almacenamiento en la nube).

  • Pruebe periódicamente la restauración de copias de seguridad para verificar que sean utilizables.

  • Cifre las copias de seguridad si contienen datos sensibles.

Consulte Copias de Seguridad para obtener instrucciones detalladas.

Monitoreo

  • Monitoree los registros de Chamilo en var/log/prod.log para detectar errores y actividades sospechosas.

  • Configure el monitoreo del servidor (CPU, memoria, disco) para detectar el agotamiento de recursos.

  • Establezca alertas para fallos de autenticación repetidos.

  • Revise periódicamente las cuentas de usuario en busca de cuentas no autorizadas o inactivas.

Lista de Verificación

Utilice esta lista de verificación al implementar o auditar una instalación de Chamilo:

Última actualización

¿Te fue útil?