当前位置: 首页 > news >正文

audit审计

audit审计

    • 安装audit
    • 配置审计服务
      • 配置auditd capp 环境
      • 定义审计规则
        • 使用auditctl应用程序定义审计规则
        • 定义控制规则
      • 重载规则
    • 审计

安装audit

参考: https://blog.csdn.net/u010039418/article/details/85091142

# rhel
dnf install -y audit# debian
## audispd-plugins提供了 一些插件和规则
sudo apt install -y auditd audispd-plugins

配置审计服务

审计守护进程可以在/etc/audit/auditd.conf

配置文件中进行配置。此文件包含修改审核守护进程行为的配置参数。任何空行或#后面的文本都将被忽略


配置auditd capp 环境

默认auditd配置应该适用于多数环境。但是,如果您的环境必须满足受控访问保护配置文件(CAPP)设置的标准

  • 保存审核日志文件的目录(通常为/var/log/audit)驻留在单独的分区上。这可以防止其他进程占用此目录中的空间,并为审计守护进程提供对剩余空间的准确检测
  • max_log_file参数指定单个审计日志文件的最大大小,必须设置为充分利用保存审计日志文件的分区上的的可用空间
  • max_log_file_action参数一旦max_log_file达到设置时采取的操作,应设置keep_logs为防止审计日志文件被覆盖

定义审计规则

审计系统根据一组审计规则运行,这些规则定义了日志文件中捕获的内容,可以指定三种类型的审计规则

  1. 控制规则–允许修改审计系统的行为以及某些配置
  2. 文件系统规则-也称为文件监视,允许审计对特定文件或目录的访问
  3. 系统调用规则–允许记录任何指定程序进行的系统调用

可以使用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

使用auditctl应用程序定义审计规则

与审计服务和审计日志文件交互的所有命令都需要root权限。确保以root用户执行这些命令

auditctl命令允许您控制审计系统的基本功能并决定记录哪些事件的规则


定义控制规则

以下是一些允许您修改审计系统行为的控制规则

  • -b 设置内核中现有审计缓存区的最大数值
auditctl -b 8192
  • -f 该选项允许确定希望内核如何处理关键错误,有0,1,2三个值,0是不输出日志,1位输出printk日志,2会大量输出日志信息。默认值位1
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='
http://www.dtcms.com/a/151067.html

相关文章:

  • 蓝桥杯17. 机器人塔
  • 机器人雅克比Jacobian矩阵程序
  • leetcode-排序
  • 【鸿蒙HarmonyOS】深入理解router与Navigation
  • 从边缘到云端,如何通过时序数据库 TDengine 实现数据的全局洞
  • C语言五子棋项目
  • 【PostgreSQL教程】PostgreSQL 特别篇之 语言接口连接Perl
  • 体积小巧的 Word 转 PDF 批量工具
  • VMware中CentOS 7虚拟机设置固定IP(NAT模式)完整教程
  • HarmonyOS 是 Android 套壳嘛?
  • ubantu18.04(Hadoop3.1.3)Hive3.1.2安装指南
  • C++算法(15):INT_MIN/INT_MAX使用指南与替代方案
  • 网络原理 - 6
  • ActiveMQ 核心概念与消息模型详解(一)
  • 数据结构的学习(1)二分查找,利用二分查找找局部最小值,选择排序,冒泡排序,插入排序,位运算的基础知识
  • Java虚拟机面试题:JVM调优
  • Vue3 小功能记录:密码的显示与隐藏功能
  • 实时数仓体系概览与架构演进
  • LeetCode-47. 全排列 II
  • Kafka集群
  • Flutter 学习之旅 之 flutter 使用 【验证码】输入组件的简单封装
  • 如何安装Visio(win10)
  • 【阿里云大模型高级工程师ACP习题集】2.3 优化提示词改善答疑机器人回答质量
  • python实战项目64:selenium采集软科中国大学排名数据
  • Alertmanager的安装和详细使用步骤总结
  • 【Java面试笔记:基础】12.Java有几种文件拷贝方式?哪一种最高效?
  • JAVA程序获取SVN提交记录
  • SPSS ANOVA分析test
  • 云原生--CNCF-2-五层生态结构(成熟度3层分类,云原生生态5层结构)
  • 18487.1-2015-解读笔记之四-交流充电之流程分析