Parte 1 de 3
Parte 2 de 3
Parte 3 de 3
Continuamos con la tercera y última entrada sobre fortificación de MySQL.
16.-Verificacar las contraseñas para que todas utilicen el nuevo sistema de hash y asegurar que no existen usuarios sin contraseña. El antiguo hash tenía una longitud de 16 caracteres y el nuevo de 42, por lo tanto la siguiente consulta no debería mostrar resultados:
17.- Comprobación de los hosts permitidos para los usuarios con el objetivo de que no existan usuarios que puedan realizar la conexión desde cualquier dirección IP. Todos aquellos usuarios que devuelva la siguiente consulta han de ser revisados:
18.- Búsqueda de usuarios con privilegios especiales, que no deberían tener habilitados para usos normales. Los permisos a comprobar son: FILE, PROCESS, SUPER, SHUTDOWN, CREATE USER y RELOAD:
20.- Deshabilitar el uso de enlaces simbólicos que pueden ser peligrosos especialmente si el usuario que ejecuta la base de datos es root y puede sobrescribir otros ficheros. Para aplicar la medida se define la variable "have_symlink" o el parámetro --skip-symbolic-links
Referencias:
Parte 2 de 3
Parte 3 de 3
Continuamos con la tercera y última entrada sobre fortificación de MySQL.
14.- Comprobación de permisos de ficheros de registros, de configuración y archivos SSL: para que únicamente el usuario que ejecuta la base de datos tenga permisos de lectura y escritura. Estos ficheros se encuentran generalmente en /var/log/mysql y /etc/mysql/my.cnf. Los archivos SSL son especificados en las variables: ssl_ca, ssl_cert, ssl_key
shell> ls -l /var/log/mysql shell> ls -l /etc/mysql/my.cnf
mysql> show variables like "%ssl%";
15.-Actualizar tablas de privilegios mediante el uso de los scripts "mysql_upgrade" y "mysql_fix_privilege_tables" cuando se actualice la base de datos a una nueva versión.
shell> ls -l /var/log/mysql shell> mysql_fix_privilege_tables --password=ecm2sux This script updates all the mysql privilege tables to be usable by the current version of MySQL done
16.-Verificacar las contraseñas para que todas utilicen el nuevo sistema de hash y asegurar que no existen usuarios sin contraseña. El antiguo hash tenía una longitud de 16 caracteres y el nuevo de 42, por lo tanto la siguiente consulta no debería mostrar resultados:
mysql> select User, Password from mysql.user where length(password) < 41;Otra opción es habilitar la variable "secure_auth", para deshabilitar directamente estos usuarios, para consultar el estado:
mysql> show variables like "secure_auth"Los usuarios con contraseñas en blanco se pueden localizar con la consulta:
mysql> select User, Password from mysql.user where length(password) = 0 or password is null;
17.- Comprobación de los hosts permitidos para los usuarios con el objetivo de que no existan usuarios que puedan realizar la conexión desde cualquier dirección IP. Todos aquellos usuarios que devuelva la siguiente consulta han de ser revisados:
mysql> select user from mysql.user where host = '%';
18.- Búsqueda de usuarios con privilegios especiales, que no deberían tener habilitados para usos normales. Los permisos a comprobar son: FILE, PROCESS, SUPER, SHUTDOWN, CREATE USER y RELOAD:
mysql> select user, host from mysql.user where File_priv = 'Y'; mysql> select user, host from mysql.user where Process_priv = 'Y'; mysql> select user, host from mysql.user where Super_priv = 'Y'; mysql> select user, host from mysql.user where Shutdown_priv = 'Y'; mysql> select user, host from mysql.user where Create_user_priv = 'Y'; mysql> select user, host from mysql.user where Reload_priv = 'Y';
19.- Deshabilitar la fusión (MERGE) de tablas que permite acceder a datos incluso si no hay permisos sobre ellas. Para llevar a cabo esta configuración se puede consultar el estado en la variable "have_merge_engine" y para implantarlo, añadir el parámetro --skip-merge
20.- Deshabilitar el uso de enlaces simbólicos que pueden ser peligrosos especialmente si el usuario que ejecuta la base de datos es root y puede sobrescribir otros ficheros. Para aplicar la medida se define la variable "have_symlink" o el parámetro --skip-symbolic-links
[mysqld] skip-symbolic-links=on
Referencias:
3 comments :
gran serie de artículos. Enhorabuena.
Muy útiles y muy buenos los 3 fasciculos!!
Gracias :)
gran serie de artículos. Enhorabuena.
Publicar un comentario