2026-10-20 17:13:37
利用AIDE软件监控Linux系统文件修改的完整流程如下:
一、安装与初始化配置安装AIDE
yum -y install aide # CentOS/RHEL系统# Debian/Ubuntu系统使用:apt-get install aide编辑配置文件
vi /etc/aide/aide.conf关键配置项:
指定监控目录(如/etc/ /var/www/),排除临时目录(如/tmp/ /proc/)。
选择校验算法(如sha512替代默认的md5以提高安全性)。
示例配置片段:
/etc/ CONTENT_EX/var/www/ CONTENT_EX!/tmp/!/proc/初始化数据库
aide -init # 生成初始数据库/var/lib/aide/aide.db.new.gzcd /var/lib/aidemv aide.db.new.gz aide.db.gz # 激活数据库手动检查文件变更
aide --check # 对比当前系统与数据库# 生成报告到指定文件aide --check --report=file:/tmp/aide-report-$(date +%Y%m%d).txt更新数据库(合法变更后)
aide -update # 生成新数据库cd /var/lib/aidemv aide.db.new.gz aide.db.gz # 替换旧数据库创建邮件发送脚本
vi /usr/local/bin/aide_check.sh脚本内容:
#!/bin/bashREPORT_FILE="/tmp/aide-report-$(date +%Y%m%d).txt"EMAIL="admin@example.com,dev-team@example.com"aide --check --report=file:$REPORT_FILE# 过滤仅包含变更的行(排除"Start timestamp"等无关信息)grep -E "^(Added|Removed|Changed):" $REPORT_FILE > /tmp/filtered-report.txtif [ -s /tmp/filtered-report.txt ]; then mail -s "AIDE Alert: File Changes Detected on $(hostname)" $EMAIL < /tmp/filtered-report.txtfi设置定时任务
crontab -e添加以下行(每天凌晨1点执行):
0 1 * * * /bin/bash /usr/local/bin/aide_check.sh初始数据库的时机
必须在系统未被入侵时初始化,否则无法检测早期入侵痕迹。
监控范围优化
重点监控静态文件(如/etc/, /var/www/),避免监控频繁变更的目录(如/var/log/)。
报告过滤逻辑
脚本中grep -E "^(Added|Removed|Changed):"确保仅发送实际变更内容,减少邮件噪音。
数据库安全
限制/var/lib/aide/目录权限:
chmod 600 /var/lib/aide/aide.db.gzchown root:root /var/lib/aide/自定义校验规则在aide.conf中为不同目录设置不同策略:
/etc/ssh/sshd_config sha512+p+u+g+n # 严格监控SSH配置/var/www/html/ CONTENT # 仅监控内容变化集成日志系统将AIDE报告同时发送至Syslog:
aide --check | logger -t AIDE_CHECK通过以上步骤,可实现高效的文件完整性监控,确保及时发现异常变更并通知相关人员。