Hardening Moodle, ¿Cómo no convertirse en un centro de control de malware?

Introducción

  • Esta página contiene importantes medidas de seguridad para su instalación de Moodle.
  • Debe informar los problemas de seguridad al rastreador de Moodle (¡y marcarlo como un problema de seguridad!) Para que los desarrolladores puedan verlo e informar a los sitios registrados de Moodle sobre las correcciones lo antes posible.
  • No debe publicar exploits reales en los foros ni en ninguna otra parte de la web (para proteger a los administradores de Moodle que aún no han actualizado).

Medidas de seguridad simples

  • La mejor estrategia de seguridad es una buena copia de seguridad! Pero no tienes una buena copia de seguridad a menos que puedas restaurarla. ¡Pon a prueba tus procedimientos de restauración!
  • Cargue solo el software o los servicios que utilizará.
  • Realizar actualizaciones regulares
  • Modele su seguridad después de las capas de ropa que usa en un día frío de invierno

Recomendaciones basicas

  • Actualiza Moodle regularmente en cada lanzamiento.Los agujeros de seguridad publicados atraen la atención de los crackers después del lanzamiento. Cuanto más antigua sea la versión, más vulnerabilidades es probable que contenga.
  • Use https para asegurar todas las páginas (no solo la página de inicio de sesión)Proteja todo el tráfico de su instancia de Moodle y sus usuarios al hacer que todas las páginas sean accesibles solo a través de https. Esto no solo protege las contraseñas en el inicio de sesión, sino que también garantiza la privacidad de sus usuarios para que todos los datos de los usuarios no puedan ser interceptados o manipulados («inyecciones «) de terceros, por ejemplo. Los certificados https gratuitos están disponibles en https://letsencrypt.org/ . 
  • Además, establezca httpslogin = yes en su configuración de moodle para agregar una capa adicional de protección para enviar credenciales de inicio de sesión.El registro global DEBE estar deshabilitado Esto ayudará a evitar posibles problemas de XSS en scripts de terceros.Use contraseñas seguras para administradores y maestrosElegir contraseñas «difíciles» es una práctica de seguridad básica para protegerse contra el craqueo de cuentas por «fuerza bruta».Solo dar cuentas de profesor a usuarios de confianza. Evite crear espacios públicos con cuentas de profesor gratuitas en servidores de producción.
  • Las cuentas de los maestros tienen permisos mucho más libres y es más fácil crear situaciones donde los datos pueden ser objeto de abuso o robo.
  • Separa tus sistemas tanto como sea posible Otra técnica de seguridad básica es usar diferentes contraseñas en diferentes sistemas, usar diferentes máquinas para diferentes servicios, etc. Esto evitará que los daños se extiendan incluso si se compromete una cuenta o un servidor.

Ejecutar actualizaciones regulares

  • Utilizar sistemas de actualización automática.
  • actualizacion de Windows
  • Linux: up2date, yum, apt-get

Considere automatizar las actualizaciones con un script programado a través de cron

  • Sistema de actualización de Mac OSX
  • Mantente actualizado con php, apache y moodle

Utilice las listas de correo para mantenerse actualizado

Cortafuegos

  • Los expertos en seguridad recomiendan un firewall dual

Diferentes combinaciones de hardware / software

  • Deshabilitar los servicios no utilizados suele ser tan efectivo como un firewall

Utilice netstat -a para revisar los puertos de red abiertos

  • No es garantía de protección.
  • Permitir puertos

80, 443 (ssl) y 9111 (para chatear),Administrador remoto: ssh 22, o rdp 3389

Política de contraseñas

Se puede configurar una política de contraseña en Configuración> Administración del sitio> Seguridad> Políticas del sitio .

Hay una casilla de verificación para determinar si la complejidad de la contraseña se debe aplicar o no, la opción para establecer la longitud mínima de la contraseña, el número mínimo de dígitos, el número mínimo de caracteres en minúscula, el número mínimo de caracteres en mayúscula y el número mínimo de caracteres no alfanuméricos.

Si un usuario ingresa una contraseña que no cumple con esos requisitos, se le da un mensaje de error que indica la naturaleza del problema con la contraseña ingresada.

Hacer cumplir la complejidad de las contraseñas y exigir a los usuarios que cambien su contraseña inicial contribuye en gran medida a garantizar que los usuarios elijan y de hecho estén utilizando «buenas contraseñas».

Sin embargo, hacer el cheque demasiado oneroso solo hace que lo escriban, así que sé realista.

Prepárate para lo peor

Alertas de seguridad de Moodle

  • Registre su sitio con Moodle.org

Los usuarios registrados reciben alertas por correo electrónico

Consideraciones varias

Estas son todas las cosas que podría considerar que afectan su seguridad general:

  • Utilice la configuración de formularios seguros
  • Establecer siempre una contraseña de usuario root de mysql
  • Desactivar el acceso a la red mysql
  • Use SSL, httpslogins = yes
  • Use buenas contraseñas: configure una política de contraseña en Configuración> Administración del sitio> Seguridad> Políticas del sitio
  • No habilite la configuración de opentogoogle (en Configuración> Administración del sitio> Seguridad> Políticas del sitio )
  • Deshabilitar el acceso de invitados
  • Coloque las claves de inscripción en todos los cursos o establezca Course Enrollable = No para todos los cursos
  • Asegúrese de que la sugerencia de la clave de inscripción esté deshabilitada (que es la predeterminada) en Administración> Administración del sitio> Complementos> Inscripción> Autoinscripción.

