如何监控 Linux 文件操

1. Auditd

Auditd 是 Linux 内核提供的、功能最强大且最专业的审计工具。它可以记录几乎所有的系统调用,包括文件读、写、执行等操作,并能根据规则进行过滤。

优点:

  • 全面而精准:可以精确地监控指定用户、指定目录或特定系统调用
  • 安全性高:即使系统被入侵,攻击者也很难篡改 auditd 的日志
  • 可配置性强:可以通过规则文件(/etc/audit/audit.rules)自定义监控策略。

如何使用:

  1. 安装:大多数发行版默认已安装。如果没有,可以通过 yum install auditapt-get install auditd 来安装

  2. 添加监控规则

    • 监控 /etc/ 目录下所有文件的写入、修改和权限变更:

      auditctl -w /etc/ -p wa -k etc_changes
      
    • 监控所有对 rm 命令的调用:

      auditctl -a always,exit -F arch=b64 -S unlink -S unlinkat -k file_deletion
      
  3. 查看日志:日志默认存放在 /var/log/audit/audit.log,可以使用 ausearchaureport 等工具进行查询和分析

适用场景:

  • 安全审计:监控关键系统文件和目录,确保符合安全合规要求
  • 事后取证:当发生安全事件时,可以从日志中追踪攻击者的文件操作行为

2. inotifywait

inotify 是 Linux 内核提供的文件系统事件监控接口,而 inotifywait 是一个命令行工具,它利用这个接口实时监控文件或目录的事件,比如创建、删除、修改等

优点:

  • 实时性:可以实时监控文件系统的变化
  • 轻量级:安装和使用都很简单,对系统资源占用很小
  • 精确监控:可以监控特定的事件类型

如何使用:

  1. 安装yum install inotify-toolsapt-get install inotify-tools

  2. 开始监控

    • 实时监控 /tmp 目录下的创建、删除、移动和写入操作:

      inotifywait -m -r -e create,delete,move,modify /tmp/
      
    • -m:持续监控

    • -r:递归监控子目录

    • -e:指定要监控的事件

适用场景:

  • 脚本化监控:可以轻松地集成到 shell 脚本中,当发生特定文件操作时,自动触发报警或执行其他操作
  • 快速排查问题:例如,某个应用程序突然写入了大量日志文件,你可以用 inotifywait 来快速定位是哪个文件被修改了

3. FIM 工具

FIM 工具,如 TripwireAIDE(Advanced Intrusion Detection Environment),通过定期计算文件的哈希值(如 SHA256),来监控文件的完整性。如果哈希值发生变化,则说明文件被修改

优点:

  • 强大的事后取证能力:能够准确地识别出哪些文件在何时被修改
  • 防御篡改:可以检测到攻击者对系统文件、恶意软件的篡改

如何使用(以 AIDE 为例):

  1. 安装yum install aideapt-get install aide

  2. 创建基线数据库:在系统干净时运行,生成文件的哈希值数据库

    aide --init
    
  3. 移动数据库:将生成的 aide.db.new.gz 文件改名为 aide.db.gz 并移动到安全位置

  4. 定期检查

    aide --check
    

    这会与基线数据库进行对比,并报告所有变更

适用场景:

  • 系统加固:定期检查关键系统文件(如 /etc/bin)是否被非法修改
  • 入侵检测:当怀疑系统被入侵时,FIM 工具能迅速找出被篡改的文件
Copyright © 版权信息 all right reserved,powered by Gitbook该文件修订时间: 2025-09-25 03:13:25

results matching ""

    No results matching ""