Mysql-5.7.37安装审计日志插件

小柒博客 MySQL评论1.6K5字数 3042阅读10分8秒阅读模式

一、MySQL AUDIT简介

MySQL AUDIT Plugin是一个MySQL安全审计插件,由McAfee提供,设计强调安全性和审计能力。该插件可用作独立审计解决方案,或配置为数据传送给外部监测工具。支持版本为MySQL (5.1, 5.5, 5.6, 5.7),MariaDB (5.5, 10.0, 10.1) ,Platform (32 or 64 bit)。从Mariadb 10.0版本开始audit插件直接内嵌了,名称为server_audit.so,可以直接加载使用。

安装插件的方式优缺点:

缺点:日志信息比较大,对性能影响大。

优点:记录每个用户的命令执行操作。

环境信息

Mysql版本:5.7.37

下载地址:https://github.com/mcafee/mysql-audit

注:版本并不通用,自行根据Mysql版本下载对应的版本插件

1、下载插件安装包

[root@localhost ~]# wget https://github.com/mcafee-enterprise/mysql-audit/releases/download/v1.1.12/audit-plugin-mysql-5.7-1.1.12-999-linux-x86_64.zip

2、解压

[root@localhost ~]# unzip audit-plugin-mysql-5.7-1.1.12-999-linux-x86_64.zip

3、查看当前Mysql的插件目录

mysql> show global variables like 'plugin_dir';

Mysql-5.7.37安装审计日志插件-图片1

4、拷贝插件到插件目录并授权

[root@localhost ~]# cp audit-plugin-mysql-5.7-1.1.12-999/lib/libaudit_plugin.so /usr/local/mysql/lib/plugin/

[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql/lib/plugin/libaudit_plugin.so

5、安装插件

mysql> INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';

Query OK, 0 rows affected (0.61 sec)

6、开启审计,写入my.cnf配置文件

[root@localhost ~]# vim /etc/my.cnf

添加[mysqld]段以下内容

audit_json_file = on

plugin-load=AUDIT=libaudit_plugin.so

audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate'

audit_json_log_file=/data/mysql/mysql-audit.json

7、重启Mysql服务,验证插件是否配置正确

[root@localhost ~]# /etc/init.d/mysqld restart

Shutting down MySQL... SUCCESS!

Starting MySQL.. SUCCESS!

8、查看安装的插件版本信息

mysql> show plugins;

mysql> show global status like 'AUDIT_version';

Mysql-5.7.37安装审计日志插件-图片2

9、查看插件有哪些可配置参数

mysql> show variables like '%audit%'\G

其中我们需要关注的参数有:

1. audit_json_file

是否开启audit功能。

2. audit_json_log_file

记录文件的路径和名称信息(默认放在mysql数据目录下)。

3. audit_record_cmds

audit记录的命令,默认为记录所有命令。可以设置为任意dml、dcl、ddl的组合。如:audit_record_cmds=select,insert,delete,update。还可以在线设置set global audit_record_cmds=NULL。(表示记录所有命令)

4. audit_record_objs

audit记录操作的对象,默认为记录所有对象,可以用SET GLOBAL audit_record_objs=NULL设置为默认。也可以指定为下面的格式:audit_record_objs=,test.*,mysql.*,information_schema.*。

5. audit_whitelist_users

用户白名单。

10、写入测试数据

mysql> create database test;

Query OK, 1 row affected (0.00 sec)

mysql> use test;

Database changed

mysql> create table Name(id int,info varchar(100));

Query OK, 0 rows affected (0.02 sec)

mysql> insert into Name values(1,'xiaoming');

Query OK, 1 row affected (0.02 sec)

mysql> select * from Name;

+------+----------+

| id | info |

+------+----------+

| 1 | xiaoming |

+------+----------+

1 row in set (0.00 sec)

mysql> insert into Name values(2,'xiaowang');

Query OK, 1 row affected (0.01 sec)

mysql> delete from Name where id=1;

Query OK, 1 row affected (0.01 sec)

mysql> truncate Name;

Query OK, 0 rows affected (0.02 sec)

mysql> drop table Name;

Query OK, 0 rows affected (0.02 sec)

mysql> drop database test;

Query OK, 0 rows affected (0.00 sec)

11、查看审计日志文件

[root@localhost ~]# tail -100f /data/mysql/mysql-audit.json

12、参数配置

参考地址:https://github.com/mcafee/mysql-audit/wiki/Configuration

13、插件卸载

[root@localhost ~]# vim /etc/my.cnf

# 删除前面添加的配置,添加以下配置

audit_uninstall_plugin=1

14、重启Mysql服务

[root@localhost ~]# /etc/init.d/mysqld restart

Shutting down MySQL.. SUCCESS!

Starting MySQL.. SUCCESS!

15、卸载插件

注意:需要执行两次即可卸载

mysql> uninstall plugin AUDIT;

ERROR 1620 (HY000): Uninstall AUDIT plugin must be called again to complete

mysql> uninstall plugin AUDIT;

Query OK, 0 rows affected, 1 warning (0.00 sec)

16、配置my.cnf

# 删除刚才添加的配置audit_uninstall_plugin=1,否则下次重启Mysql报错

若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!

继续阅读
Wechat
微信扫一扫,加我!
weinxin
微信公众号
微信扫一扫,关注我!
weinxin
MySQL最后更新:2024-1-24
小柒博客
  • 本文由 小柒博客 发表于 2022年8月31日15:22:37
  • 声明:本站所有文章,如无特殊说明或标注,本站文章均为原创。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。转载请务必保留本文链接:https://www.yangxingzhen.com/8218.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖动滑块以完成验证