Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

11
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.7 1 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 Hat 2 . 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 datos 3 . 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 virtual 4 . SecurityEnhanced 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

Transcript of Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

Page 1: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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  

Page 2: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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  

     

Page 3: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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        

Page 4: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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

Page 5: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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      

Page 6: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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):      

   

Page 7: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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):  

 

     

Page 8: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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:      

     

Page 9: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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:    

 

Page 10: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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:    

         

Page 11: Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado

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.