it-swarm-es.com

Servidor MySQL Endurecimiento

Siguiendo el tema de endurecimiento ...

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

27
Scott Pack
  • Ejecute solo MySQL en el servidor - Si es posible, ejecute solo MySQL en el servidor y elimine los servicios no utilizados.
  • Firewall - 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íe según sea necesario. También trate de evitar el uso de comodines '%' para los hosts y, en su lugar, limite al Host que requiere acceso.
  • Vincular la dirección de manera apropiada - 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 escuchar solo en la dirección interna.
  • Habilitar registro : habilite el registro si la base de datos no maneja muchas consultas.
  • mysql_secure_installation - Use la utilidad mysql_secure_installation que hace una serie de cosas, incluida la eliminación de cuentas de usuarios anónimos, elimina la base de datos de prueba, etc.
  • Cuenta raíz accesible solo local - Es mejor limitar la cuenta raíz para que solo sea accesible directamente desde la máquina. Mysql_secure_installation le permite eliminar fácilmente cualquier acceso remoto para cuentas root. Por lo general, o bien ssh a la máquina y uso el símbolo del sistema mysql o MySQL Workbench tiene funcionalidad para hacer un túnel sobre SSH.

Recursos adicionales

25
Mark Davidson

Supongo que los métodos habituales del sistema operativo (incluido fail2ban si se requiere un administrador ssh remoto), luego bloquean todo acceso externo 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, el usuario de mysqladmin solo debería poder conectarse desde localhost y debería ser el único usuario al que se le otorguen privilegios a través de la tabla 'user'; a todos los demás usuarios se les denegó el acceso de forma predeterminada (es decir, en la tabla de usuarios) pero se les otorgaron concesiones específicas a individuos bases de datos.

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).

7
symcbean