Bienvenidos a este Blog

Bienvenidos a este blog dirigido a todos aquellos docentes interesados en utilizar cada vez más y mejor las TIC dentro de su aula.
Se trata de un blog con una clara vocación de divulgación técnica y su objetivo es facilitar a los formadores el acceso a los recursos informáticos existentes hoy en día.

martes, 11 de octubre de 2011

Cómo configurar Moodle en red sobre Xampp de forma segura

El concepto de seguridad aplicado a los sistemas informáticos es un concepto tan amplio que es necesario acotar su alcance cuando se aborda en un artículo de las características de este que estamos iniciando. Así, cuando hablamos de configurar de forma segura la instalación de un sistema informático, como puede ser Moodle, estamos hablando de establecer medidas que impidan que tanto los usuarios del sistema como otras personas ajenas al sistema, puedan acceder a aquellos elementos internos del mismo con permisos para modificar, borrar o extraer información que queremos esté protegida, de manera que evitemos que sus acciones sobre el sistema, bien por error, bien por voluntad propia, pongan en riesgo la integridad del mismo.

El método más habitual para evitar los accesos indebidos a las aplicaciones es la configuración del acceso mediante un sistema de perfiles de usuario, de manera que cada usuario que accede al sistema tiene asignado un perfil, que podríamos definir como el conjunto de capacidades sobre el sistema (lo que puede y lo que no puede hacer). Para acceder al sistema el usuario dispone de un nombre y una clave de usuario que le identifica y le asigna el perfil que le corresponde.

Ahora bien, muchas veces nos olvidamos de que un sistema informático no es solo la aplicación que utiliza el usuario, sino que hay otros subsistemas o sistemas base sobre los que trabaja la aplicación que también pueden ser susceptibles de accesos indebidos y que también debemos proteger. En el caso de Moodle, como en otras muchas aplicaciones informáticas, se utilizan Bases de Datos a las que es posible acceder desde fuera de la aplicación y que, por lo tanto, debemos proteger de accesos indebidos, o carpetas de archivos, como es el caso de la carpeta Moodledata, donde se guardan los archivos “subidos al servidor Moodle” y que debemos proteger, por ejemplo, ante un borrado accidental.

Moodle utiliza un subsistema formado por el intérprete de lenguaje de programación PHP, una Base de Datos, MySQL (a partir de la versión 2.0 se pueden utilizar otras) y un Servidor Web, Apache. Estos tres elementos han sido empaquetados para facilitar su instalación bajo la denominación Xampp. En este blog ya hemos hablado anteriormente del proceso de instalación de Xampp y de Moodle en un ordenador con Windows, con la recomendación de no utilizar esta instalación en sistemas productivos, debido a la falta de seguridad del sistema resultante.

Ahora bien, la potencial inseguridad del sistema puede corregirse en gran medida gracias a una herramienta que el propio Xampp trae incorporada en su menú, el “Chequeo de seguridad” y que nos indica qué elementos de nuestra instalación son inseguros. Para acceder a esta utilidad debemos acceder a Xampp desde el mismo ordenador donde está instalado el paquete mediante nuestro explorador web.
http://localhost/xampp
accediendo así a las utilidades de Xampp. En el menú accedemos a la opción indicada anteriormente, que nos proporciona información de los componentes instalados y del nivel de seguridad de cada uno de ellos. Si hemos seguido el proceso de instalación de Xampp que ya se explicó en un artículo anterior, los elementos inseguros mostrados serán cuatro:
  • El acceso a las utilidades Xampp del servidor desde la red está totalmente abierto
  • El usuario interno de acceso a la base de datos MySQL no tiene contraseña
  • La utilidad de configuración de PHP no tiene contraseña
  • PHP no se ejecuta en modo seguro,
Dicho de otra manera, cualquiera con unos conocimientos mínimos de sistemas informáticos puede acceder a la configuración de Xampp de nuestro servidor y modificarla o acceder a la bases de datos y crear, modificar o eliminar información de la misma. Está claro que hay que poner trabas a estas posibles acciones potencialmente peligrosas para nuestro sistema.

La misma página anterior nos indica la solución, la ejecución de un programa que Xampp incorpora para facilitarnos los cambios a realizar
http://localhost/security/xamppsecurity.php
Al ejecutar este programa se nos presenta un formulario donde debemos rellenar en primer lugar la contraseña del usuario root, el usuario de mayor nivel de acceso de la base de datos MySQL. Pongamos la contraseña deseada, <miclave>, que deberemos recordar posteriormente y pulsemos el botón para aceptar el cambio.

Una vez cambiada a contraseña de acceso a la base de datos, podemos crear en el mismo formulario un usuario y su contraseña para el acceso a Xampp, tal que <xamppuser>/ <miclave>. Este usuario/contraseña se nos pedirá a partir de ahora siempre que queramos acceder a Xampp.

Una vez realizados los cambios es necesario reiniciar Xampp mediante las utilidades correspondientes, xampp_stop y xampp_start ubicadas en la carpeta c:\xampp (o en la que hayamos realizado nuestra instalación), o bien, parar y arrancar MySQL y Apache desde la utilidad gráfica xampp_control en la misma ubicación.

Mediante este sistema hemos solucionado los tres primeros elementos de inseguridad detectados. El cuarto, la ejecución de PHP en modo seguro, es una función obsoleta a día de hoy y además no se recomienda para la ejecución de Moodle, por lo que no entraremos en más detallles.

Ya tenemos Xampp con unos niveles de seguridad aceptables, pero como hemos modificado el acceso a la base de datos, Moodle ha dejado de funcionar. Debemos modificar la configuración de Moodle indicando la nueva información de acceso a la base de datos. 

Esta información se encuentra en el fichero de configuración
c:\xampp\htcdocs\moodle\config.php
 donde debemos modificar la línea
$CFG->dbpass = ' ';
por
$CFG->dbpass = 'miclave';
A partir de ahora ya podremos usar nuestro Moodle sobre Xampp en nuestra red local con los mismos niveles de seguridad que el resto de las aplicaciones que se ejecuten en la misma. Si el resto de elementos de la red están correctamente configurados no podremos volver a decir que Moodle sobre Xampp en un entorno Windows no es seguro para ser utilizado en producción.