MYSQL安全加固

设置口令过期时限
alter user 'root'@'%' PASSWORD expire interval 180 day;
增加密码复杂度
-
登录mysql
-
安装插件并配置
-- 检查是否安装 show variables like 'validate_password%'; -- 如果没有安装启用插件 INSTALL PLUGIN validate_password SONAME 'validate_password.so'; -- 查看默认配置 show variables like 'validate_password%';
设置登录失败
-
登录mysql
-
安装插件并配置
-- 启用插件 INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so'; INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so'; -- 验证是否正常 SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'connection%'; -- 查看默认变量 show variables like 'connection_control%'; -- 修改配置 -- 失败5次锁定 SET GLOBAL connection_control_failed_connections_threshold = 5; -- 最多锁10分钟(毫秒) SET GLOBAL connection_control_max_connection_delay = 600000; -- 最少锁10分钟(毫秒) SET GLOBAL connection_control_min_connection_delay = 60000; -- 检测配置 show variables like 'connection_control%';
-
新建测试用户
-
重复输入错误登录密码,然后查看锁定记录
use information_schema; select * from connection_control_failed_login_attempts;
修改默认ROOT账户名称
工具直接修改即可
开启安全审计
- 下载审计插件,GitHub - mcafee/mysql-audit: AUDIT Plugin for MySQL
- 查看插件目录
SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
并复制插件该路径,具体目录根据实际情况而定
docker 复制命令
docker cp ./libaudit_plugin.so xxxxx:/usr/lib64/mysql/plugin
- 登录mysql
- 安装插件
install plugin audit soname 'libaudit_plugin.so';
- 开启审计功能
set global audit_json_file = 1;
- 写入配置
audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate'
audit_json_file=on #保证mysql重启后自动启动插件
plugin-load=AUDIT=libaudit_plugin.so #防止删除了插件,重启后又会加载
audit_json_log_file=/data/logs/mysql/mysql_audit.json #日志路径
audit_offsets=7824, 7872, 3632, 4792, 456, 360, 0, 32, 64, 160, 536, 7988, 4360, 3648, 3656, 3660, 6072, 2072, 8, 7056, 7096, 7080
- 查看配置与审计变量
show global variables like '%audit%';
show global status like '%audit%';
show plugins;
定期备份
- 编写备份脚本
mysqldump -uroot --all-database > backup.sql