Upload
francisco-medina
View
139
Download
1
Embed Size (px)
Citation preview
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 1
Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado Antecedentes Moodle (pronunciación AFI /ˈmuːd(ə)l/) es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda a los educadores a crear comunidades de aprendizaje en línea. Este tipo de plataformas tecnológicas también se conoce como LCMS (Learning Content Management System). La versión más reciente es la 2.71 CentOS (Community ENTerprise Operating System) es una bifurcación a nivel binario de la distribución Linux Red Hat Enterprise Linux RHEL, compilado por voluntarios a partir del código fuente liberado por Red Hat2. MySQL es el sistema manejador de bases de datos relacionales, multihilos, multiusuario y robusto más popular hoy en día, desarrollado y proporcionado por MySQL AB. Para su ejecución MySQL necesita de un sistema operativo. PHP es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos3. HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la noción de sitio virtual4. Security-‐Enhanced Linux (SELinux) es un módulo de seguridad para el kernel Linux que proporciona el mecanismo para soportar políticas de seguridad para el control de acceso, incluyendo controles de acceso obligatorios como los del Departamento de Defensa de Estados Unidos.
1 https://es.wikipedia.org/wiki/Moodle 2 https://es.wikipedia.org/wiki/CentOS 3 https://es.wikipedia.org/wiki/PHP 4 https://es.wikipedia.org/wiki/Servidor_HTTP_Apache
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 2
Objetivo: Haz sido contratado por la empresa “CAPACITACION EDUCATIVA SdRL” como DBA (Data Base Administrator). Haciendo gala de tus conocimientos recién adquiridos en el diplomado “Diseño y Administración de Base de Datos” y en especial del módulo 6. Seguridad de Base de Datos se te pide: Instalar y configurar el LMS Moodle en CentOS usando una arquitectura de dos capas.
Figura No. 1: Arquitectura de dos capas
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 3
Instrucciones En el servidor de base de datos (equipo No. 3) ejecuta los siguientes pasos: 1. Inicia una sesión como root
2. Detén el firewall con el comando: service iptables stop 3. Instala los paquetes mysql-‐server. yum -y install mysql-server 4. Inicia los servicios mysqld: serivce mysqld start 5. Inicia una sesión en el manajeador de base de datos MySQL: mysql 6. Crea una nueva base de datos que usará Moodle: CREATE DATABASE moodle; 7. Crea un usuario en la base de datos: GRANT ALL PRIVILEGES ON moodle.* TO moodle_usr@'192.168.1.y' IDENTIFIED BY 'p4ssw0rd'; 8. Sal de sesión del manejador de base de datos: quit
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 4
En el equipo No.2 Servidor Web, ejecuta los siguientes pasos: 9. Abre una sesión como root 10. Instala el servidor web con soporte para el lenguaje programación php el comando:
yum -y install httpd php55w php55w-mysql
11. Descarga el software modle: wget -c https://download.moodle.org/download.php/direct/stable27/moodle-latest-27.tgz 12. Entra el directorio /var/www/html: cd /var/www/html/ 13. Descomprime el arhivo moodle-‐latest-‐27.tgz: tar zxvf /root/moodle-latest-27.tgz 14. Crea el directorio /var/www/moodledata: mkdir /var/www/moodledata 15. Cambiar el dueño del directorio /var/www/moodledata al usuario y grupo apache: chmod apache:apache /var/www/moodledata 16. Configura el módulo SELinux para permitir al servidor web escribir en el directorio
/var/www/moodledata: chcon -Rvu system_u -t httpd_sys_content_rw_t /var/www/moodledata/ 17. Reincia el servidor web: service httpd restart 18. Configura el firewall para permitir peticiones al puerto 80: iptables -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 5
19. Graba la nueva regla en el archivo /etc/sysconfig/iptables: service iptables save 20. Reinicia el servicio de firewall: service iptables restart 21. Habilitar repositorio rpmforge (DAG) wget http://apt.sw.be/redhat/el7/en/x86_64/dag/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt rpm -Uvh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm 22. Instalar los paquetes php-‐gd, requeridos por moodle: yum -y install php-gd php-mbstring php-xmlrpc php-soap php-intl php-dom 23. Reiniciar el servidor web: service httpd restart
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 6
En el equipo cliente (equipo No. 1): 24. Abre un navegador web y entra la url: http://192.168.1.y/moodle para iniciar con el
procedimiento de instalación (recuerda cambiar la dirección ip por la del del servidor web):
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 7
25. Cambia el idioma a
español(internacional):
26. Confirma los datos de Dirección Web,
Directorio Moodle, Directorio de Datos. (este directorio fue creado en el paso 11):
27. Selecciona el controlador de base de datos
MySQL (nativo/mysql):
28. Indica los datos de conexión a la base
datos (estos datos fueron indicados en los pasos 5 y 6 del presente documento):
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 8
29. Acepta los términos de la licencia:
30. Valida que todos los requerimientos se
cumplan:
31. Continúa con el procedimiento de
instalación:
32. Indica los datos solicitados para la cuenta
de Administrador del sitio:
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 9
33. Indica los datos generales del sitio:
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 10
34. Fin del procedimiento de instalación y configuración:
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño y Administración de Base de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 11
Una vez realizado el proceso de instalación del LMS Moodle, realiza y documenta las siguientes actividades enfocadas a robustecer la seguridad en la infraestructura recién instalada:
1. Configura adecuadamente el firewall de los servidores web y base de datos. a. El puerto de mysql (3306) solo debe estar abierto para el servidor Web. b. El purto de ssh (22) debe estar abierto.
2. Configura la conexión por SSL entre el servidor web y el servidor de base de datos. 3. Realiza una auditoria de seguridad utilizando el comando sqlmap en Kali Linux, sobre el
LMS Moodle. 4. Cambia la contraseña del usuario root del servidor de base de datos por:
p4ssw0rd53gur0 5. Realiza un respaldo de la base de datos moodle y genera una tarea programamda (cron)
para que se ejecute todos los domingos a la 1:00 am.