mysql 安全插件
-密码复杂度和登录失败处理
1,背景
应等保三级安全要求,现需要对生产环境MySQL数据库进行插件安装,以满足密码复杂度和登录失败处理的安全要求
(1)设置口令位数至少为8位,至少一位大小写字母,一位数字,一位特殊字符
(2)设置当密码错误超过一定次数后(建议3次或5次),自动锁定账户(建议30分钟以上)
2,密码复杂度插件
(1)安装插件
mysql> install plugin validate_password soname 'validate_password.so';
Query OK, 0 rows affected (1.00 sec)
更改my.cnf文件
[mysqld]plugin-load-add=validate_password.so
#服务器在启动时加载插件,并防止在服务器运行时删除插件。
validate-password=FORCE_PLUS_PERMANENT
(2)卸载插件
mysql> uninstall plugin validate_password;
Query OK, 0 rows affected (0.09 sec)
(3)查看插件安装状态
mysql> show plugins;
(4)变量参数查看
mysql> show global variables like '%validate_password%';
参数定义:
validate_password_check_user_name :设置为ON的时候表示能将密码设置成当前用户名。
validate_password_dictionary_file :validate_password用于检查密码的字典文件的路径名。
validate_password_length :validate_password所需密码的最小字符数。
validate_password_mixed_case_count :如果密码策略是中等或更强的,validate_password要求密码具有的小写和大写字符的最小数量。对于给定的这个值密码必须有那么多小写字符和那么多大写字符。
validate_password_number_count :如果密码策略是中等或更强的,validate_password要求密码具有的数字(数字)字符的最小数量。
validate_password_policy : validate_password强制执行的密码策略,validate_password_policy影响validate_password如何使用它的其他策略设置系统变量,除了根据用户名检查密码之外,后者由validate_password_check_user_name独立控制。
validate_password_policy值可以使用数值0、1、2或相应的符号值LOW、MEDIUM、STRONG来指定。下表描述了为每个策略执行的测试。对于长度测试,所需的长度是validate_password_length系统变量的值。类似地,其他测试所需的值由其他validate_password_xxx变量提供。
(5)结果验证
mysql> create user cow identified by '12345678';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> create user cow identified by 'A12345678';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> create user cow identified by 'Aa1234567';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> create user cow identified by 'Aa#12345678';
Query OK, 0 rows affected (0.17 sec)
3,登录失败处理插件
(1)安装插件
mysql> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';
Query OK, 0 rows affected (0.09 sec)mysql> INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
Query OK, 0 rows affected (0.01 sec)
配置文件my.cnf
[mysqld]
plugin-load-add=connection_control.so
connection-control=FORCE_PLUS_PERMANENT
connection-control-failed-login-attempts=FORCE_PLUS_PERMANENT
connection_control_failed_connections_threshold=5
connection_control_max_connection_delay=2147483647
connection_control_min_connection_delay=1500
(2)验证
mysql> show plugins;
或者
select PLUGIN_NAME, PLUGIN_STATUS from INFORMATION_SCHEMA.PLUGINS where PLUGIN_NAME like 'connection%';
(3)变量参数查看
show variables like "connection_control%";
参数含义:
connection_control_failed_connections_threshold:单个用户登录失败(由于密码错误引起)次数上限,默认3次
connection_control_max_connection_delay:失败上限之后再次尝试登录前最小等待时间,单位ms
connection_control_min_connection_delay:失败上限之后再次尝试登录前最小等待时间,默认1秒(1000ms)
上述3个参数均可以利用 set global 的方式在线修改。
(4)结果验证
[root@localhost ~]# mysql -uroot -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)mysql> show global status like "%conn%control%";
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| Connection_control_delay_generated | 2 |
+------------------------------------+-------+
1 row in set (0.02 sec)
Connection_control_delay_generated :尝试3次错误输入密码后,在第4次登录时会delay 1秒(由connection_control_min_connection_delay指定),同时Connection_control_delay_generated计数+1(若登录密码继续输入错误,则delay秒数与计数器继续增加。直到成功登录为止之后,此时delay清零,但计数器不清零。需要注意的是,即使后续密码正确,依然要先延迟一定的秒数,才会进入账号校验流程)
mysql> select * from information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
+--------------------+-----------------+
| USERHOST | FAILED_ATTEMPTS |
+--------------------+-----------------+
| 'root'@'localhost' | 4 |
+--------------------+-----------------+
4,生产问题处理
生产环境mysql最大连接数用满,本地也无法登录,这里采用gdb修改最大连接数gdb -p 2075 -ex "set max_connections=1500" -batch
通过show processlist ,发现大量状态为“Waiting in connection_control plugin”的等待连接。
由于问题连接过多,逐个kill掉显然不太现实。
故障模拟脚本:
[root@localhost scripts]# cat tt.sh #!/bin/bash
for i in {1..254};doip="172.20.202.$i"#ping -c 2 $ip &> /dev/null && echo $ip is up &mysql -uroot -p123 -hlocalhost -e "select now()" &sleep 1
done
wait
使用pt-kill工具
pt-kill --user=root --password=123456 -hlocalhost --no-version-check --match-command Connect --match-state "Waiting in connection_control plugin" --victims all --interval 2 --print --kill
批量拼接 kill 语句
select concat('KILL ',id,';') from information_schema.processlist where Command='Connect' and STATE='Waiting in connection_control plugin';
原文链接:https://blog.csdn.net/weihaodong0557/article/details/113805838
mysql 安全插件相关推荐
- MySQL HandlerSocket插件 资料
2019独角兽企业重金招聘Python工程师标准>>> HandlerSocket的优势和缺陷阐述 下一站:HandlerSocket! MySQL HandlerSocket 插件 ...
- mysql审计插件安装_MySQL审计插件安装使用说明文档--升级版
目的 基于之前设计开发的MySQL审计插件,以及<MySQL审计插件安装使用说明文档>的内容介绍,对完善后的mysql审计插件进行补充和说明.主要对新增内容进行详细说明,进一步完善审计插件 ...
- Mysql的插件下载流程
Mysql的插件下载流程 转载地址:https://www.cnblogs.com/it-mh/p/11205866.html 官网地址:官网地址:http://dev.mysql.com/downl ...
- 技术分享 | 一款功能全面的 MySQL Shell 插件
作者:杨涛涛 资深数据库专家,专研 MySQL 十余年.擅长 MySQL.PostgreSQL.MongoDB 等开源数据库相关的备份恢复.SQL 调优.监控运维.高可用架构设计等.目前任职于爱可生, ...
- mysql 审计插件_MySQL审计插件使用
下载MySQL审计插件 https://github.com/mcafee/mysql-audit/releases or 本文使用mcafee官网下载链接的软件: https://dl.bintra ...
- mysql innodb插件_mysql安装innodb插件
1.可以用 show engines;或者show plugins;来查看 mysql>show plugins;+----------------------------+--------+- ...
- mysql 图形插件_对我来说数据库图形化管理工具用这个足够了
1. 前言 胖哥是一个有软件洁癖的人,能用现有的软件解决问题的绝不安装新的软件.Java后端开发主要跟数据库打交道,所以数据库图形化界面(GUI)是少不了的.通常图形化操作关系型数据库(RMDBS)大 ...
- es mysql 同步插件_[es和数据库怎么同步]mysql与elasticsearch实时同步常用插件及优缺点对比(ES与关系型数据库同步)...
目前mysql与elasticsearch常用的同步机制大多是基于插件实现的,常用的插件包括:elasticsearch-jdbc,elasticsearch-river-MySQL,go-mysql ...
- mysql 卸载插件_MySQL 插件安装或卸载(window validate_password 为例)
查看插件: mysql> show plugins; mysql> select plugin_name,plugin_status,plugin_type,load_option,plu ...
- mysql分页插件springboot_SpringBoot--使用Mybatis分页插件
1.导入分页插件包和jpa包 org.springframework.boot spring-boot-starter-data-jpa com.github.pagehelper pagehelpe ...
最新文章
- 关系数据库标准语言 SQL (ch.3)
- 网络营销外包浅析B站破圈运营是如何增强网络营销能力的?
- windows 程序员电脑设置
- day36 03-Hibernate检索方式:排序、参数绑定、投影查询
- SAP Customer Experience Extensibility gold rule
- 热门话题“看第一学历招人公平吗?”数据告诉你,网友们都是如何想的
- 管理感悟:忙的真正含义是没心思
- Haroopad--最好用的markdown编辑器
- FPGA学习记录(7)<巴特沃斯低通IIR滤波器FPGA实现>
- linux磁盘刻录ISO工具,技术|Ubuntu下的三个好用的CD/DVD刻录工具
- Direct2D 介绍
- 【LeetCode LCP 3】机器人大冒险
- C#串口开发案例:迈瑞血球分析仪
- ae字体预设下载_AE超强文字预设包(附插件和教程)Videohive 2D Text Preset Pack for Animation Composer Plug-in...
- 【LearnOpenGL】-PBR材质
- 使用TimerOne库
- 判断图片是否为现场照片(Live Photo亦即内含Exif信息)
- 谷歌中阻止冒泡在火狐中失效_如何在Google表格中乘数字
- EasyRecovery15万能数据恢复软件全面详细功能讲解
- oracle 10g 新特性中文笔记(第五章)