Mysql Seguridad Replicacion

41
` MYSQL – SEGURIDAD Y REPLICACIÓN [email protected] Ing. Manuel Jesús Sánchez Chero, MSc Se permite la copia y distribución, total o parcial de este documento siempre que se incluya esta nota completa - MSCH Blog: http://manuelsanchezchero.blogspot.com

description

 

Transcript of Mysql Seguridad Replicacion

  • 1. `MYSQL SEGURIDAD Y REPLICACIN Ing. Manuel Jess Snchez Chero, [email protected] Blog: http://manuelsanchezchero.blogspot.com Se permite la copia y distribucin, total o parcial de este documento siempre que se incluya esta nota completa - MSCH

2. ` MYSQL SEGURIDAD Y REPLICACIN Introduccin Estructura de MySQL Seguridad en MySQL Copia de Seguridad Mantenimiento de Base de Datos Duplicacin Conclusiones 3. ` MYSQL SEGURIDAD Y REPLICACIN Al tratar el tema de la seguridad en MySQL, es importante considerar la necesidad de proteger totalmente la mquina completa contra todos`los tipos de ataques posibles: Intercepcin pasiva de paquetes Reproduccin de Comandos Denegacin de Servicios 4. `MYSQL SEGURIDAD Y REPLICACIN1995 MySQL AB desarrolla MySQL como software libre bajo licencia GNU, pero,mediante licencia dual, tambin proporcionan MySQL bajo la licencia tradicionalde software propietario para los casos en los que su uso sea incompatible con lalicencia GPL.Caractersticas Tambin tiene la opcin de proteccin mediante contrasea, la cual es flexible y segura. Y ahora bajo licencia GPL! 5. ` MYSQL SEGURIDAD Y REPLICACIN Base de Datos del SistemaMYSQL 3.23Mysqlroot 6. ` MYSQL SEGURIDAD Y REPLICACIN Tablas de la base de Datos MYSQL MYSQL 3.23 columns_priv : Privilegio de Columnas Mysql db : Privilegio de Base de Datos func : Funciones Definidas por usuarioshost : Previlegios Host y databasestables_priv : Previlegio de tablasuser : Usuarios y Previlegios globlales 7. `MYSQL SEGURIDAD Y REPLICACIN MYSQL 5.1.9 Procedimientos almacenados. Triggers. Cursores. Vistas actualizables. Soporte a VARCHAR. INFORMATION_SCHEMA. Subconsultas. Full Unicode. 8. ` MYSQL SEGURIDAD Y REPLICACIN Tablas de la base de Datos MYSQL MYSQL 5.1.9 Mysql 9. ` MYSQL SEGURIDAD Y REPLICACIN Estructura de tabla(Datos) .myd(claves) .myi (Estructura) ` .frm 10. `MYSQL SEGURIDAD Y REPLICACINEl sistema de PermisosEl Sistema de permisos lo guarda en la base de datos mysql. ` 11. `MYSQL SEGURIDAD Y REPLICACINEl sistema de Permisos` 12. ` MYSQL SEGURIDAD Y REPLICACINAlgunas RecomendacionesNo d nunca a nadie (excepto a la cuenta root de MySQL` acceso a la tabla User en la base de datos mysql) Esto es crtico. La clave cifrada es la verdadera clave en MySQL. 13. ` MYSQL SEGURIDAD Y REPLICACINAlgunas Recomendaciones Estudie el sistema de privilegios de acceso a MySQL. Las sentencias GRANT y REVOKE, se utiliza para` Dar acceso a MySQL. No otorgue ms privilegios de los necesarios` 14. ` MYSQL SEGURIDAD Y REPLICACINAlgunas Recomendaciones No elija claves que puedan aparecer en el diccionario Existen programas especiales para romperlas ` Invierta en un FIREWALL, le proteger al menosun 50 % de todas las vulnerabilidad de cualquier software Ponga MySQL tras del FIREWALL ` 15. ` MYSQL SEGURIDAD Y REPLICACINAlgunas Recomendaciones Intente escanear sus puertos desde Internet MySQL, utiliza el puerto 3306 por defecto` Probar si el puerto MySQL, esta abiertocliente@root # nmap localhost Shell > telnet server_host 3306` 16. `MYSQL SEGURIDAD Y REPLICACINSeguridad en la Base de Datos Conectarse a MySQL desde el shell, si es capaz de conectarse sin clave` Tendr problemas, por que cualquier usuario Shell > mysql u root -p podr conectarseShell >mysql` 17. `MYSQL SEGURIDAD Y REPLICACINAsignar password al root Luego de instalar MySQL, se necesita Inicializar las tablas de permisos Ejecutar el Servidor Asegurarse que funcione correctamenteServidor@root # mysql_install_dbServidor@root # mysql u root -p ` ` 18. `MYSQL SEGURIDAD Y REPLICACINAsignar password al root Con mysqladmin ` Servidor@root # mysqladmin u root -p Con set password Servidor@root # mysqlmysql>set password for @localhost=password(newpwd); ` 19. `MYSQL SEGURIDAD Y REPLICACINAsignar password al root Con la sentencia UPDATE` Servidor@root # mysqlmysql>UPDATE mysql.user SET password =password(newpwd)WHERE User=;mysql> flush privileges; ROOT 20. ` MYSQL SEGURIDAD Y REPLICACINLa sentencia GRANT Utilice la sentencia SHOW GRANTS ycomprueba quien tiene acceso a qu recursos. `Servidor@root # mysql mysql>show grants;ROOTGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD'*E74858DB86EBA20BC33D0AECAE8A8108C56B17FA' WITH GRANT OPTION 21. ` MYSQL SEGURIDAD Y REPLICACINCarcteres de Escape Apis de Programacin API MySQL de C: Utilice la funcin`mysql_real_escape_string(). PHP: Utilice la funcinmysql_escape_string(). - PHP 4.0.3,addslashes(). En PHP 5 puede utilizar la extensin mysqli, que soporta los protocolo de autentificacin y clave de acceso mejorados de MySQL, as como las sentencias preparadas con placeholders. DBI de Perl: Utilice el mtodo quote() o utilice placeholders. JDBC de Java: Utilice un objeto PreparedStatement y placeholders. 22. `MYSQL SEGURIDAD Y REPLICACIN Sentencia LOAD DATA Desactivar todos los comando LOAD DATA LOCAL, desde el Servidormysqld local-infile=0 Para el cliente LOAD DATA LOCAL--local-infile=1habilitarse--local-infile=0Deshabilitarse ` 23. `MYSQL SEGURIDAD Y REPLICACIN Encriptacin No almacene ninguna clave sin cifrar en su base de datos Si alguien tuviera acceso a su computador, el intruso obtendr la listacompleta de claves utilizadas Utilice MD5(), SHA1(), o cualquier otra funcin hashing de un sentido` 24. `MYSQL SEGURIDAD Y REPLICACIN MySQLDump Programa de respaldo de base de datos Trasfiere los datos a otros servidores El respaldo contiene sentencias SQL ` Servidor@root # mysqldump empresa >empresa.sqlempresa.sql 25. `MYSQL SEGURIDAD Y REPLICACIN MySQLcheckAnaliza, repara y optimiza el contenido de las tablas Es similar a myisamchk, pero trabaja diferenteLa diferencia radica en que mysqlcheck no es necesariodetener el servidor para realizar mantenimiento, mientras enel otro si `Shell> mysqlcheck empresa u root -p Enter password: *****empresa.actividad OKempresa.areaOKempresa.cargo OKempresa.departamentoOKempresa.persona OKempresa.proyecto OKempresa.ubigeoOK 26. ` MYSQL SEGURIDAD Y REPLICACIN Qu es duplicacin MySQL, dispone de duplicacin, que permite reflejar automticamente una o varias bases de datos de un servidor La duplicacin funciona de la siguiente forma:El servidor esclavo se inicia con una copia exacta de l0s datos del servidor principal. PrincipalEsclavo La duplicacin resulta til para: Copias de seguridad, en funcin de errores de disco , no de errores humanos Acelerar el rendimiento 27. `MYSQL SEGURIDAD Y REPLICACIN Duplicacin - Jerrquica Normalmente la duplicacin se lleva acabo de forma JerrquicaPrincipal EsclavoEsclavo Principal Esclavo Su cdigo cliente debe cerciorarse que no tenga conflictos En caso de haber la aplicacin puede fallar, debido a las irregularidades porla estructura circular 28. `MYSQL SEGURIDAD Y REPLICACINDuplicacin - Circular Principal/Esclavo Principal/Esclavo Principal/Esclavo No es necesario la conexin sea continua Si se rompe el enlace Esclavo vuelve a conectarse e inicia laactualizacin desde el punto en que seinterrumpi Principal/Esclavo Principal/Esclavo 29. ` MYSQL SEGURIDAD Y REPLICACINResumen La duplicacin es una funcin muy til Permite conservar una copia exacta de datos Las base de datos principales escriben en el registro binario Una serie de servidores esclavos se conectan al principal, lee el registro binario de actualizacin y duplican estas instrucciones en sus servidores La duplicacin es de gran utilidad para copias de seguridad y rendimiento La relacin entre el registro binario y el archivo master.info del esclavo es fundamental para conservar la duplicacin Si se eliminan los registros binarios antes de que los esclavos los utilice, la duplicacin fallar.Principal/EsclavoPrincipal/Esclavo 30. ` MYSQL SEGURIDAD Y REPLICACIN Conclusiones Deshabilitar el acceso remoto Cambiar el password de root por defecto Eliminar cuentas annimas y passsword en blancos Eliminar la base de datos test Correr MySQL como usuario sin privilegios Conceder permisos mnimos a los usuarios` ` 31. `PORTADA MYSQL SEGURIDAD Y REPLICACIN Gracias ...!!!! Ing. Manuel Jess Snchez Chero, MSc [email protected]: http://manuelsanchezchero.blogspot.com Se permite la copia y distribucin, total o parcial de este documento siempre que se incluya esta nota completa - MSCH 32. ` DBMS - LibresMYSQL SEGURIDAD Y REPLICACIN Clientes``` Servidores 33. `Autenticacin de acceso MYSQL SEGURIDAD Y REPLICACINACCESO`Servidor LinuxCuenta de usuario ` 34. ` MYSQL SEGURIDAD Y REPLICACIN Es una aplicacin destinada a la administracin de bases de datos MySQL desde la web. Podemos realizar prcticamente todas las tareas de administracinEl acceso a una base de datos o mltiples servidores MySQL ya no ser una barrera a superar para ningn usuario. 35. `MYSQL SEGURIDAD Y REPLICACINDBManager Professional http://www.dbtools.com.br/EN/index.phpCARACTERISTICAS Administracin de grupos y usuarios. Mantenimiento a bases de datos. Editor de consultas con sintaxis de colores. Asistente para exportacin de datos a bases. Windows 95/ 98/ ME, Windows NT 4 / 2000, XP Segn sus creadores, sta es la aplicacin ms poderosa para MySQL y que tiene muchas caractersticas bastante buenas. 36. `MYSQL SEGURIDAD Y REPLICACIN http://dbdesigner.sourceforge.net/ Permite crear una base de datos en un ambiente bastante intuitivo y fcil de usar. Se pueden ver de una manera muy rpida los campos de una tabla. DbDesigner es fcilmente extensible para trabajar con algunos otros servidores de base de datos. DbDesigner puede exportar el esquema de la base de datos a un archivo .sqlPor default se proporcionan dos plugins, uno para PostgreSQL y otro para MySQL. 37. `MYSQL SEGURIDAD Y REPLICACIN Integra las tareas de gestin de bases de datos MySQL con las de mantenimiento a travs de un entorno de trabajo ms visual e intuitivo. Las operaciones en lnea de comando se llevan a cabo en un entorno grfico que ameniza las tareas de configuracin de servidores, administracin de usuario y monitorizacin de bases de datos MySQL, junto a las tareas de comprobacin del buen estado de la replicacin, tareas de backup y restauracin 38. ` MYSQL SEGURIDAD Y REPLICACINMySQL Query Browser Herramienta grfica proporcionada por MySQL AB para crear, ejecutar, y optimizar consultas en un ambiente grfico. Esta diseado para ayudarle a consultar y analizar datos almacenados en su base de datos MySQL. Trabajar con versiones superiores a MySQL 4.0. Componentes: Editor de sentencias SQL, Visor de resultados, Navegador de objetos y Visor de informacin.Para MySQL Query Browser, existe un foro(Ingls) dedicado disponible en http://forums.mysql.com/list.php?108. 39. ` MYSQL SEGURIDAD Y REPLICACIN SQLiteManager est basado en web y es multilinge. Esta herramienta nos permite gestionar mltiples bases de datos SQLite de forma muy intuitiva, desde la creacin, acceso y gestin hasta el uploads de bases de datos. Dispone de muchas opciones de gestin, como la creacin, modificacin y/o eliminacin de tablas y manipulacin de ndices. Posibilita la importacin de datos desde un fichero de texto forateado, as como la conversin de peticiones MySQL, la visualizacin a partir de peticiones SELECT, la gestin de Trigger y funciones de usuarios. permite exportar la estructura y los datos. 40. `MYSQL SEGURIDAD Y REPLICACIN Eficiente gestor de bases de datos MySQL escrito en PHP, capaz de administrar una o varias bases de datos. Ideal para realizar operaciones bsicas, permite la recuperacin de las propiedades de una tabla, exportar e importar la estructura y/o el contenido de una base de datos. 41. ` MYSQL SEGURIDAD Y REPLICACIN Es una interfaz grfica KDE para bases de datos DBase, Firebird, MS Access, MySQL, Paradox, PostgreSQL, SQLite, y ODBC. Junto a las tablas, visas y peticiones, soporta tambin formularios y peticiones escriptables va Python.