MySQL安全部署指南/安装连接控制插件

第九章安装连接控制插件

连接控制插件库使管理员能够引入一个增加延迟服务器响应后连接尝试配置数量的连续失败的尝试。这种能力提供了一种威慑,减缓蛮力攻击MySQL用户帐户。插件库包含两个插件:

  • CONNECTION_CONTROL检查传入的连接尝试,会增加服务器响应时间。这个插件也暴露系统变量,使其操作配置和状态变量提供了基本的监控信息。

  • CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS实现了一个INFORMATION_SCHEMA表公开更详细的监测信息,连接尝试失败。

安装连接控制插件:

  1. 添加下面这些选项(mysqld)选项组在MySQL配置文件(/etc/my.cnf):

    plugin-load-add = connection_control.soconnection-control=FORCE_PLUS_PERMANENT connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT
    • plugin-load-add = connection_control.so

      加载connection_control.so图书馆每一次服务器已启动。

    • connection_control = FORCE_PLUS_PERMANENT

      可以防止服务器没有运行CONNECTION_CONTROL插件,服务器启动失败,如果插件不初始化成功。

    • connection-control-failed-login-attempts = FORCE_PLUS_PERMANENT

      可以防止服务器没有运行CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS插件,服务器启动失败,如果插件不初始化成功。

  2. 验证插件安装,重启服务器并检查INFORMATION_SCHEMA.PLUGINS表或使用显示插件声明:

    $ > systemctl mysqld重启
    cd /usr/local/mysql > > bin /美元mysqladmin - u root - p版本输入密码:(在这里输入root密码)
    mysql >选择PLUGIN_NAME PLUGIN_STATUS INFORMATION_SCHEMA。插件,PLUGIN_NAME像“连接%”;+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + | PLUGIN_NAME | PLUGIN_STATUS | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + | CONNECTION_CONTROL活动| | | CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS活动| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +

配置连接延迟

配置服务器响应失败的连接尝试使用这些服务器延迟参数:

添加下面这些选项(mysqld)选项组在MySQL配置文件(/etc/my.cnf),这样以后你可以调整它们。使用默认值在这个部署。

connection_control_failed_connections_threshold = 3 connection_control_min_connection_delay = 1000 connection_control_max_connection_delay = 2147483647

关于服务器响应延迟配置的更多信息,请参阅连接控制插件安装

监视连接尝试失败

连接尝试失败可以监控使用这些信息来源:

测试连接控制插件并查看监测数据:

  1. 打开一个终端,作为根用户连接到服务器:

    cd /usr/local/mysql > >美元bin / mysql - u root - p输入密码:(此处输入根密码)
  2. 打开另一个终端和执行四个作为根用户连接尝试,每次指定一个不正确的密码。应该有一个小但明显推迟第四连接请求。

    cd /usr/local/mysql > >美元bin / mysql - u root - p输入密码:(在这里输入不正确的密码)
  3. 在第一个终端,这个语句来查看问题Connection_control_delay_generated状态变量的数据。超过的连接尝试connection_control_failed_connections_threshold3计算的阈值。

    mysql >显示状态像“Connection_control_delay_generated”;+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | Variable_name | | +价值- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | Connection_control_delay_generated | 1 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
  4. 在第一个终端,这个语句来查看问题INFORMATION_SCHEMA.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS数据。所有四个连接尝试失败数。

    mysql >从INFORMATION_SCHEMA.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS选择FAILED_ATTEMPTS;+ - - - - - - - - - - - - - - - - - - + | FAILED_ATTEMPTS | + - - - - - - - - - - - - - - - - - - + | 4 | + - - - - - - - - - - - - - - - - - - +

本手册下载
PDF (Ltr)- 217.3 kb
PDF (A4)- 218.1 kb