mysql审计之插件McAfee MySQL Audit Plugin
精选
原创
©著作权归作者所有:来自51CTO博客作者哭泣的馒头的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、概述
官网地址
https://github.com/trellix-enterprise/mysql-audit
下载地址
https://github.com/trellix-enterprise/mysql-audit/releases/tag/v1.1.13
mysql有5.6,5.7,8.0多个版本,注意选择对应版本
对应wiki地址
https://github.com/trellix-enterprise/mysql-audit/wiki
二、具体配置
1、审计插件
将libaudit_plugin.so上传到mysql的basedir下面的lib/plugin目录下
注意权限设置成755,注意用户和mysql服务启动用户一致
#导入插件到配置文件
vi my.cnf
plugin-load=AUDIT=libaudit_plugin.so
#或者,能写配置文件尽量写配置文件,使用命令加载不好卸载
INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';
2、常用参数
show variables like '%audit%';
+---------------------------------+--------------------------------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------------------------------+
| audit_checksum | |
| audit_delay_cmds | |
| audit_delay_ms | 0 |
| audit_json_file | OFF |
| audit_json_file_flush | OFF |
| audit_json_file_sync | 0 |
| audit_json_log_file | mysql-audit.json |
| audit_json_socket | OFF |
| audit_json_socket_name | /tmp/mysql-audit.json.sock |
| audit_offsets | |
| audit_offsets_by_version | ON |
| audit_record_cmds | |
| audit_record_objs | |
| audit_uninstall_plugin | OFF |
| audit_validate_checksum | ON |
| audit_validate_offsets_extended | ON |
| audit_whitelist_users | |
+---------------------------------+--------------------------------------------------+
官网地址参考:
https://github.com/trellix-enterprise/mysql-audit/wiki
2.1、audit_json_log_file
json日志文件名,如果audit_json_file选项启用,将写审计跟踪到该设置的文件,可以设置为绝对路径
2.2、audit_json_file
2.3、audit_json_file_sync
json文件同步周期,如果大于0,将每多少次写后同步到磁盘
2.4、audit_json_file_flush
将刷新日志文件,关闭和重新打开文件,能手动进行轮转日志
2.5、audit_json_socket_name
如果audit_json_socket选项启用,将写审计日志到该unix套接字
2.6、audit_json_socket
2.7、audit_uninstall_plugin
在命令行或配置文件启用或关闭AUDIT uninstall 插件
2.8、audit_validate_checksum
2.9、audit_checksum
在命令行或配置文件启用mysqld校验和确认,当设置audit_offsets
2.10、audit_record_cmds
逗号分隔的标记记录哪些命令到审计日志,如insert、update、delete
2.11、audit_record_objs
逗号分隔的哪些对象记录到审计日志,格式为database.table,支持通配符
2.12、audit_whitelist_users
2.13、audit_header_msg
2.14、audit_password_masking_cmds
逗号分隔的命令,将隐藏密码,如CREATE_USER,GRANT,SET_OPTION,SLAVE_START,CREATE_SERVER,ALTER_SERVER,CHANGE_MASTER,1.0.6引入
2.15、audit_password_masking_regex
使用PCRE正则表达式屏蔽密码,仅仅audit_password_masking_cmds指定的命令,1.0.6引入
2.16、audit_force_record_logins
Force logging: Connect, Quit and Failed Login commands, regardless of the settings in audit_record_cmds
and audit_record_objs variables. ON|OFF. Default value: OFF. Introduced in version 1.0.8.
3、卸载插件
关闭审计
set GLOBAL audit_json_file=off ;
#卸载插件基本上会失败,所以尽量写到配置文件
UNINSTALL PLUGIN AUDIT;
4、试验
1、配置参数
plugin-load=AUDIT=libaudit_plugin.so
audit_json_file=on
audit_json_log_file=/data/mysql/mysql-audit.json
audit_record_cmds=connect,quit #只记录连接和退出
audit_force_record_logins=on
2、记录实验
可以开关控制启动停止
第一次启动,从库连接信息记录进主库审计日志
组从复制,从库不会记录SQL回放
mysql-audit.json删除不会重新创建,set global audit_json_file=off/on,会重新生成,依旧可以使用cat /dev/null > mysql-audit.json清理
可以单独设置日志记录的sql类型