104 lines
3.7 KiB
Markdown
104 lines
3.7 KiB
Markdown
### 如何监控 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 工具能迅速找出被篡改的文件
|