actividad no. 1.13: configuración acceso seguro al servidor de base de datos mysql

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 No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL Antecedentes 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. 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. Es un sistema operativo de código abierto, basado en la distribución Red Hat Enterprise Linux, operándose de manera similar, y cuyo objetivo es ofrecer al usuario un software de "clase empresarial" gratuito. Se define como robusto, estable y fácil de instalar y utilizar. Desde la versión 5, cada lanzamiento recibe soporte durante diez años, por lo que la actual versión 7 recibirá actualizaciones de seguridad hasta el 30 de junio de 2024. 1 Dado que la información más importante de una organización se encuentra almacenada en un servidor de base de datos, es imperativo acceder a el de forma segura. Objetivo Configurar el acceso seguro al servidor de base de datos MySQL a través de la implementación de los siguientes mecanismos de seguridad: Conexión segura al servidor de base de datos MySQL utilizando certificados SSL. Protección mediante filtrado de paquetes del sistema operativo CentOS donde se ejecuta el manejador de base de datos MySQL. Implementación de autenticación con dos factores al servicio ssh del sistema operativo CentOS. 1 https://es.wikipedia.org/wiki/CentOS

Upload: francisco-medina

Post on 26-Jul-2015

864 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  No.  1.13:  Configuración  acceso  seguro   al   servidor   de   base   de   datos  MySQL  Antecedentes    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.      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.    Es   un   sistema   operativo   de   código   abierto,   basado   en   la   distribución   Red   Hat  Enterprise  Linux,  operándose  de  manera  similar,  y  cuyo  objetivo  es  ofrecer  al  usuario  un  software  de  "clase  empresarial"  gratuito.  Se  define  como  robusto,  estable  y  fácil  de  instalar  y  utilizar.  Desde   la  versión  5,   cada   lanzamiento   recibe   soporte  durante  diez  años,  por  lo  que  la  actual  versión  7  recibirá  actualizaciones  de  seguridad  hasta  el  30  de  junio  de  2024.1    Dado   que   la   información   más   importante   de   una   organización   se   encuentra  almacenada   en   un   servidor   de   base   de   datos,   es   imperativo   acceder   a   el   de   forma  segura.    Objetivo    Configurar   el   acceso   seguro   al   servidor   de   base   de   datos   MySQL   a   través   de   la  implementación  de  los  siguientes  mecanismos  de  seguridad:    

• Conexión   segura   al   servidor   de   base   de   datos   MySQL   utilizando   certificados  SSL.  

• Protección  mediante  filtrado  de  paquetes  del  sistema  operativo  CentOS  donde  se  ejecuta  el  manejador  de  base  de  datos  MySQL.  

• Implementación  de  autenticación   con  dos   factores  al   servicio   ssh  del   sistema  operativo  CentOS.  

   

                                                                                                               1  https://es.wikipedia.org/wiki/CentOS  

Page 2: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

Requerimientos    Para  la  ejecución  de  esta  actividad,  serán  necesarios  tres  equipos  de  cómputo  con  los  siguientes  roles:  

• Equipo  No.  1:  Servidor  de  base  de  datos  (CentOS).  Configurar  este  equipo  de  acuerdo  a  la  Actividad  No.  1.4-­‐  Instalación  y    Configuración  de  MySQL  en  CentOS  6  y  crear  una  la  base  de  datos  world  como  lo  indica  la  Actividad  No.  1.6-­‐  Creación  de  bases  de  datos  en  MySQL.  

• Equipo  No.  2:  Computadora  cliente  que  tiene  privilegios  de  conexión  al  servidor  de  base  de  datos.  (CentOS).  

• Equipo  No.  3:  Computadora  atacante  que  NO  tiene  privilegios  de  conexión  al  servidor  de  base  de  datos  (Kali  Linux)  configurado  como  lo  indica  la  Actividad  No.  1.2:  Introducción  a  Kali  Linux.    

 La  siguiente  figura  muestra  la  topología  de  red  a  utilizar  en  esta  actividad:    

       

Page 3: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

Conexión  segura  al  servidor  de  base  de  datos  MySQL  utilizando  certificados  SSL.    En  el  servidor  de  base  de  datos  ejecutar  realiza  las  siguientes  actividades:    

