概述因业务需要,需监控某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.txt md5sum /tmp/check/web_dir_check.txt md5sum /tmp/check/web_dir_check.txt >/tmp/check/web_dir_check.md5sum
二、邮箱Sendmail配置发送邮件的邮箱认证信息 vi /etc/mail.rc --- 增加如下内容 --- set [email protected] set smtp=mail.your-domain.com set smtp-auth-user=yourname set smtp-auth-password=yourpasswd set smtp-auth=login
三、脚本内容#!/bin/bash ############################################################# # File Name: web_file_check.sh # 前提: yum install -y tree ############################################################# �6�7 Dir=/tmp/check/ Web_Dir=/tmp/html/ Check_File1=/tmp/check/web_file_check.md5sum Check_File2=/tmp/check/web_dir_check.md5sum Check_Dir=/tmp/check/web_dir_check.txt Check_Out=/tmp/check/check_out.md5sum Mail_info=/tmp/check/mail.txt �6�7 Date=`date +%F_%T` Host_Name=`hostname` Host_IP=`hostname -I` [email protected] �6�7 echo "=========================inital============================" [ -d $Dir ] || mkdir -p $Dir if [ ! -f $Check_File1 ] then find /tmp/html/* -type f |xargs md5sum >/tmp/check/web_file_check.md5sum elif [ ! -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.md5sum fi �6�7 echo "========================check_out============================" md5sum -c $Check_File1 >$Check_Out 2>/dev/null Back_num1=$? tree -d $Web_Dir >$Check_Dir md5sum -c $Check_File2 &>/dev/null Back_num2=$? �6�7 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 fi �6�7 if [ $Back_num2 -ne 0 ] then echo "目录检测信息" >$Mail_info echo "在 $Date 的检测中发现目录被篡改" >>$Mail_info mail -s "【警告】web站点目录被篡改" -a $Check_Dir $Email_Addr<$Check_Dir fi �6�7
 
四、测试删除文件后执行结果 查看邮件:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~ |