数据库审计管理,是数据安全规范中不可或缺的一环,通过审计管理我们能够把控、追溯sql执行情况。yearning作为一款开源的数据库审计软件,是我们开发运维工作中经常打交道的一个“伙伴”。
今天来带大家一起来搭建yearning
yearning提供的核心功能就是sql查询和审计。
我们可以通过yearning来创建用户,设置权限,规定哪些用户可以查询哪个库,哪些用户可以修改哪个库,查询、修改操作需要经过那些人的审批后才能执行,执行完成的SQL修改语句可以进行回退,可以监控追溯到哪些人执行了哪些SQL。
以此我们可以搭建一个监控SQL执行的审计平台,也方便的实现数据库权限的分层管理。
下面我们详细来看看yearning的搭建和使用。
1、首先创建一个yearning
数据库
2、下载yearning
这里选择3.1.0版本下载
3、将下载的压缩包上传到服务器上,或者可以通过wget
指令直接在服务器上下载
wget https://github.com/cookieY/Yearning/releases/download/v3.1.0/Yearning-v3.1.0-linux-amd64.zip
如果没有安装wget工具可以通过如下指令安装
yum install wget
4、进入压缩包所在目录,解压压缩包
cd /usr/local/yearning
unzip Yearning-v3.1.0-linux-amd64.zip
5、进入yearning安装路径,修改配置文件
cd Yearning
vim conf.toml
修改内容如下,将数据库地址修改为你自己的
[Mysql]
Db = "Yearning"
Host = "192.168.220.1"
Port = "3306"
Password = "123456"
User = "root"
6、安装Yearning
./Yearning install
7、开启8000端口,如果已经开启或者已关闭防火墙可忽略此步骤
# 查询端口是否开放
firewall-cmd --query-port=8000/tcp
# 开启端口
firewall-cmd --add-port=8000/tcp --permanent
# 开启后重新加载
firewall-cmd --reload
8、启动yearning
./Yearning run
9、访问http://192.168.14.128:8000,这里的ip是你自己服务器ip
输入账号密码,默认登陆账号密码为:admin/Yearning_admin
如图,登陆成功
如果你本身安装了docker,或者你只是想在本机简单搭建一个yearning来玩玩,那么可以尝试用docker来安装yearning
安装指令如下,注意以下调整为你自己的mysql地址和账号密码
docker run -itd \
--name yearning \
--restart unless-stopped \
-p 8000:8000 \
-e MYSQL_ADDR=192.168.0.5:3306 \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=123456 \
-e MYSQL_DB=yearning \
zhangsean/yearning
1、首先设置我们发送消息的邮箱,后续可以通过这个邮箱推送消息给指定的审核人,如果不需要邮件提醒可以跳过,当然也支持钉钉机器人消息提醒
点击邮件测试,我们会在收件邮件中收到一封测试邮件
2、然后在下方的进阶设置
中,我们可以设置环境名称,一般命名为各个mysql服务的名称,同时可以选择开启查询审核,最后不要忘记点击保存
3、在管理
-用户
中新建用户
4、在管理
-流程
中新建流程,用于管理数据库修改或查询
5、添加数据源
6、添加权限组
,相当于角色赋权
7、给用户设置权限
8、我们可以在审核规则
中设置需要限制的条件
9、在自动任务
中可以设置自动审核通过的操作,比如要开放开发环境的数据库修改权限时就可以在这里设置
1、在工单申请中选择需要进行申请的操作,比如查询,选择需要查询的数据库,并且可以选择是否需要导出查询数据
实际操作的时候注意做好权限分配,比如普通开发人员只分配数据库查询权限,开发组长分配DML权限,数据库管理员分配DDL权限
2、如果开启了查询审核,则需要审批人通过之后才能进行查询操作
3、如果想直接跳过查询审核,可以在设置
中关闭查询审核
4、审核通过后,申请人点击工单申请
即可进行查询
5、对于DDL,DML操作也类似,也先提交工单,只是提交的工单中就会书写要执行的SQL语句了
6、最后一级审核人审核通过后就会直接执行了
本期针对数据库审计软件的讲解就到此结束了,多看、多练,亲自实践!