1. Inicia  sesión  en  el  manejador  de  base  de  datos  MySQL  usando  el  siguiente  comando:    mysql  –u  root  –p  

 

   

2. Validar  el  soporte  SSL  en  el  servidor  de  base  de  datos  MySQL  con  el  siguiente  comando:    SHOW  VARIABLES  LIKE  ‘%ssl%';    

 3. Sólo  si  el  valor  es  DISABLED,  ejecutar  los  siguientes  pasos:  

Page 4: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

a. Abre  una  nueva  terminal  usando  la  combinación  de  teclas  CONTROL  +  SHIFT  +  t    

b. Edita  el  archvo  /etc/my.cnf  con  el  comando:  vi  /etc/my.cnf    

c. Agrega  la  palabra  ssl  debajo  de  pid-­‐file  en  la  sección  GENERAL.  

 d. Sal  del  editor  vi  usando  la  secuencia  ESC  :x  e. Reinicia  el  servidor  de  base  de  datos  con  el  comando:  

service  mysqld  restart  

 f.  Regresa  a  la  terminal  donde  esta  la  sesión  al  manejador  de  base  de  

datos  usando  la  combinación  de  teclas  ALT  +  1  y  ejecuta  el  siguiente  comando:    SHOW  VARIABLES  LIKE  '%ssl%';  

 Ahora  ya  debe  estar  habilitado  en  soporte  para  SSL.    

4. Crea  los  certificados  SSL  para  la  CA,  necesarios  para  la  conexión  segura  entre  el  cliente  y  el  servidor  de  MySQL  con  los  siguientes  pasos:  

Page 5: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

a. Regresa  a  la  terminal  del  sistema  operativo  con  la  combinación  de  teclas  ALT  +  2.  

b. Crea  el  directorio  /etc/mysql/newcerts  e  ingresa  al  directorio:    mkdir  -­‐p  /etc/mysql/newcerts  &&  cd  /etc/mysql/newcerts    

 c. Crea  los  certificados  de  la  CA  con  el  comando:  

 openssl  genrsa  2048  >  ca-­‐key.pem    

   

d. Crea  una  solicitud  de  certificado  con  el  comando:    openssl  req  -­‐new  -­‐x509  -­‐nodes  -­‐days  1000  -­‐key  ca-­‐key.pem  >  ca-­‐cert.pem    

 e. Introduce  los  siguientes  valores  para  la  creación  del  certificado  de  

seguridad:  i. Country  Name:  MX  ii. State  or  Province  Name:  Distrito  Federal  iii. Locality  Name:  Mexico  iv. Organización  Name:  UNAM  v. Organizational  Unit  Name:  FCA  vi. Common  Name:  servidor  vii. Email  Address:  <tu  correo  electrónico  ej:  

[email protected]>  

Page 6: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

   

5. Crea  los  certificados  SSL  para  el  servidor,  necesarios  para  la  conexión  segura  de  MySQL  con  los  siguientes  pasos:  

a. Crea  un  certificado  para  el  servidor  con  el  comando:    openssl  req  -­‐newkey  rsa:2048  -­‐days  1000  -­‐nodes  -­‐keyout  server-­‐key.pem  >  server-­‐req.pem    Utiliza  los  mismos  valores  del  paso  5  punto  e.  Cuando  se  pregunta  por  la  contraseña  solo  dar  ENTER.  

i. Country  Name:  MX  ii. State  or  Province  Name:  Distrito  Federal  iii. Locality  Name:  Mexico  iv. Organización  Name:  UNAM  v. Organizational  Unit  Name:  FCA  vi. Common  Name:  servidor  vii. Email  Address:  <tu  correo  electrónico  ej:  

[email protected]>  viii. A  challenge  password:  <ENTER>  ix. An  optional  compay  name:  <ENTER>  

 

Page 7: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

   

b. Ejecutar  el  comando:    openssl  x509  -­‐req  -­‐in  server-­‐req.pem  -­‐days  1000  -­‐CA  ca-­‐cert.pem  -­‐CAkey  ca-­‐key.pem  -­‐set_serial  01  >  server-­‐cert.pem      

   

