Linux 文件篡改审计(auditctl 实战指南)

Linux 文件篡改审计(auditctl 实战指南)

在服务器安全中,仅仅"禁止修改文件"(例如 chattr +i)是不够的。

更重要的是:

当文件被修改时,能够知道是谁(进程 / 用户)在什么时候改了什么文件。

本文介绍如何使用 Linux 内核审计工具

👉 auditd

实现文件篡改监控。

一、核心命令

基础规则(推荐写法)

auditctl -a always,exit -F arch=b64 -F dir=/demo -F perm=wa -k filewatch

参数说明

-a always,exit → 在系统调用结束时记录日志

-F arch=b64 → 64位系统调用(必须加,否则性能差且可能漏日志)

-F dir=/demo → 监控目录(递归)

-F perm=wa → 监控 写(write) + 属性(attribute)

-k filewatch → 日志标签

二、效果演示

1)创建测试文件

mkdir /demo

echo "hello" > /demo/test.txt

2)修改文件

echo "hack" >> /demo/test.txt

3)查看审计日志

ausearch -k filewatch -i

4)示例输出(精简版)

type=SYSCALL ... syscall=openat ... comm=bash exe=/usr/bin/bash

type=PATH ... name=/demo/test.txt

日志含义

comm=bash → 执行修改的进程

exe=/usr/bin/bash → 程序路径

name=/demo/test.txt → 被修改的文件

如果出现:

O_RDWR|O_CREAT|O_TRUNC

说明:

👉 文件被打开并且清空后重写

三、查看规则

auditctl -l

示例:

-a always,exit -F arch=b64 -F dir=/demo -F perm=wa -F key=filewatch

四、删除规则

删除单条规则(旧写法)

auditctl -W /demo -p wa -k filewatch

清空所有规则(慎用)

auditctl -D

五、进阶用法

1)捕获更多修改行为

auditctl -a always,exit -F arch=b64

-S open,openat,rename,unlink,truncate

-F dir=/demo

-k filewatch_detail

可监控:

文件写入

重命名

删除

覆盖

2)只关注写操作

auditctl -a always,exit -F arch=b64

-S open,openat

-F dir=/demo

-k filewatch_open

重点看 flags:

O_WRONLY

O_RDWR

O_TRUNC

O_CREAT

3)只监控某个进程(推荐)

例如只监控 PHP:

auditctl -a always,exit -F arch=b64

-S open,openat

-F exe=/usr/sbin/php-fpm

-k php_write

六、查看日志(常用命令)

ausearch -k filewatch -i

查看最近:

ausearch -k filewatch -ts recent -i

查看今天:

ausearch -k filewatch -ts today -i

七、性能建议

⚠️ 审计是同步记录,规则不当会影响性能

建议:

❌ 不要监控整个系统

❌ 不要监控高频写目录

✅ 只监控核心代码目录

✅ 使用 key 分类日志

八、安全能力总结

能力 支持

记录谁改文件 ✅

记录进程路径 ✅

记录具体文件 ✅

阻止修改 ❌

九、防篡改最佳实践

  1. chattr +i → 防止关键文件被改
  2. auditd → 记录谁改
  3. AIDE → 定期完整性检测
  4. 日志远程备份 → 防止被删除
相关推荐
MXsoft6186 分钟前
**混合云统一监控实践:私有云+公有云的一体化运维方案**
运维·网络·数据库
2501_912784088 分钟前
Taocarts深度解析:1688自动代采模块的Puppeteer自动化实战
运维·自动化
天南散修11 分钟前
MT7916驱动中802.11转换为802.3
linux·网络·驱动开发·wifi·802.11
MXsoft61812 分钟前
**断网续传与本地缓存:弱网环境下的监控数据保障方案**
运维·缓存·自动化
LT101579744423 分钟前
2026年UI自动化测试平台选型指南:全界面自动化覆盖方案
运维·ui·自动化
CriticalThinking1 小时前
在xshell中使用ssh隧道访问远程服务
linux·网络·ssh
爱装代码的小瓶子1 小时前
安工大题目分类(含解析和翻译)
linux·网络·c
天青色等烟雨..1 小时前
智慧农林核心遥感技术99个案例实践
运维·人工智能·spring boot·后端·自动化
数智化精益手记局1 小时前
拆解复杂项目管理流程:用项目管理流程解决跨部门协作低效难题
大数据·运维·数据库·人工智能·产品运营
Solis程序员2 小时前
长会话状态治理(下):数据更新机制、并发保护与可复用设计原则
运维·服务器