检测网站是否被篡改的脚本

xiaoxiao2021-02-27  377

一、代码被修改有以下几种情况:

1、大小可能变化 2、修改时间可能变化 3、文件内容会变化(md5sum指纹) 4、增加或者删除文件

二、完整代码分两部分,分别写在不同的文件

第一部分(在发布代码后立即做的工作):

#首先用md5sum校验代码 #网站根目录路径 src="/home/wwwroot/bbs/" #指纹文件 backup="/server/backup_code" if [ ! -d $backup ] ;then mkdir -p $backup find $src -type f |xargs md5sum > $backup/md5sum.code fi #将网站根目录下的所有文件做一个统计(可以校验出增加或者删除文件) find $src -type f > $backup/check_site.log

第二部分(检测网站是否被篡改):

src="/home/wwwroot/bbs/" backup="/server/backup_code" logs="/tmp/check_logs" src_count=`cat $backup/check_site.log |wc -l` while true do check_fail=`md5sum -c $backup/md5sum.code 2>/dev/null | grep -i "failed"` fail_count=`md5sum -c $backup/md5sum.code 2>/dev/null | grep -i "failed"|wc -l` find $src -type f > $backup/new_site.log new_count=`cat $backup/new_site.log |wc -l` if [ ${fail_count} -ne 0 ] || [ ${new_count} -ne ${src_count} ] then echo ${check_fail} > $logs diff $backup/check_site.log $backup/new_site.log >> $logs mail -s "the root is changed" xxxxxx@aliyun.com < $logs fi sleep 300 done

说明:

src、backup、logs分别是网站根目录路径、备份文件路径和把被修改的内容追加到文件中 #校验被修改的代码文件 check_fail=`md5sum -c $backup/md5sum.db 2>/dev/null | grep -i "failed"` #对被修改代码和源代码数量做统计 fail_count=`md5sum -c $backup/md5sum.db 2>/dev/null | grep -i "failed"|wc -l` src_count=`cat $backup/check_site.log |wc -l` #对于当前网站文件的数量做统计 find $src -type f > $backup/new_site.log new_count=`cat $backup/new_site.log |wc -l` #假如被修改的代码不等于0或者当前代码文件的数量不等于之前文件的数量,证明网站被篡改了,然后就把被修改的内容追加到文件,并发送邮件 if [ ${fail_count} -ne 0 ] || [ ${new_count} -ne ${src_count} ] then echo ${check_fail} > $logs diff $backup/check_site.log $backup/new_site.log >> $logs mail -s "the root is changed" xxxxxx@aliyun.com < $logs fi
转载请注明原文地址: https://www.6miu.com/read-1345.html

最新回复(0)