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

Post on 26-Jul-2015

864 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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  

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:    

       

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:  

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:  

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:  

paco.medina@comunidad.unam.mx>  

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:  

paco.medina@comunidad.unam.mx>  viii. A  challenge  password:  <ENTER>  ix. An  optional  compay  name:  <ENTER>  

 

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.  

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:  

paco.medina@comunidad.unam.mx>  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    

   

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    root@192.168.1.y:/etc/mysql/newcerts    

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

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  

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.    

       

 

top related