入侵检测AIDE(文件目录完整性检查)
在 Linux 系统中,aide
(Advanced Intrusion Detection Environment)是一个用于文件完整性检查的开源工具。它可以帮助系统管理员检测文件系统中的未经授权的更改,例如文件内容、权限、所有者或时间戳的修改。aide
通过创建一个文件系统的基线数据库(类似于指纹),然后定期与当前文件系统状态进行比较,来发现潜在的安全问题或入侵行为。
AIDE
env
- centos7.x
- aide-v0.15.1
一、AIDE 简介
- 全称: Advanced Intrusion Detection Environment
- 功能:
- 创建文件系统快照(数据库),记录文件的属性(如哈希值、权限、修改时间等)。
- 定期检查文件系统,检测与基线数据库的差异。
- 用于入侵检测、合规性检查或系统监控。
- 适用场景:
- 服务器安全监控。
- 检测恶意软件或黑客篡改。
- 满足审计和合规性要求。
- 平台: 适用于大多数 Linux 发行版(如 Ubuntu、Debian、CentOS、Fedora 等)。
二、安装 AIDE
在不同的 Linux 发行版中,安装命令有所不同:
Ubuntu/Debian:
1
2sudo apt update
sudo apt install aideCentOS/RHEL:
1
sudo yum install aide
或(对于较新版本使用 dnf):
1
sudo dnf install aide
Fedora:
1
sudo dnf install aide
安装完成后,可以通过以下命令验证安装:
1 | aide --version |
三、AIDE 配置
aide
的主要配置文件位于 /etc/aide.conf
,可以通过编辑它来自定义检查规则。
配置文件结构:
- 定义需要监控的目录和文件。
- 指定检查哪些属性(如 SHA256 校验和、权限、修改时间等)。
- 示例配置片段:
/bin NORMAL
/etc NORMAL
/var/log LOG
!/var/log/.*.gzNORMAL
: 检查文件的常见属性(如权限、所有者、哈希值)。LOG
: 适用于日志文件,仅记录变化。!
: 排除某些文件或目录。
常用检查规则:
p
: 文件权限i
: inoden
: 硬链接数u
: 用户g
: 组s
: 文件大小sha256
: SHA256 校验和
调整配置:
根据需求编辑/etc/aide.conf
,例如只监控关键系统文件:1
sudo nano /etc/aide.conf
四、AIDE 使用方法
以下是 aide
的基本操作步骤:
1. 初始化数据库
首次使用时,需要创建一个基线数据库:
1 | sudo aide --init |
- 这会生成一个数据库文件,默认位于
/var/lib/aide/aide.db.new.gz
。 - 将其重命名为正式数据库:
1
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
2. 检查文件完整性
使用以下命令比较当前文件系统与基线数据库:
1 | sudo aide --check |
- 如果没有变化,输出会显示正常。
- 如果检测到更改,会列出具体差异,例如:
AIDE found differences between database and filesystem!!
Summary:
Total number of files: 12345
Added files: 2
Removed files: 1
Changed files: 5
3. 更新数据库
如果文件更改是合法的(例如系统更新),可以更新数据库:
1 | sudo aide --update |
- 更新后,将新数据库替换旧数据库:
1
sudo cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
4. 自动化检查
可以通过 cron 任务实现定期检查,例如每天凌晨 2 点运行:
1 | sudo crontab -e |
添加以下内容:
0 2 * * * /usr/bin/aide --check | /usr/bin/mail -s "AIDE Report" [email protected]
五、常见选项
--init
: 初始化数据库。--check
: 检查文件系统与数据库的差异。--update
: 更新数据库(生成新数据库但不覆盖旧的)。--config=/path/to/aide.conf
: 指定自定义配置文件。
六、注意事项
- 性能影响: 检查大量文件可能耗时较长,建议在低负载时运行。
- 安全性: 数据库文件(
/var/lib/aide/aide.db.gz
)应妥善保护,避免被篡改。 - 日志分析: 检查结果可能很详细,建议结合脚本过滤关键信息。
七、示例
假设你想监控 /etc
目录:
- 编辑
/etc/aide.conf
,添加:
/etc NORMAL - 初始化数据库:
1
2sudo aide --init
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz - 修改
/etc/passwd
文件,然后检查:输出会显示1
sudo aide --check
/etc/passwd
的更改。
aide
是一个强大且轻量级的工具,适合需要文件完整性监控的 Linux 环境。通过合理配置和定期检查,它能显著提升系统的安全性。