网站是很多企业常用的网路营销方式,通常用到的php开发语言,也是市面比较常用的一种。

我们使用开源cms系统:dedecms、帝国cms、phpcms等系统时,经常被人挂马,每次都没有及时发现,给网站造成权重上的影响。

于是想了一个简单的办法就是使用shell监控目录的文件变化,如果核心文件被修改就主动还原;

如果新增文件就删除,并记录被删除的文件,用着日后分析。

如果有很多不妥的地方,还请大佬多多包涵:

#!/bin/bash

#网站目录

original="/media/psf/Home/Desktop/Git/dutuwang_net"

#备份目录

backdir="/media/psf/Home/Desktop/Git/dutuwang_net_backdir"

#非法文件

illegal="/media/psf/Home/Desktop/dutuwang_net_illegal"

#查找1分钟内修改的文件

files=`find ${original} -name '*.php' -mmin -1 -type f`

for filename in $files

do

#排除缓存目录

if [[ "${filename}" =~ "/data" ]]; then

echo 'tmp'

else

old=${filename/${original}/${backdir}}

#判断备份文件是否存在

if [ -f ${old} ]; then

cp -r ${filename/${original}/${backdir}} ${filename}

echo "restore----${filename}--------restore-----"

else

newdir=`dirname "${illegal}${filename/${original}/}"`

#判断新增目录是否存在

if [ -d ${newdir} ]; then

#复制新增文件到非法文件目录

cp -r ${filename} "${illegal}${filename/${original}/}"

else

echo "mkdir--------${newdir}-----------"

mkdir ${newdir}

cp -r ${filename} "${illegal}${filename/${original}/}"

fi

echo "cp---------${filename}------${illegal}${filename/${original}/}----"

rm ${filename}

echo "del----${filename}--------del---------"

fi

fi

done

然后用crontab -e

*/1 * * * * /www/shell/restore.sh >> /www/shell/restore.log 2&1 &

每分钟去检查一次

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