Linux系统文件完整性检查工具AIDE在生产环境中推送钉钉告警
AIDE(Advanced Intrusion Detection Environment)是一款用于 Linux 系统的文件完整性检查工具,它通过检查数据文件的权限、时间、大小、哈希值等信息来校验数据的完整性,在生产环境中有广泛的应用。
1. 安装方式
目录
1. 安装方式
1.1 Debian/Ubuntu 系统
1.2 RHEL/CentOS 系统
2. 配置 AIDE
3. 初始化数据库
4. 运行检测
5. 查看检查结果
6. 配置钉钉定时告警
6.1 撰写脚本内容
6.2 授予执行权限
6.3 配置定时任务
7. 其他类似工具
7.1 Samhain
7.2 OSSEC
7.3 Tripwire
1.1 Debian/Ubuntu 系统
sudo apt update
sudo apt install aide
1.2 RHEL/CentOS 系统
sudo yum install aide -y
2. 配置 AIDE
- 主配置文件:
/etc/aide.conf
或/etc/aide/aide.conf
- 关键配置项:
# 指定检查目录
/etc /var /usr /opt# 校验属性(建议包含sha256)
file_attributes = size, perms, user, group, mtime, ctime, ftype, sha256# 排除目录(避免误报)
exclude_dirs = /proc /sys /dev /tmp /var/tmp
3. 初始化数据库
sudo aide --init # 生成初始数据库
sudo ln -s /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz # 设为基准库
4. 运行检测
sudo aide --check # 检查系统变化
sudo aide --update # 更新基准库(确认无误报后)
5. 查看检查结果
AIDE 的检查结果默认记录在日志文件中:
cat /var/log/aide/aide.log
6. 配置钉钉定时告警
6.1 撰写脚本内容
cat aide_dingtalk_alert.sh
#!/bin/bash# 配置参数
DINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=你的钉钉机器人token"
AIDE_LOG="/var/log/aide/check_result.log"
TEMP_LOG=$(mktemp)# 执行AIDE检查
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 开始执行AIDE检查" > $TEMP_LOG
aide --check >> $TEMP_LOG 2>&1
echo "[$(date +'%Y-%m-%d %H:%M:%S')] AIDE检查完成" >> $TEMP_LOG# 保存完整日志
cat $TEMP_LOG >> $AIDE_LOG# 检查是否有异常
if grep -q "Changed files" $TEMP_LOG || grep -q "New files" $TEMP_LOG || grep -q "Removed files" $TEMP_LOG; then# 提取关键信息SUMMARY=$(grep -E "Changed files|New files|Removed files" $TEMP_LOG | tr '\n' '; ')# 构造钉钉消息MESSAGE="**AIDE文件完整性检查发现异常**\n\n\时间: $(date +'%Y-%m-%d %H:%M:%S')\n\主机: $(hostname -f)\n\摘要: $SUMMARY\n\详情请查看日志: $AIDE_LOG"# 发送到钉钉curl -s -H "Content-Type: application/json" \-d "{\"msgtype\": \"text\",\"text\": {\"content\": \"$MESSAGE\"}}" \$DINGTALK_WEBHOOK > /dev/null
fi# 清理临时文件
rm -f $TEMP_LOG# 每周日自动更新AIDE数据库(处理正常系统变更)
if [ $(date +%u) -eq 7 ]; thenecho "[$(date +'%Y-%m-%d %H:%M:%S')] 每周更新AIDE数据库" >> $AIDE_LOGmv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
fi
6.2 授予执行权限
chmod +x aide_dingtalk_alert.sh
6.3 配置定时任务
crontab -l
0 5 * * * /path/to/aide_dingtalk_alert.sh
7. 其他类似工具
7.1 Samhain
Samhain 是一款功能强大的跨平台文件完整性检查与入侵检测工具,支持 Linux、Unix、Windows 等系统,尤其在 Linux 环境中被广泛用于安全监控。它不仅能检测文件变更,还整合了日志分析、Rootkit 检测、进程监控等功能,适合中小型到企业级环境的安全防护
7.2 OSSEC
OSSEC 是一款开源的入侵检测系统(IDS),兼具文件完整性检查、日志分析、实时告警等功能,广泛应用于 Linux、Windows、macOS 等多平台的安全监控。它不仅能检测文件篡改,还能监控系统日志、网络活动和异常行为,形成全方位的安全防护体系,尤其适合大规模服务器集群的集中化管理。
7.3 Tripwire
Tripwire 是一款历史悠久且功能强大的文件完整性监控(FIM)工具,广泛应用于企业级 Linux 环境的安全防护。它通过建立文件基准数据库,持续监控文件的哈希值、权限、所有者等属性变化,从而检测未授权修改,是防御恶意入侵和内部滥用的重要工具。