mysql5.7审计功能开启_linux audit审计系统

7adadbe63e6df9bd2c541d7aa7fc813f.png

前言

audit子系统在linux安全领域应用广泛。本文主要介绍linux审计系统原理、安装配置、使用方法,以及内核中syscall 审计源码分析,争取展现一个立体的linux audit。

本文篇幅较长且包含大量源码,对某个方面感兴趣的,建议直接滑动跳至相关章节。

注:本文所有kernel 源码均来自kernel 4.18.0,实验平台是centos8.1

什么是audit?

linux audit子系统是一个用于收集记录系统、内核、用户进程发生的行为事件的一种安全审计系统。该系统可以可靠地收集有关上任何与安全相关(或与安全无关)事件的信息,它可以帮助跟踪在系统上执行过的一些操作。

linux审计系统可以通过提供系统上事件详细信息,来提高系统的安全性。但是它并不能像selinux那样为系统提供额外的安全性包含措施。审核仅需要为user提供系统上发生的event细节,user根据这些信息追踪event并采取相应的其他安全措施。

audit和syslog有本质区别。syslog记录的信息有限,主要目的是软件调试,对于用户的操作行为(如某用户修改删除了某文件)却无法通过这些日志文件来查看。而audit的目的则不同,它是linux安全体系的重要组成部分,是一种“被动”的防御体系。

在内核里有内核审计模块,记录系统中的各种动作和事件,比如系统调用,文件修改,执行的程序,系统登入登出和记录所有系统中所有的事件,它的主要目的是方便管理员根据日记审计系统是否允许有异常,是否有入侵等等,说穿了就是把和系统安全有关的事件记录下来。

audit有什么用?

  • 查看文件访问
  • 监控系统调用
  • 记录用户指令的cmd指令
  • 记录系统安全事件(如入侵行为)
  • 监控网络访问

如何开启audit?

1、首先内核需要打开 CONFIG_AUDIT 、CONFIG_AUDITSYSCAL配置;

2、audit功能默认是关闭的,可以通过cmdline中加上“audit= 1”开启审计日志会被写到/var/log/messages中(auditd守护进程没有运行时);

3、用户空间配置使用audit,首先需要安装audit并配置:

1)安装:sudo yum install audit*.* -y
2)开启audit服务(守护进程auditd):service auditd start
3)查看是否开启:service auditd status(auditctl -s)

开启了autid服务后,所有的审计日志会记录在/var/log/audit/audit.log文件中。

配置audit

audit 安装后会生成 2 个配置文件:

  • /etc/audit/auditd.conf
  • /etc/audit/audit.rules

/etc/audit/auditd.conf 是守护程序的默认配置文件,/etc/audit/audit.rules 是记录审计规则的文件。下面分别看下两个文件格式和配置项。

【1】/etc/audit/auditd.conf

下面是centos8上截取的audit配置文件(部分):

#
# This file controls the configuration of the audit daemon
#
local_events = yes
write_logs = yes
#  设置日志文件
log_file = /var/log/audit/audit.log
log_group = root
log_format = ENRICHED
flush = INCREMENTAL_ASYNC
freq = 50
#  设置日志文件大小,单位是MB
max_log_file = 8
#  日志文件滚动的数目,如果设置为小于 2,则不会循环记录。没设置则位0,不循环日志文件
num_logs = 5
priority_boost = 4
name_format = NONE
##name = mydomain
#  日志文件到达最大值后的动作,ROTATE是滚动记录
max_log_file_action = ROTATE
… …

【2】/etc/audit/audit.rules

audit可以自定义对指定的文件或命令进行审计(如监视rm命令被执行、/etc/passwd文件内容被改变),只要配置好对应规则即可,配置规则可以通过命令行(auditctl 临时生效)或者编辑配置文件(audit.rules)两种方式来实现。下面是centos8上截取的audit规则文件(部分):

## First rule - delete all
-D

## Increase the buffers to survive stress events.
## Make this bigger for busy systems
-b 8192

## This determine how long to wait in burst of events
--backlog_wait_time 60000

## Set failure mode to syslog
-f 1

其实就是把auditctl的命令直接拿过来即可,auditctl里支持的选项都可以在这个文件里指定,后面介绍auditctl命令再细看。

常用audit命令

audit常用命令

auditctl audit系统管理工具,用来获取状态,增加删除监控规则。
ausearch 查询audit log工具
aureport 输出audit系统报告

【1】auditctl

usage: auditctl [options]
    -a <l,a>            Append rule to end of <l>ist with <a>ction
    -A <l,a>            Add rule at beginning of <l>ist with <a>ction
    -b <backlog>        Set max number of outstanding au
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值