Los permisos de archivos más seguros / paranoicos

Nota : La siguiente información se aplica solo a las instalaciones basadas en Linux / Unix, ya que el sistema de permisos de MS Windows es bastante diferente .

Dependiendo de la configuración de su servidor, hay dos escenarios diferentes:

  1. Está ejecutando Moodle en su propio servidor dedicado.
  2. Está ejecutando Moodle en un entorno de alojamiento compartido.

En las secciones a continuación, debe utilizar la cuenta de usuario del servicio web y el grupo para configurar los permisos, por lo que debe conocerlos. Esto puede variar bastante de un servidor a otro, pero si esta función no se ha deshabilitado en su servidor, puede ir a http://your.moodle.site/admin/phpinfo.php ( iniciando sesión como administrador) y luego busque la línea que dice «Usuario / Grupo», dentro de la tabla «apache». Por ejemplo, también obtengo ‘www-data’ para la cuenta de usuario y ‘www-data’ para el grupo.

Ejecutando Moodle en un servidor dedicado

Suponiendo que está ejecutando Moodle en un servidor sellado (es decir, no se permiten inicios de sesión de usuarios en la máquina) y que la raíz se encarga de las modificaciones del código de moodle y de la configuración de moodle (config.php), entonces estos son los permisos más estrictos que puedo pensar de:

1. Directorio de moodledata y todos sus contenidos (y subdirectorios, incluye sesiones):

propietario: usuario de apache (apache, httpd, www-data, lo que sea; vea arriba)
grupo: grupo de apache (apache, httpd, www-data, lo que sea; vea arriba)
permisos: 700 en directorios, 600 en archivos

2. Directorio moodle y todos sus contenidos y subdirectorios (incluido config.php):

propietario: root
grupo: raíz
permisos: 755 en directorios, 644 en archivos.

Si permite inicios de sesión locales para usuarios regulares, entonces 2. debería ser:

propietario: root
grupo: grupo de apache (apache, httpd, www-data, lo que sea; vea arriba)
permisos: 750 en directorios, 640 en archivos.

Piense en estos permisos como los más paranoicos. Puede estar lo suficientemente seguro con permisos menos estrictos, tanto en directorios moodledata como moodle (y subdirectorios).

Ejecutando Moodle en un entorno de alojamiento compartido

Si está ejecutando Moodle en un entorno de alojamiento compartido, es probable que los permisos anteriores sean incorrectos. Si establece 700 como el permiso para directorios (y 600 para archivos), probablemente esté denegando el acceso a la cuenta de usuario del servicio web a sus directorios y archivos.

Si desea restringir sus permisos tanto como sea posible, deberá saber:

  1. la cuenta de usuario y el grupo bajo el cual se ejecuta el servicio web (ver arriba).
  2. el propietario de los directorios / archivos de moodledata y el directorio moodle (normalmente debería ser su cuenta de usuario) y el grupo de los directorios / archivos. Por lo general, puede obtener esta información del administrador de archivos de su panel de control de hosting. Vaya a la carpeta moodle y elija cualquier directorio o archivo e intente ver / cambiar los permisos, el propietario y el grupo de ese archivo. Eso normalmente muestra los permisos actuales, propietario y grupo. Haga lo mismo para el directorio de moodledata.

Luego, dependiendo de los siguientes escenarios, debe usar un conjunto diferente de permisos (listados de más seguros a menos seguros) para su directorio de moodledata:

  1. Si la cuenta del servicio web y el propietario de los directorios / archivos son los mismos, debe usar 700 para los directorios y 600 para los archivos.
  2. Si el grupo de servicios web y el grupo de directorios / archivos es el mismo, debe usar 770 para los directorios y 660 para los archivos.
  3. Si no es así, necesitará usar 777 para los directorios y 666 para los archivos, lo cual es menos seguro pero es su única opción. 707 y 606 serían más seguros, pero podría o no funcionar, dependiendo de su configuración particular.

De hecho, solo necesita configurar moodledata los permisos especificados anteriormente, ya que todos los directorios y archivos que contiene son creados por el propio servicio web y tendrán los permisos adecuados.

Con respecto al directorio moodle, siempre que la cuenta de usuario del servicio web pueda leer los archivos más leer y ejecutar los directorios, eso debería ser suficiente. No es necesario otorgar permiso de escritura a la cuenta / grupo de servicios web en ninguno de los archivos o subdirectorios. El único inconveniente es que necesitará crear el archivo config.php a mano durante el proceso de instalación, ya que Moodle no podrá crearlo. Pero eso no debería ser un gran problema.

Vea más en:

https://docs.moodle.org/all/es/Recomendaciones_de_Seguridad 
https://docs.moodle.org/all/es/Seguridad

Deja un comentario