资讯中心

Debian 配置 AIDE 文件完整性检测:基线初始化、变更检查与数据库更新

📅 2026/8/2 12:35:27
Debian 配置 AIDE 文件完整性检测:基线初始化、变更检查与数据库更新
Debian 配置 AIDE 文件完整性检测基线初始化、变更检查与数据库更新1. 服务介绍AIDEAdvanced Intrusion Detection Environment是主机文件完整性检测工具。它会为指定文件和目录建立基线数据库记录权限、属主、大小、时间戳、inode 和哈希值后续扫描时把当前文件系统与基线比较报告新增、删除和修改内容。AIDE 适合监控 Web 目录、系统配置、程序文件和安全关键目录。它不能阻止文件被修改也不能替代杀毒软件或实时入侵防御主要用途是发现未经授权的变化并为排查和审计提供证据。2. 准备运行环境• 操作系统Debian 10/11 或同类 Debian 系统。• 操作账号root或具备sudo权限的管理员。• 软件源APT 仓库可用。• 演示目录/webdata。• AIDE 数据目录/var/lib/aide。开始前确认环境cat /etc/os-release id df -hT / apt-cache policy aide生产环境应在系统确认可信、补丁和业务软件安装完成后建立首次基线。3. 相关知识与注意事项3.1 AIDE 工作流程1. 配置监控路径和属性规则。2. 扫描可信文件系统生成初始数据库。3. 把新数据库启用为正式基线。4. 文件发生变化后执行检查。5. 管理员确认变化是否合法再决定是否更新基线。3.2 常用属性| 属性 | 含义 ||---|---||p| 权限模式 ||i| inode ||n| 硬链接数量 ||u| UID ||g| GID ||s| 文件大小 ||m| mtime内容修改时间 ||c| ctime元数据修改时间 ||md5、sha256| 文件内容哈希 |哈希适合普通文件目录主要检查权限、属主、时间戳和条目变化。规则越多扫描越慢动态目录也越容易产生噪声。3.3 安全注意事项• AIDE 数据库代表可信基线必须限制为root可读写。• 首次基线若在系统已被入侵后生成会把恶意文件当成正常状态。• 更新基线前必须人工审查报告不能发现变化后直接覆盖数据库。• 建议把基线副本和检查报告保存到只读介质或其他主机避免攻击者同时篡改文件和数据库。• 缓存、日志、会话、临时文件等高频变化目录应按需求排除或降低检查属性。4. 实验步骤4.1 安装 AIDE 并准备目录apt update apt install -y aide mkdir -p /webdata install -d -m 0700 -o root -g root /var/lib/aide cp -a /etc/aide/aide.conf /etc/aide/aide.conf.bak查看版本和实际配置位置aide --version dpkg -L aide | grep -E aide.conf|systemd|cron4.2 配置数据库和监控规则编辑/etc/aide/aide.conf。不同 Debian 版本可能通过/etc/aide/aide.conf.d/生成最终配置应以本机软件包结构为准。vi /etc/aide/aide.conf最小实验配置示例databasefile:/var/lib/aide/aide.db database_outfile:/var/lib/aide/aide.db.new database_newfile:/var/lib/aide/aide.db.new gzip_dboutyes WebData pinugsmcsha256 /webdata WebData截图中的规则使用Change名称并组合权限、属主、大小、时间和哈希属性。配置文件中的规则名可以自定义但引用名称必须一致。检查配置能否解析aide --config-check --config/etc/aide/aide.conf若当前版本不支持--config-check可用初始化命令验证配置失败时根据报错行修正。4.3 初始化基线数据库aide --config/etc/aide/aide.conf --init初始化完成后确认新数据库存在再启用为正式基线ls -lh /var/lib/aide/aide.db* mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db chown root:root /var/lib/aide/aide.db chmod 0600 /var/lib/aide/aide.db 部分 Debian 软件包默认生成压缩数据库aide.db.new.gz。遇到该文件时应按配置中的gzip_dbout和软件包脚本使用对应.gz文件不要盲目改名为未压缩数据库。4.4 制造文件变化先确认基线检查无异常再创建文件并修改目录属性aide --config/etc/aide/aide.conf --check touch /webdata/hhhhh echo aide test /webdata/demo.txt chmod 0750 /webdata4.5 执行完整性检查aide --config/etc/aide/aide.conf --check | tee /root/aide-check.txt旧实验把输出重定向到que文件后再查看less /root/aide-check.txt报告应显示新增文件、目录属性变化和属性明细。4.6 审核后更新基线只有确认本次变化合法时才更新aide --config/etc/aide/aide.conf --update ls -lh /var/lib/aide/aide.db* mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db chmod 0600 /var/lib/aide/aide.db aide --config/etc/aide/aide.conf --check最后一次检查应不再报告已接受的变化。若生成的是.gz数据库使用对应.db.new.gz和.db.gz文件名。5. 验证结果5.1 配置与数据库检查grep -Ev ^\s*(#|$) /etc/aide/aide.conf ls -l /var/lib/aide/aide.db* stat /var/lib/aide/aide.db aide --version5.2 变更检测检查aide --config/etc/aide/aide.conf --check grep -E Added entries|Removed entries|Changed entries|/webdata /root/aide-check.txt配置成功应满足数据库文件存在且仅root可写未修改时检查无差异创建、删除或修改/webdata内容后报告能准确显示对应路径和变化属性。5.3 定时任务检查systemctl list-timers --all | grep -i aide systemctl status dailyaidecheck.timer --no-pager grep -R aide /etc/cron.daily /etc/cron.d 2/dev/nullDebian 版本不同可能使用 systemd timer 或 cron。以软件包实际安装文件为准不要重复配置两个每日任务。6. 常见问题与排错6.1 提示数据库不存在grep ^database /etc/aide/aide.conf ls -lah /var/lib/aide确认初始化已完成并检查配置期待.db还是.db.gz。6.2 检查结果噪声过多动态目录不适合使用完整哈希规则。先确认业务特征再在规则中排除缓存、临时文件或频繁变化的日志不要为了消除告警直接排除整个关键目录。6.3 初始化或检查速度慢du -sh /webdata find /webdata -xdev -type f | wc -l time aide --config/etc/aide/aide.conf --check减少不必要的监控路径避免跨入大型挂载点哈希计算量与文件数量和总容量直接相关。6.4 回退实验rm -f /webdata/hhhhh /webdata/demo.txt chmod 0755 /webdata cp -a /etc/aide/aide.conf.bak /etc/aide/aide.conf保留旧基线和报告用于审计。不要在未确认变化来源时删除数据库或覆盖基线。