美国服务器入侵检测入门:使用AIDE进行文件完整性监控
1.1 什么是文件完整性监控?
美国服务器文件完整性监控通过创建系统文件的"指纹"数据库,定期比对当前文件状态与基准数据库的差异,从而检测:
文件内容篡改
权限变更
属主变更
文件增删
敏感配置修改
1.2 AIDE工作流程
text
初始化阶段 → 创建基准数据库 → 定期检查 → 生成差异报告 → 安全响应 ↓ ↓ ↓ ↓ ↓ 配置规则 记录文件特征 比对当前状态 识别异常变更 修复和告警
1.3 AIDE检测能力
文件属性:权限、属主、属组、大小、时间戳
哈希值:MD5、SHA1、SHA256等多种哈希算法
扩展属性:SELinux上下文、ACL权限
特殊文件:设备文件、符号链接、目录
二、AIDE安装与初始化配置
2.1 安装AIDE
Ubuntu/Debian系统:
bash
sudo apt updatesudo apt install aide aide-common
CentOS/RHEL系统:
bash
sudo yum install aide# 或者sudo dnf install aide
验证安装:
bash
aide -vwhich aide
2.2 初始配置文件解析
AIDE主配置文件:/etc/aide/aide.conf
bash
# 查看默认配置cat /etc/aide/aide.conf | grep -v '^#|^$'
关键配置段说明:
bash
# 定义规则宏@@define DBDIR /var/lib/aide # 数据库目录@@define LOGDIR /var/log/aide # 日志目录# 规则定义 - 定义检测规则组合CONTENT = sha256+sha512+rmd160+haval+tiger+whirlpool PERMS = p+u+g+acl+selinux+xattrs STATIC = p+u+g+acl+selinux+xattrs+i+n+l+bsize+size+links+link_name+mtime+ctime+atime DATAONLY = p+u+g+n+acl+selinux+xattrs+bsize+size+links+link_name+mtime+ctime+atime+CONTENT
2.3 自定义配置文件
创建自定义配置:
bash
sudo cp /etc/aide/aide.conf /etc/aide/aide.conf.customsudo nano /etc/aide/aide.conf.custom
完整的自定义配置示例:
bash
# AIDE自定义配置文件@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide# 数据库设置database=file:@@{DBDIR}/aide.db.gzdatabase_out=file:@@{DBDIR}/aide.db.new.gzgzip_dbout=yes# 报告设置report_url=file:@@{LOGDIR}/aide.logreport_url=stdout# 规则定义CONTENT_EX = sha256+sha512+rmd160
PERMS = p+u+g+acl+selinux+xattrs
ATTRIBUTES = p+u+g+acl+selinux+xattrs+i+n+l+bsize+size+links+link_name
TIMESTAMP = mtime+ctime+atime
LOG = p+u+g+n+acl+selinux+xattrs+CONTENT_EX
FULL = PERMS+ATTRIBUTES+TIMESTAMP+CONTENT_EX# 定义监控路径和规则# 系统关键目录 - 完全监控/bin FULL
/boot FULL
/etc FULL
/lib FULL
/lib64 FULL
/opt FULL
/sbin FULL
/usr FULL
/var FULL# 排除目录!/proc!/sys!/tmp!/var/tmp!/var/run!/var/cache!/var/log!/home/*/.cache!/home/*/.local/share/Trash# 特定文件监控/etc/passwd FULL
/etc/group FULL
/etc/shadow FULL
/etc/gshadow FULL
/etc/sudoers FULL
/etc/ssh/sshd_config FULL# Web目录监控/var/www/html CONTENT_EX+PERMS
/opt/webapps CONTENT_EX+PERMS# 数据库文件(内容不监控,只监控属性)/var/lib/mysql PERMS+ATTRIBUTES+TIMESTAMP# 日志文件(不监控内容增长)/var/log PERMS+ATTRIBUTES# 自定义应用/opt/myapp/bin FULL
/opt/myapp/config PERMS+ATTRIBUTES+CONTENT_EX三、AIDE数据库初始化与管理
3.1 初始化基准数据库
首次初始化:
bash
# 使用自定义配置初始化sudo aide -c /etc/aide/aide.conf.custom --init# 或者使用默认配置sudo aide --init# 输出示例:AIDE, version 0.16. AIDE database at /var/lib/aide/aide.db.new.gz initialized.
设置基准数据库:
bash
# 将新生成的数据库设置为基准sudo cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz# 验证数据库sudo aide -c /etc/aide/aide.conf.custom --check
3.2 数据库更新流程
当系统发生合法变更时,需要更新基准数据库:
bash
#!/bin/bash# aide-update.sh - 安全的数据库更新脚本CONFIG_FILE="/etc/aide/aide.conf.custom"BACKUP_DIR="/var/backup/aide"DATE=$(date +%Y%m%d_%H%M%S)echo "开始AIDE数据库更新流程..."echo "时间: $(date)"echo ""# 创建备份echo "1. 备份当前数据库..."mkdir -p "$BACKUP_DIR"cp "/var/lib/aide/aide.db.gz" "$BACKUP_DIR/aide.db.gz.$DATE"echo "备份完成: $BACKUP_DIR/aide.db.gz.$DATE"echo ""# 检查当前状态echo "2. 检查当前文件变更..."sudo aide -c "$CONFIG_FILE" --check > "/tmp/aide-check-$DATE.log" 2>&1if [ $? -eq 0 ]; then echo "✅ 无异常变更,可以安全更新"else echo "⚠️ 检测到变更,请审查日志: /tmp/aide-check-$DATE.log" echo "变更摘要:" grep -E "(added|changed|removed)" "/tmp/aide-check-$DATE.log" | head -10 echo "" read -p "是否继续更新数据库?(y/N): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "❌ 用户取消更新" exit 1 fifi# 更新数据库echo "3. 生成新数据库..."sudo aide -c "$CONFIG_FILE" --updateif [ $? -eq 0 ]; then echo "✅ 新数据库生成成功" # 替换基准数据库 sudo cp "/var/lib/aide/aide.db.new.gz" "/var/lib/aide/aide.db.gz" echo "✅ 基准数据库已更新" # 清理临时文件 sudo rm -f "/var/lib/aide/aide.db.new.gz" echo "✅ 临时文件已清理"else echo "❌ 数据库更新失败" exit 1fiecho ""echo "AIDE数据库更新完成"
3.3 数据库验证与维护
验证数据库完整性:
bash
#!/bin/bash# aide-validate.shecho "=== AIDE数据库验证 ==="echo "时间: $(date)"echo ""# 检查数据库文件DB_FILE="/var/lib/aide/aide.db.gz"if [ ! -f "$DB_FILE" ]; then echo "❌ 数据库文件不存在: $DB_FILE" exit 1fiecho "✅ 数据库文件存在: $DB_FILE"echo "文件大小: $(du -h "$DB_FILE" | cut -f1)"echo "修改时间: $(stat -c %y "$DB_FILE")"echo ""# 测试数据库读取echo "测试数据库读取..."sudo aide --config-checkif [ $? -eq 0 ]; then echo "✅ 数据库配置检查通过"else echo "❌ 数据库配置检查失败" exit 1fi# 快速检查echo ""echo "执行快速检查..."sudo aide --checkif [ $? -eq 0 ]; then echo "✅ 快速检查通过 - 无异常变更"else echo "⚠️ 快速检查发现变更,请查看详细报告"fi
四、AIDE监控与检查操作
4.1 手动执行完整性检查
基础检查命令:
bash
# 使用默认配置检查sudo aide --check# 使用自定义配置检查sudo aide -c /etc/aide/aide.conf.custom --check# 详细输出检查sudo aide --check --verbose
解析检查报告:
bash
#!/bin/bash# aide-report-analyzer.shREPORT_FILE="/tmp/aide-report-$(date +%Y%m%d).log"echo "开始AIDE完整性检查..."sudo aide --check > "$REPORT_FILE" 2>&1case $? in
0)
echo "✅ 检查完成 - 无异常变更"
;;
1)
echo "⚠️ 检查完成 - 发现配置错误"
;;
2)
echo "
关键词:

扫码关注
微信好友
关注抖音