Files
2025-09-25 03:32:26 +08:00

104 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 如何监控 Linux 文件操
**1. Auditd**
**`Auditd`** 是 Linux 内核提供的、功能最强大且最专业的审计工具。它可以记录几乎所有的系统调用,包括文件读、写、执行等操作,并能根据规则进行过滤。
**优点:**
- **全面而精准**:可以精确地监控指定用户、指定目录或特定系统调用
- **安全性高**:即使系统被入侵,攻击者也很难篡改 `auditd` 的日志
- **可配置性强**:可以通过规则文件(`/etc/audit/audit.rules`)自定义监控策略。
**如何使用:**
1. **安装**:大多数发行版默认已安装。如果没有,可以通过 `yum install audit``apt-get install auditd` 来安装
2. **添加监控规则**
- 监控 `/etc/` 目录下所有文件的写入、修改和权限变更:
```bash
auditctl -w /etc/ -p wa -k etc_changes
```
- 监控所有对 `rm` 命令的调用:
```bash
auditctl -a always,exit -F arch=b64 -S unlink -S unlinkat -k file_deletion
```
3. **查看日志**:日志默认存放在 `/var/log/audit/audit.log`,可以使用 `ausearch` 和 `aureport` 等工具进行查询和分析
**适用场景:**
- **安全审计**:监控关键系统文件和目录,确保符合安全合规要求
- **事后取证**:当发生安全事件时,可以从日志中追踪攻击者的文件操作行为
**2. inotifywait**
`inotify` 是 Linux 内核提供的文件系统事件监控接口,而 **`inotifywait`** 是一个命令行工具,它利用这个接口实时监控文件或目录的事件,比如创建、删除、修改等
**优点:**
- **实时性**:可以实时监控文件系统的变化
- **轻量级**:安装和使用都很简单,对系统资源占用很小
- **精确监控**:可以监控特定的事件类型
**如何使用:**
1. **安装**`yum install inotify-tools` 或 `apt-get install inotify-tools`
2. **开始监控**
- 实时监控 `/tmp` 目录下的创建、删除、移动和写入操作:
```bash
inotifywait -m -r -e create,delete,move,modify /tmp/
```
- `-m`:持续监控
- `-r`:递归监控子目录
- `-e`:指定要监控的事件
**适用场景:**
- **脚本化监控**:可以轻松地集成到 shell 脚本中,当发生特定文件操作时,自动触发报警或执行其他操作
- **快速排查问题**:例如,某个应用程序突然写入了大量日志文件,你可以用 `inotifywait` 来快速定位是哪个文件被修改了
**3. FIM 工具**
**FIM** 工具,如 **Tripwire** 和 **AIDE**Advanced Intrusion Detection Environment),通过定期计算文件的哈希值(如 SHA256),来监控文件的完整性。如果哈希值发生变化,则说明文件被修改
**优点:**
- **强大的事后取证能力**:能够准确地识别出哪些文件在何时被修改
- **防御篡改**:可以检测到攻击者对系统文件、恶意软件的篡改
**如何使用(以 AIDE 为例):**
1. **安装**`yum install aide` 或 `apt-get install aide`
2. **创建基线数据库**:在系统干净时运行,生成文件的哈希值数据库
```bash
aide --init
```
3. **移动数据库**:将生成的 `aide.db.new.gz` 文件改名为 `aide.db.gz` 并移动到安全位置
4. **定期检查**
```bash
aide --check
```
这会与基线数据库进行对比,并报告所有变更
**适用场景:**
- **系统加固**:定期检查关键系统文件(如 `/etc`、`/bin`)是否被非法修改
- **入侵检测**:当怀疑系统被入侵时,FIM 工具能迅速找出被篡改的文件