Introducción al plugin de control de conexiones en MySQL
En bases de datos MySQL expuestas a redes no confiables, como servidores públicos o entornos multiinquilino, los intentos de acceso no autorizado son frecuentes. Estos incluyen ataques de fuerza bruta, donde se prueban credenciales comunes, y ataques de denegación de servicio (DDoS), que saturan el pool de conexiones y bloquean solicitudes legítimas.
El plugin de control de conexión de MySQL mitiga estos riesgos aplicando un mecanismo de retraso progresivo. Tras un número configurable de intentos fallidos, cada nuevo fallo incrementa exponencialmente el tiempo de espera antes de responder. Esto reduce la eficiencia de los scripts maliciosos, transformando cientos de intentos por segundo en intentos espaciados por segundos o minutos.
Este plugin es esnecial para reforzar la seguridad en entornos vulnerables, ya que requiere configuración mínima y tiene un impacto mínimo en el rendimiento.
Instalación del plugin de control de conexiones
Antes de proceder, verifique que la versión de MySQL sea 5.7.17 o superior y que el archivo del plugin esté disponible. Use la siguiente consulta para confirmar la versión:
SELECT @@version;
El directorio de plugins se determina con:
SHOW VARIABLES LIKE 'plugin_dir';
En este directorio, asegúrese de la existencia del archivo connection_control.so (para sistemas Unix) o connection_control.dll (para Windows).
Configuración y activación
El plugin consta de dos componentes que se instalan por separado. Ejecute los siguientes comandos con privilegios de administrador:
INSTALL PLUGIN conn_ctrl SONAME 'connection_control.so';
INSTALL PLUGIN conn_ctrl_fail_log SONAME 'connection_control.so';
El primer comando carga el motor principal de control, que gestiona los contadores y retrasos. El segundo componente crea un registro de intentos falliods en la tabla connection_control_failed_login_attempts dentro de information_schema, facilitando auditorías y diagnósticos.
Para confirmar la instalación exitosa, liste los plugins instalados:
SHOW PLUGINS;
Busque entradas como conn_ctrl y conn_ctrl_fail_log con estado activo.
Parámetros de configuración básica
Una vez instalado, configure parámetros clave mediante variables del sistema. Por ejemplo, establezca el número máximo de intentos fallidos antes de aplicar retrasos:
SET GLOBAL connection_control_failed_connections_threshold = 3;
Defina el tiempo máximo de retraso en milisegundos:
SET GLOBAL connection_control_max_connection_delay = 60000;
Estos valores pueden ajustarse según el entorno, manteniendo un equilibrio entre seguridad y usabilidad.