场景
安全最重要的一步是内部安全,如何监控用户的行为是一个永恒不变的话题。
audit可以详细监控用户的行为,详细到查看或修改了某个文件。这些都可以在日志中查看到。
安装
小贴士:
CentOS默认已经安装
yum -y install audit*
开启audit服务
service auditd start #开启
service auditd stop #关闭
service auditd restart #重启
配置文件
vim /etc/audit/auditd.conf
log_file = /var/log/audit/audit.log #日志保存文件
max_log_file = 6 #单个日志文件最大占用空间(MB)
max_log_file_action = ROTATE #日志文件达到最大空间的动作: ROTATE为将旧日志文件重命名,再新建日志文件继续写入
freq = 20 #每隔20条记录写入日志中(flush = INCREMENTAL时有效)
添加规则
1.临时有效
auditctl -w /bin/rm -p x -k removefile
-w #指定所要监控的文件或命令
-p #监控属性(如x执行)
-k #指定关键词(方便在日志中查询)
-D #清除规则(临时,不会清除配置文件规则)
2.永久生效
小贴士:
/etc/audit/rules.d/audit.rules为规则配置文件
/etc/audit/audit.rules根据/etc/audit/rules.d/audit.rules里的规则自动生成
所以我们编辑/etc/audit/rules.d/audit.rules就好了
vim vim /etc/audit/rules.d/audit.rules
-w /bin/rm -p x -k removefile #添加这一句
service auditd restart #重启服务
查看规则
auditctl -l
查看日志
小贴士:
实验过程中记得把配置文件/etc/audit/auditd.conf中freq设置为1,不然很可能查看不到结果。
方式1-直接查看
cat /var/log/audit/audit.log
例如:运行命令rm -rf /root/123
发现可以详细的看到谁在什么时候对谁干了些什么
字段解释
type=PATH #类型
msg=audit(1558846158.888:141) #时间戳和事件id(同一事件则id相同)
方式2-ausearch
一般查日志的方式很不方便,所以audit给出了非常友好的日志查看命令。
ausearch
-i #显示信息更清晰,比如显示日期而不是时间戳
-k #指定关键词(auditctl -k指定的关键词)
-c commond #只显示与指令相关日志(如-c rm)
例如:运行命令ausearch -i
可以看到不同事件用----分割开;
显示了日期而不是时间戳;
显示了用户名而不是uid。