为数据库安全第三方会进行渗透测试,为防止恶意暴力破解用户密码,在用户登录时密码连续输入错误一定次数后限定用户的登录。本文通过插件实现当用户连续输入5次错误密码后显示其登录。
连接控制插件
MySQL数据库自带连接控制插件,插件(connection_control.dll)位置位于安装目录相对路径(…\lib\plugin)下。
不清楚MySQL插件库的路径也可通过SQL查询插件库的路径信息;
插件安装
mysql> install plugin CONNECTION_CONTROL soname 'connection_control.dll';
mysql> install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.dll';
登录root用户执行以上命令,并查看插件默认的参数信息,如下图所示:
部分参数说明
只列出部分主要参数说明
更详细参数信息请参看官网:https://dev.mysql.com/doc/refman/5.7/en/connection-control-variables.html
#登陆失败次数限制
connection_control_failed_connections_threshold=5
#限制重试时间,此处为毫秒,注意按需求换算(30分钟)
connection_control_min_connection_delay=1800000
登录测试
本次测试连续输入无此错误密码,提示密码错误,当第六次输入密码回车后,连接就被挂载起来,一直等到3分钟后才进行重试连接,如下图所示:
mysql> UNINSTALL PLUGIN CONNECTION_CONTROL;
mysql> UNINSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
其他插件应用
插件配置参数详细参看:https://dev.mysql.com/doc/refman/5.7/en/connection-control-variables.html
MySQL数据库安全审计功能参看:https://blog.csdn.net/weixin_39699061/article/details/103482490
MySQL数据库密码安全策略参看:https://blog.csdn.net/weixin_39699061/article/details/103513863