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. 日志远程备份 → 防止被删除
相关推荐
分布式存储与RustFS4 小时前
给 RustFS 桶加一层内存缓存:用 Alluxio 让热数据少跑一遍网络
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
Oiiouui5 小时前
linux服务器部署Logto后端与对应前端的实现
linux·服务器·前端·后端
ITKEY_5 小时前
用 Emacs Dired 实现 em:退出文件管理器后,让终端自动切换目录
linux·服务器·emacs
wt95275 小时前
VMware 虚拟机磁盘扩容实战文档(Ubuntu 22.04 + LVM)
linux·后端
就像楞次定律5 小时前
【Linux 学习记之二】C++ 构建体系与底层链接机制的深度透视(2)
linux·后端
Decay__6 小时前
22_MySQL 运维自动化平台 —— 部署编排 + 监控 + 巡检 + 告警 + 工单闭环一体化
运维·数据库·sql·mysql·架构
无足鸟ICT6 小时前
【RHCA+】slabtop命令(查看slab缓存)
linux
且从容.6 小时前
Ubuntu 安装 Docker
linux·ubuntu·docker
青梅味猪大肠7 小时前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
迪康coolmu7 小时前
企业U盘管控落地实战:基于迪康端点安全一体化管理系统的移动存储安全实践
运维·人工智能·经验分享·笔记·安全·电脑