近期有个等保安全检测,要求开启mysql审计功能,社区版的mysql不带审计模块,试了下网上找的利用mariadb的插件server_audit.so,没有成功,估计我的mysql8.0 与mariadb的server_audit.so版本不对应。
继续搜索找到一个macfee的mysql-Audit Plugin,一次成功。
具体步骤如下:
一、下载插件:根据自己的mysql版本,下载对应的插件版本
Releases · mcafee/mysql-audit · GitHub
解压得到两个文件:
libaudit_plugin.so
offset-extract.sh
二、安装插件
1、登录mysql数据库查看mysql plugin目录
show variables like 'plugin_dir';
2、将2个插件文件上传至mysql plugin目录并修改权限
chmod a+x libaudit_plugin.so
3、在mysql数据库中执行安装
install plugin audit soname 'libaudit_plugin.so';
4、查看安装结果
show global status like '%audit%';
5、启用插件
set global audit_json_file=1;
6、在mysql数据目录查看mysql-audit.json文件,是不是已经有了日志信息。
cat /usr/local/mysql/data/mysql-audit.json
7、配置mysql配置文件
vim /etc/my.cnf audit_json_file = on plugin-load=AUDIT=libaudit_plugin.so
三、配置插件定制化记录审计日志
chmod +x offset-extract.sh 执行计算偏移量的脚本前需安装此服务; yum -y install gdb 计算偏移量; ./offset-extract.sh /usr/local/mysql/bin/mysqld vim /etc/my.cnf audit_record_cmds='insert,update,delete,drop_db,create_db,alter_db,grant,truncate' audit_offsets=7800, 7848, 3624, 4776, 456, 360, 0, 32, 64, 160, 536, 7964, 4352, 3648, 3656, 3660, 6048, 2072, 8, 7032, 7072, 7056, 13432, 148, 672