在Ubuntu上对MySQL进行安全审计,可以采取以下几种方法:
使用MariaDB审计插件:
下载并安装MariaDB审计插件:
wget https://downloads.mariadb.org/mariadb/mariadb-10.2.43/linux-systemd-x86_64/getPackage/mariadb-audit-plugin-1.1.11-985-linux-x86_64.zip
unzip mariadb-audit-plugin-1.1.11-985-linux-x86_64.zip
sudo cp server_audit.so /usr/local/mysql/lib/plugin/
sudo chmod 755 /usr/local/mysql/lib/plugin/server_audit.so
在MySQL中加载插件:
INSTALL PLUGIN server_audit SONAME 'server_audit.so';
配置审计参数:
编辑MySQL配置文件(通常是 /etc/mysql/my.cnf
或 /etc/my.cnf
),在 [mysqld]
部分添加以下配置项:
plugin-load audit_log.so
audit_log_format JSON
audit_log_force_plus_permanent 1
重启MySQL服务以使配置生效:
sudo systemctl restart mysql
使用第三方审计插件:
可以考虑使用第三方审计插件,如McAfee的 mysql-audit
插件或Percona的 Percona Server Audit Log
插件,这些插件提供了丰富的审计功能和灵活的配置选项。
Auditd是Linux内核的审计服务,可以用来记录系统事件。
启动并启用Auditd服务:
sudo systemctl start auditd
sudo systemctl enable auditd
配置Auditd规则:
编辑Auditd的配置文件 /etc/audit/auditd.conf
,根据需要添加或修改规则。例如:
audit_log_file /var/log/audit/audit.log
audit_log_format rawaudit_rotate_size 10485760
audit_rotate_count 7
保存并退出编辑器后,重启Auditd服务以应用更改:
sudo systemctl restart auditd
创建自定义审计规则:
创建一个新的文件 /etc/audit/rules.d/audit.rules
,并添加自定义规则。例如:
-a exit,always -F arch=b32 -S execve -S execveat -k executed-process-a
-a exit,always -F arch=b64 -S execve -S execveat -k executed-process-a
保存并退出编辑器后,重新加载Auditd配置以应用新的规则:
sudo auditctl -R /etc/audit/rules.d/audit.rules
监控和查看审计日志: 使用以下命令来监控和查看审计日志:
sudo ausearch -m avc -ts recent
sudo ausearch -m avc -ts recent -i 5
ufw
或其他防火墙工具限制对MySQL端口的访问。通过以上步骤,您可以在Ubuntu上为MySQL设置基本的安全配置,并启用审计功能,从而有效地监控和记录数据库活动,提高数据库环境的安全防护水平。