Los mejores consejos para la seguridad de MySQL y MariaDB
Publicado: 2022-01-08La seguridad es una gran preocupación para muchas personas. Esta publicación le dará diez consejos sobre cómo lograr la seguridad de MySQL y MariaDB para que sus bases de datos estén a salvo de los piratas informáticos. Estos consejos incluyen: hacer una copia de seguridad de los datos, usar contraseñas seguras y limitar los privilegios de acceso.
Los mejores consejos para la seguridad de MySQL y MariaDB
Estos son los mejores consejos para lograr la seguridad de MySQL y MariaDB:
Eliminar usuarios sin contraseña
Si tiene usuarios en su base de datos sin contraseña, lo mejor es eliminarlos. Esto ayudará a reducir las posibilidades de que alguien pueda piratear su base de datos. Puede utilizar la siguiente consulta para eliminar estos usuarios:
Independientemente de si los usuarios solo tienen acceso desde el servidor local, deben eliminarse para evitar que se ejecuten comandos negativos. Además, las contraseñas débiles son un riesgo de seguridad en sí mismas.
Siempre debe usar contraseñas seguras al crear usuarios en sus bases de datos. Las contraseñas débiles son más fáciles de descifrar por los piratas informáticos, lo que podría llevarlos a obtener acceso a su base de datos y causar estragos en ella si logran esto. El uso de un generador de contraseñas automatizado ayudará a crear contraseñas más seguras que sean más difíciles de descifrar.
También debe considerar el uso de autenticación de dos factores para sus usuarios. Esto requerirá un código adicional, generalmente enviado a su teléfono, para iniciar sesión en la base de datos. Esto hace que sea mucho más difícil para alguien obtener acceso si solo tiene su nombre de usuario y contraseña.
Limitar el acceso remoto
Si no necesita otorgar acceso remoto a su base de datos, es mejor limitarlo. Esto ayudará a reducir las posibilidades de que alguien pueda piratear su base de datos desde una ubicación remota.
Afortunadamente, las últimas versiones de MySQL y MariaDB limitan automáticamente el acceso remoto a la base de datos a menos que se especifique lo contrario. Sin embargo, aún debe verificar su configuración de seguridad para asegurarse de que este sea el caso.
También es una buena idea asegurarse de que todos los usuarios se conecten a MySQL solo con los hosts exactos que desee. Por ejemplo, esto se puede hacer usando ([email protected]).
Eliminar la base de datos de prueba
Cuando instala MySQL o MariaDB, se crea automáticamente una base de datos de prueba. Esta base de datos contiene datos que pueden usarse para piratear sus bases de datos reales si cae en las manos equivocadas. Lo mejor es eliminar esta base de datos para que no se pueda utilizar con fines nefastos.
Esta base de datos de prueba también provoca una tensión innecesaria en el servidor de la base de datos. Solo lo utilizan los probadores de bases de datos para probar consultas, por lo que puede eliminarse sin afectar la funcionalidad de sus bases de datos.
Ofuscar el acceso a MySQL
Si no desea que la gente sepa que su base de datos existe, puede ofuscar su acceso. Esto hará que sea más difícil para alguien encontrar su base de datos y piratearla.
La ofuscación del acceso también hace que sea más difícil para cualquiera que esté monitoreando su tráfico determinar qué puertos están siendo utilizados por MySQL o MariaDB.
Es bien sabido que MySQL se ejecuta en el puerto 3306, mientras que 'root' es el nombre del superusuario. Puede solucionar esto editando my.cnf y cambiando la variable 'puerto'.
Asegure sus archivos de configuración
Como con cualquier aplicación, es importante asegurar sus archivos de configuración para MySQL o MariaDB. Estos archivos contienen información confidencial, como contraseñas y datos de usuario. Proteger estos archivos ayudará a evitar que alguien obtenga acceso a esta información si acceden a sus servidores.
Seguridad de la red
También es importante proteger su red, así como los propios servidores. Esto ayudará a reducir las posibilidades de que alguien piratee su base de datos desde una ubicación remota y ejecute comandos nefastos en ella.
Lo primero que debe asegurarse es que solo se acceda a MySQL a través de una conexión local, no de la red. Puede hacerlo a través de un socket Unix. Ingrese 'skip-networking' en my.cnf. para detener todas las comunicaciones TCP/IP.

