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
Actividad Final: Instalación del LMS Moodle en CentOS con el módulo SELinux habilitado
1. 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
2. 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
3. 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
4. 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
5. 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
6. 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):
7. 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):
8. 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:
9. 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:
10. 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:
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
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.