开启mysql审计功能 mysql-audit

近期有个等保安全检测,要求开启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