También puede usar su firewall para bloquear el acceso a MySQL desde ciertas direcciones IP o rangos. Esto ayudará a reducir las posibilidades de que alguien piratee su base de datos desde una ubicación remota.
Usar complementos de auditoría
También puede usar complementos de auditoría para realizar un seguimiento de lo que sucede en su base de datos. Esto lo ayudará a determinar si alguien ha pirateado su base de datos o si algo sospechoso está sucediendo que podría sugerir esto.
Hay muchas opciones gratuitas y pagas para estos complementos disponibles en línea hoy. MySQL Enterprise Audit es una buena opción si MySQL Enterprise ya se utiliza en su organización. MariaDB también tiene su propio complemento de auditoría.
Todos estos complementos hacen un gran trabajo al monitorear su base de datos en busca de actividad sospechosa. Incluso pueden enviarle alertas si se detecta algo inusual para que no tenga que verificar los registros manualmente cada vez.
Deshabilitar CARGAR DATOS ARCHIVO LOCAL
Otra forma de evitar que alguien obtenga acceso a su base de datos es deshabilitar la capacidad LOCAL en MySQL y MariaDB. Este comando le permite cargar archivos de datos desde un archivo local, pero también presenta un riesgo de seguridad, especialmente si no están encriptados. Para deshabilitar esta función, establezca local-infile=0 en my.cnf.
Privilegios de archivo
También es importante establecer los privilegios de archivo correctos para sus archivos MySQL y MariaDB. Esto asegurará que solo los usuarios autorizados puedan acceder a ellos. Puede hacerlo configurando los permisos apropiados en estos archivos.
Por ejemplo, puede establecer que el propietario de todos sus archivos MySQL sea 'mysql' y el grupo sea 'mysql', negando el acceso a todos los demás usuarios. Esto asegurará que solo los usuarios con los permisos correctos puedan acceder a sus archivos MySQL.
SSL y Cifrado de Datos en Tránsito
Si está ejecutando MySQL o MariaDB con SSL habilitado, es importante tener los certificados necesarios instalados en su servidor. Si esto no se hace, cualquiera puede interceptar la información que se envía entre su base de datos y sus clientes.
También debe cifrar todos los datos en tránsito para una mayor protección de los datos confidenciales que se transmiten a través de redes públicas mediante SSH.
También puede cifrar los datos que se transmiten entre su servidor de base de datos y otros dispositivos. Esto garantizará que cualquier persona que controle el tráfico en su red no pueda acceder a ninguno de los datos que está transmitiendo o recibiendo, incluso si ha logrado piratear uno de estos sistemas.
SSL sería una excelente manera de lograr esto para los usuarios de MySQL, ya que ya está integrado en el protocolo. Los usuarios de MariaDB pueden usar stunnel para lograr un efecto similar.
Cifrado de datos en reposo
Por último, también debería considerar cifrar sus datos en reposo. Esto significa que los datos se cifran incluso cuando no se transmiten.
Esto se puede hacer usando una herramienta como MySQL Enterprise Encryption o MariaDB Column Encryption.
Ambas herramientas ofrecen una excelente manera de proteger sus datos para que no se acceda a ellos si alguien logra piratear su servidor de base de datos. También son muy fáciles de usar, por lo que no es necesario ser un experto en encriptación para aprovechar estas herramientas.
Conclusión
Todas las opciones mencionadas aquí lo ayudarán a lograr la seguridad de MySQL y MariaDB, pero no todas son perfectas para todas las situaciones. Debe considerar sus necesidades específicas al mirarlas para que pueda elegir la mejor posible. Sin embargo, estos consejos deberían darle una buena idea sobre cómo elegir una opción que funcione bien para usted.
Con suerte, este artículo le ha dado algunas buenas ideas sobre cómo lograr la seguridad de MySQL y MariaDB en su organización para que nadie pueda piratear sus bases de datos si logran romper otras defensas.