MySQL Server Hardening

27

Siguiendo el tema del endurecimiento ...

¿Cuáles son algunas de las mejores prácticas, recomendaciones, lecturas necesarias para proteger MySQL?

    
pregunta Scott Pack 14.12.2010 - 14:57
fuente

2 respuestas

25
  • Ejecutar solo MySQL en el servidor : si es posible, ejecute solo MySQL en el servidor y elimine cualquier servicio no utilizado.
  • Cortafuegos : limite el acceso por dirección IP solo a los servidores / clientes que requieren acceso.
  • Privilegios de usuario : al crear usuarios, siempre otorgue la cantidad mínima de privilegios y amplíelos según sea necesario. También intente evitar el uso de '%' comodín para los hosts y, en su lugar, limite el host que requiere acceso.
  • Dirección de enlace adecuada : si solo necesita acceso remoto al servidor dentro de la misma red y la máquina tiene una dirección IP externa y una dirección de red interna. Configure MySQL para que solo escuche en la dirección interna.
  • Habilitar registro : habilite el registro si la base de datos no se ocupa de muchas consultas.
  • mysql_secure_installation : use la utilidad mysql_secure_installation que hace varias cosas, incluida la eliminación de cuentas de usuarios anónimos, elimina la base de datos de prueba, etc.
  • Sólo local de acceso a la cuenta raíz : es mejor limitar el acceso de la cuenta raíz solo directamente desde la máquina. Mysql_secure_installation le permite eliminar fácilmente cualquier acceso remoto para cuentas root. Por lo general, luego ssh a la máquina y uso el símbolo del sistema mysql o MySQL Workbench tiene la funcionalidad de hacer un túnel sobre SSH.

Recursos adicionales

respondido por el Mark Davidson 14.12.2010 - 16:13
fuente
7

Supongo que los métodos habituales del sistema operativo (incluido fail2ban si se requiere ssh admin remoto), luego bloquean todos los accesos externos al puerto MySQL, o permiten que se conecte una lista blanca si es absolutamente necesario. Establezca una contraseña para el usuario mysqladmin.

Después de eso, al usuario mysqladmin solo se le debe permitir conectarse desde localhost y debe ser el único usuario con privilegios a través de la tabla 'usuario'; todos los demás usuarios tienen acceso denegado de manera predeterminada (es decir, en la tabla de usuarios), pero se les otorga una información específica subvenciones a bases de datos individuales.

Tenga en cuenta que no debe exponer MySQL directamente en Internet. Si debe tener acceso a datos remotos, use una VPN (por ejemplo, stunnel con verificación del cliente).

    
respondido por el symcbean 14.12.2010 - 15:36
fuente

Lea otras preguntas en las etiquetas