AIDE(Advanced Intrusion Detection Environment)在linux下"一切皆是文件"这是一款针对文件和目录进行完整性对比检查的程序
这款工具年纪也不小了,相对来同类工具Tripwire说,它的操作也更加简单。它需要对系统做快照,记录下HASH值,修改时间,以及管理员对文件做的预处理。这个快照可以让管理员建立一个数据库,然后存储到外部设备进行保管。 当管理员想要对系统进行一个完整性检测时,管理员会将之前构建的数据库放置一个当前系统可访问的区域,然后用AIDE将当前系统的状态和数据库进行对比,最后将检测到的当前系统的变更情况报告给管理员。另外,AIDE可以配置为定时运行,利用cron等日程调度技术,每日对系统进行检测报告。 这个系统主要用于运维安全检测,AIDE会向管理员报告系统里所有的恶意更迭情况。
支持消息摘要算法:md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool 支持文件属性:文件类型,文件权限,索引节点,UID,GID,链接名称,文件大小,块大小,链接数量,Mtime,Ctime,Atime 支持Posix ACL,SELinux,XAttrs,扩展文件系统属性 纯文本的配置文件,精简型的数据库 强大的正则表达式,轻松筛选要监视的文件和目录 支持Gzip数据库压缩 独立二进制静态编译的客户端/服务器监控配置
下载地址 http://aide.sourceforge.net
安装配置
yum install aide
vi /etc/aide.conf
MyRule = p+u+g
/www MyRule
!/www/uploads/
!/www/cache/
!/www/tmp/
#添加对文件权限、属性的关注;(!)为忽略目录。
#AIDE参数:权限(p)、索引节点(i)、链接数(n)、用户(u)、组(g)、大小(s)、修改时间(m)、创建时间(c)、ACL(acl)、SELinux(selinux)、xattrs(xattr)、SHA256/SHA512校验和(sha256和sha512)。
初始化基础数据库
/usr/sbin/aide -c /etc/aide.conf -i
#初始化数据库
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz -f
#把当前初始化的数据库作为基础数据库,so 这样就好了
1.重构数据库方法(正常的改动 更新改动到基础数据库)
aide --update
#或者aide -u
cd /var/lib/aide/ &&mv aide.db.new.gz aide.db.gz -f
#覆盖替换旧的数据库
2.手动安全校验方法
aide --check
邮件通知
/home/aide.sh
#!/bin/bash
MAILUSER='admin@attacker.club 888888@qq.com'
#定义发送的邮箱
log=/home/report-`date +%Y%m%d`.txt
#定义日志存放路径
aide -C --report=file:$log >/dev/nell 2>&1
grep differences $log
#校验对比
if [ $? -eq 0 ];then
cat $log| /bin/mail -s "安全报告 IP:$(ip add |grep global |awk '{print $2}'|cut -d / -f 1 |grep $(route |grep default |awk '{print $2}'|cut -d "." -f 1,2)) [$(uname -n)] at $(date +'%b %e %H:%M')" $MAILUSER
aide -u
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz -f
#与基础库对比,有改变则向管理员发送报告,同时更新基础数据库。
fi
find /home/ -name "aide-report-*.txt" -mtime +60 -exec rm -rf {} \;
#删除60天前日志
循环脚本(防止入侵者发现计划任务) /home/defend
#!/bin/bash
while true ;do
/home/aide.sh >/dev/null 2>&1
sleep 7200
done
启动命令?
chmod +x aide.sh
chmod +x defend
nohup ./defend & >/dev/nell 2>&1
#后台运行
外部邮箱配置 /etc/mail.rc
set from=xxx@163.com
set smtp=smtp.163.com
set smtp-auth-user=xxx@163.com
set smtp-auth-password=xxxxxxx
set smtp-auth=login
外部邮箱我用的163,qq还有163新账号可能走的ssl会导致邮件发送不成功,也可以试试sendEmail