6. Crear  los  certificados  para  el  cliente  con  los  siguientes  pasos:  a. Solicitud  de  certificado  para  el  cliente:  

openssl  req  -­‐newkey  rsa:2048  -­‐days  1000  -­‐nodes  -­‐keyout  client-­‐key.pem  >  client-­‐req.pem  Utiliza  los  siguientes  valores.  Cuando  se  pregunta  por  la  contraseña  solo  dar  ENTER.  

Page 8: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

i. Country  Name:  MX  ii. State  or  Province  Name:  Distrito  Federal  iii. Locality  Name:  Mexico  iv. Organización  Name:  UNAM  v. Organizational  Unit  Name:  FCA  vi. Common  Name:  cliente  vii. Email  Address:  <tu  correo  electrónico  ej:  

[email protected]>  viii. A  challenge  password:  <ENTER>  ix. An  optional  compay  name:  <ENTER>  

 

   

b. Crea  el  certificado  X509  para  el  cliente  con  el  comando:  openssl  x509  -­‐req  -­‐in  client-­‐req.pem  -­‐days  1000  -­‐CA  ca-­‐cert.pem  -­‐CAkey  ca-­‐key.pem  -­‐set_serial  01  >  client-­‐cert.pem    

   

Page 9: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

c. Muestra  el  contenido  del  directorio  con  el  comando:  ls  –l  

   

Valida  que  el  contenido  de  tu  directorio  tenga  los  mismos  archivos  que  la  imagen.    

7. Transferir  los  archivos  ca-­‐cert.pem,  client-­‐cert.pem,  y  client-­‐key.pem  al  equipo  cliente  siguiendo  los  siguientes  pasos:  

a. En  el  equipo  cliente  crear  el  directorio  /etc/mysql/newcerts  con  el  comando:    mkdir  -­‐p  /etc/mysql/newcerts    

b. En  el  equipo  cliente,  inciar  el  servicio  de  sshd  con  el  comando:    service  sshd  start    

   

c. En  el  servidor  de  base  de  datos  ejecutar  el  siguiente  comando:    

scp  /etc/mysql/newcerts/ca-­‐cert.pem    [email protected]:/etc/mysql/newcerts    

 Con  esto  logramos  tansferir  el  archivo  ca-­‐cert.pem  al  equipo  cliente.  

Page 10: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

 d. Repetir  el  paso  anterior  para  los  archivos  client-­‐cert.pem  y  

client-­‐key.pem.    

8. En  el  servidor  de  base  de  datos,  editar  el  archivo  /etc/my.cnf  y  agregar  los  siguientes  valores,  la  sección  GENERAL  dentro  del  bloque  [mysqld]:    ssl-­‐ca=/etc/mysql/newcerts/ca-­‐cert.pem  ssl-­‐cert=/etc/mysql/newcerts/server-­‐cert.pem  ssl-­‐key=/etc/mysql/newcerts/server-­‐key.pem    

   

9. Reinicia  el  servicio  de  mysqld.    

 10. Permite  al  usuario  root  conectarse  desde  cualquier  equipo  de  la  red  con  el  

siguiente  comando:    GRANT  ALL  PRIVILEGES  ON  *.*  TO  root@'%'  IDENTIFIED  BY  'p4ssw0rd'  WITH  GRANT  OPTION;    

   

11. En  el  equipo  cliente  configura  el  uso  de  certificados  editando  el  archivo  /etc/my.cnf    agregando  las  siguientes  líneas  en  la  sección    [mysql]:    ssl-­‐cert                                              =  /etc/mysql/newcerts/client-­‐cert.pem  ssl-­‐key                                                =  /etc/mysql/newcerts/client-­‐key.pem  

Page 11: Actividad No. 1.13: Configuración acceso seguro al servidor de base de datos MySQL

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  

   

12. Desde  el  equipo  cliente  inicia  una  conexión  al  servidor  de  base  de  datos  con  el  comando:    mysql  -­‐sss  -­‐h  10.211.55.12  -­‐u  root  -­‐p    

13. Valida  el  uso  de  SSL  con  el  comando  \s  dentro  del  manejador  de  base  de  datos.