信息发布→ 登录 注册 退出

Linux安全审计教程_auditd日志监控与异常检测

发布时间:2026-01-03

点击量:
auditd 是 Linux 内核级审计框架,用于记录命令执行、文件访问、权限变更等底层安全事件,支撑 HIDS 与等保/ISO 27001 合规;默认日志存于 /var/log/audit/audit.log,需启用服务、配置规则并结合 ausearch/aureport 或 ELK 分析异常。

auditd 是 Linux 内核提供的核心审计框架,专为记录系统级安全事件而设计。它不依赖应用层日志,能捕获用户执行命令、文件访问、权限变更、系统调用等底层行为,是构建主机入侵检测(HIDS)和满足合规审计(如等保、ISO 27001)的关键组件。

auditd 基础配置与日志路径

auditd 默认随大多数发行版安装(如 RHEL/CentOS、Ubuntu Server),但常处于未启用状态。启动服务并设为开机自启:

  • systemctl enable --now auditd
  • systemctl status auditd 确认运行中

主配置文件为 /etc/audit/audit.conf,规则定义在 /etc/audit/rules.d/ 下的 *.rules 文件中。日志默认存于 /var/log/audit/audit.log,按需可配置轮转(通过 max_log_filenum_logs 控制)。

编写有效审计规则:聚焦高风险行为

规则通过 auditctl 临时添加,或写入 rules 文件持久化。关键原则是“最小必要”——避免全量监控导致性能下降或日志爆炸。

  • 监控敏感目录:例如 -w /etc/passwd -p wa -k identity_change(记录读写+属性修改,打标签 identity_change)
  • 拦截特权命令:如 -a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_exec
  • 跟踪可疑系统调用:比如 -a always,exit -F arch=b64 -S execve -F uid!=1000 -k suspicious_exec(仅记录非普通用户 UID 的进程执行)
  • 规则加载后执行 augenrules --load 或重启 auditd 生效

解析 audit.log 实现异常识别

audit.log 每行是一条结构化事件,含时间戳、类型(SYSCALL、PATH、CWD)、UID、PID、系统调用名、参数、结果(success=1/0)等字段。人工筛查低效,建议结合工具:

  • ausearch -m SYSCALL -ts today -i | grep "execve.*sh" 快速查今日所有 shell 启动
  • aureport -f -i -ts yesterday 汇总昨日文件操作统计
  • 对高频失败登录,过滤 ausearch -m USER_AUTH -sv no -i,再用 awk 统计源 IP 出现次数
  • 生产环境推荐接入 auditd → rsyslog → ELKWazuh,实现可视化告警

实战异常检测场景示例

真正发挥 auditd 价值,在于将日志转化为可响应的安全信号:

  • 横向移动线索:同一用户短时间内在多台机器上触发 execve 调用 sshscp,且目标 IP 非白名单
  • 提权尝试痕迹:setuid 系统调用失败 + 后续立即尝试 execve("/bin/bash")
  • 隐蔽持久化:非 root 用户修改 /etc/cron.d/ 或写入 ~/.bashrc,且该用户无对应管理权限
  • 数据外泄迹象:大文件(>10MB)被 openat 后连续 read,接着出现 connect 到外部 IP 的记录
标签:# elk  # 该用户  # 它不  # 重启  # 专为  # 转化为  # 再用  # 设为  # 则是  # 存于  # linux  # ssh  # 事件  # var  # bash  # 日志监控  # 配置文件  # 工具  # ubuntu  # centos  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!