概述
因业务需要,需监控某web站点目录下所有文件是否被恶意篡改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次。
下面简单介绍下实现过程。
一、生成md5验证文件
1、文件的校验文件
find /var/html/www/* -type f |xargs md5sum >/tmp/check/web_file_check.md5sum
2、目录的校验文件
tree /var/html/www/ -d >/tmp/check/web_dir_check.txtmd5sum /tmp/check/web_dir_check.txtmd5sum /tmp/check/web_dir_check.txt >/tmp/check/web_dir_check.md5sum
二、邮箱
Sendmail配置发送邮件的邮箱认证信息
vi /etc/mail.rc
--- 增加如下内容 ---set from=yourname@your-domain.comset smtp=mail.your-domain.comset smtp-auth-user=yournameset smtp-auth-password=yourpasswdset smtp-auth=login
三、脚本内容
#!/bin/bash############################################################## File Name: web_file_check.sh# 前提: yum install -y tree#############################################################Dir=/tmp/check/Web_Dir=/tmp/html/Check_File1=/tmp/check/web_file_check.md5sumCheck_File2=/tmp/check/web_dir_check.md5sumCheck_Dir=/tmp/check/web_dir_check.txtCheck_Out=/tmp/check/check_out.md5sumMail_info=/tmp/check/mail.txtDate=`date +%F_%T`Host_Name=`hostname`Host_IP=`hostname -I`Email_Addr=huangwb@fslgz.comecho "=========================inital============================"[ -d $Dir ] || mkdir -p $Dirif [ ! -f $Check_File1 ] then find /tmp/html/* -type f |xargs md5sum >/tmp/check/web_file_check.md5sumelif [ ! -f $Check_File2 ] then tree /tmp/html/ -d >/tmp/check/web_dir_check.txt md5sum /tmp/check/web_dir_check.txt md5sum /tmp/check/web_dir_check.txt >/tmp/check/web_dir_check.md5sumfiecho "========================check_out============================"md5sum -c $Check_File1 >$Check_Out 2>/dev/nullBack_num1=$?tree -d $Web_Dir >$Check_Dirmd5sum -c $Check_File2 &>/dev/nullBack_num2=$?echo "======================开始校验并触发告警====================="if [ $Back_num1 -ne 0 ] then echo "发生主机:$Host_Name 主机IP地址:$Host_IP" > $Mail_info echo "在 $Date 的检测中发现以下文件被篡改" >>$Mail_info echo "==================================================" >>$Mail_info egrep -i "失败|failed" $Check_Out >>$Mail_info echo "==================================================" >>$Mail_info echo "请尽快登陆服务器进行处理!!!" >>$Mail_info mail -s "【警告】web站点文件被篡改" -a $Check_File1 $Email_Addr $Mail_info echo "在 $Date 的检测中发现目录被篡改" >>$Mail_info mail -s "【警告】web站点目录被篡改" -a $Check_Dir $Email_Addr
四、测试
删除文件后执行结果
查看邮件:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~