audit审计
安装audit
参考: https://blog.youkuaiyun.com/u010039418/article/details/85091142
# 检查系统是否安装了audit服务
rpm -aq | grep audit
rpm -ql audit

# rhel
dnf install -y audit
# debian
## audispd-plugins提供了 一些插件和规则
sudo apt install -y auditd audispd-plugins
auditd程序
| auditd程序 | 解释 |
|---|---|
auditctl | 即时控制审计守护进程的行为的工具,比如如添加规则等等 |
aureport | 查看和生成审计报告的工具 |
ausearch | 查找审计事件的工具 |
auditspd | 转发事件通知给其他应用程序,而不是写入到审计日志文件中 |
autrace | 一个用于跟踪进程的命令 |
配置文件
| 配置文件 | 功能作用 |
|---|---|
/etc/audit/auditd.conf | auditd工具的配置文件 |
/etc/audit/rules.d/audit.rules | 包含审核规则的文件 |
/etc/audit/audit.rules | 记录审计规则的文件 |
配置审计服务
审计守护进程可以在/etc/audit/auditd.conf
配置文件中进行配置。此文件包含修改审核守护进程行为的配置参数。任何空行或#后面的文本都将被忽略
默认情况下审计规则是空的
# 查看规则
auditctl -l
# 查看命令帮助
auditctl -h

配置auditd capp 环境
默认auditd配置应该适用于多数环境。但是,如果您的环境必须满足受控访问保护配置文件(CAPP)设置的标准
- 保存审核日志文件的目录(通常为/var/log/audit)驻留在单独的分区上。这可以防止其他进程占用此目录中的空间,并为审计守护进程提供对剩余空间的准确检测
- 该max_log_file参数指定单个审计日志文件的最大大小,必须设置为充分利用保存审计日志文件的分区上的的可用空间
- 该max_log_file_action参数一旦max_log_file达到设置时采取的操作,应设置keep_logs为防止审计日志文件被覆盖
默认情况下审计规则是空的
# 查看规则
auditctl -l
# 查看命令帮助
auditctl -h

定义审计规则
审计系统根据一组审计规则运行,这些规则定义了日志文件中捕获的内容,可以指定三种类型的审计规则
控制规则–允许修改审计系统的行为以及某些配置文件系统规则-也称为文件监视,允许审计对特定文件或目录的访问系统调用规则–允许记录任何指定程序进行的系统调用
可以使用auditctl程序在命令行指定审计规则(请注意,这些规则在重新启动后不会持久),或写入/etc/audit/audit.rules文件
# 创建审计规则文件
touch /etc/audit/rules.d/10-root-commands.rules
配置审计规则内容如下
# 审计规则:针对 64 位架构,监控以 root 身份执行的命令
## -a always,exit: 添加一条审计规则,始终生效并在系统调用退出时触发
## -F arch=b64: 仅适用于 64 位架构
## -S execve: 监控 `execve` 系统调用(用于执行程序)
## -F euid=0: 仅审计有效用户 ID 为 0(即 root 用户)的进程
## -k root-commands: 将审计事件标记为 `root-commands`,便于后续查询
-a always,exit -F arch=b64 -S execve -F euid=0 -k root-commands
# 审计规则:针对 32 位架构,监控以 root 身份执行的命令
## -a always,exit: 添加一条审计规则,始终生效并在系统调用退出时触发
## -F arch=b32: 仅适用于 32 位架构
## -S execve: 监控 `execve` 系统调用(用于执行程序)
## -F euid=0: 仅审计有效用户 ID 为 0(即 root 用户)的进程
## -k root-commands: 将审计事件标记为 `root-commands`,便于后续查询
-a always,exit -F arch=b32 -S execve -F euid=0 -k root-commands
创建一条kill命令的审计规则
# 创建一条审计规则
## 始终记录64位架构上的kill系统调用尝试,无论成功与否,事件都会被标记为 kill_signals
## -a exit,always: auditctl 在每次系统调用退出时总是触发审计事件
## -F arch=b64: 指定要监控的64位系统架构
## -S kill: 指定监控的系统调用类型为 kill
## -k kill_signals: 将事件标记为kill_signals(可以指定为任意字符串)
auditctl -a exit,always -F arch=b64 -S kill -k kill_signals
auditd磁盘空间不足配置
参考:https://blog.youkuaiyun.com/u012085379/article/details/50973245
auditd服务会向/var/log/audit/目录中写入大量审计日志,如果配置不当,值配置为halt,会导致auditd服务在磁盘空间不足时自动触发系统宕机。
auditd配置文件/etc/audit/auditd.conf
修改在磁盘空间不足时,auditd的动作参数space_left_action、admin_space_left_action或disk_full_action的值。
推荐修改为SUSPEND,表示磁盘空间不足时auditd停止写入审计日志。
space_left = 75 space_left_action = SUSPEND admin_space_left = 50 admin_space_left_action = SUSPEND disk_full_action = SUSPEND
使用auditctl应用程序定义审计规则
与审计服务和审计日志文件交互的所有命令都需要root权限。确保以root用户执行这些命令
auditctl命令允许您控制审计系统的基本功能并决定记录哪些事件的规则
定义控制规则
以下是一些允许您修改审计系统行为的控制规则
# -b 设置内核中现有审计缓存区的最大数值
auditctl -b 8192
- -f 该选项允许确定希望内核如何处理关键错误,有0,1,2三个值,0是不输出日志,1位输出printk日志,2会大量输出日志信息。默认值位1
# -f 该选项允许确定希望内核如何处理关键错误
auditctl -f 2
重载规则
# 重载规则
sudo augenrules --load
# 验证规则是否已加载
sudo auditctl -l
审计
# 审计
sudo ausearch -k root-commands
# 只看命令执行记录
sudo ausearch -k root-commands|grep argc
# 查看最近10分钟的
sudo ausearch -k root-commands -ts recent
# 查看今天的
sudo ausearch -k root-commands -ts today
## -i 格式化输出,更易读
sudo ausearch -k root-commands -i
# 向history一样只显示命令
ausearch -k root-commands -i | grep 'proctitle='
1828

被折叠的 条评论
为什么被折叠?



