zen-cart网站,模版,采集,二次开发

首页 » Linux » liunx基础 » 阅读文章

网站文件监控脚本

2013-04-22 12:36 22646 0 发表评论
标签:


作用和原理

通过MD5对比文件来实现文件是否被更改增加和删除来防止黑客增加木马

要求

空间运行客户运行SH脚本(ps:一般的cpanel空间都允许,在中文名称为:时间守护作业,英文:Cron jobs)

脚本

#!/bin/sh

#PREFIX参数可随意设置,作为空间识别符,知道是哪个空间的网站
PREFIX="FTP1"
#MON_DIR为监控目录,设置你对应的网站目录
MON_DIR="/var/www/html/public_html"
#日志存放对比文件目录,不要设置到网站目录里
LOGDIR="/var/www/html/log"
if [ ! -d $LOGDIR ];
then
	mkdir $LOGDIR
fi

FILE1=$LOGDIR"/__diff.1"
FILE2=$LOGDIR"/__diff.2"

DIFF_CONTENT=$LOGDIR"/__diff_result__"

echo "" > ${FILE2}
echo "" > ${DIFF_CONTENT}

#通过grep -i -v "file"  file可设置为你不想比较的内容,如图片或95付款日志等
find ${MON_DIR} -type f | grep -i ".jpg" -v  | grep -i ".png" -v | grep -i ".gif" -v  | grep -i "error_log" -v | grep -i "logs/" -v|grep -i "95epay_pay_error_log.txt" -v | xargs md5sum >>${FILE2}  2>/dev/null

DIFF_RESULT=`diff ${FILE1} ${FILE2} > ${DIFF_CONTENT}`

if [ ! -e $FILE1 ];
then
	cp $FILE2 $FILE1
fi

rm -f $FILE1
cp $FILE2 $FILE1

if [ -s $DIFF_CONTENT ];
then
	#所有文件修改记录都存放在以下文件中
	date >>"$LOGDIR/logs.log"
	cat ${DIFF_CONTENT} >>"$LOGDIR/logs.log"

	#邮件提醒
	date >"$LOGDIR/logemail.log"
	cat ${DIFF_CONTENT} >"$LOGDIR/logemail.log"
	#Alert! file changed可改为任意 ,此处为邮件标题,$PREFIX参数最好不改
	#info@ezencart.com换为自己的邮箱
	#并非所有linux主机都包含mail功能,脚本经测试能发邮件,发不出邮件请检查主机原因
	mail -s "Alert! $PREFIX File Changed"  info@ezencart.com<$LOGDIR/logemail.log
fi

使用方法

1.根据注释修改脚本

2.MON_DIR和LOGDIR填写的是空间的绝对路径,可以通过运行php文件

echo getcwd();

获取

3.将脚本上传到空间中,并修改权限为777(放到到一个隐蔽的目录中),然后那cpanel举例

开始可以设置为没分钟执行1次,第一次执行会生成文件列表并md5计算,不会邮件通知,然后修改文件测试,测试没问题后可以修改为1小时,或者1天1次

邮件通知

其中小于号表示文件被移除,大于号表示文件增加,上面邮件表示删除了af.txt 增加了ad.txt a.txt内容变动

小技巧

移动139邮箱中的邮件可以发送到手机上,我们可以将邮箱改为自己的139邮箱,来实现实时掌控

随机日志

评论 共0条 (RSS 2.0) 发表评论

  1. 暂无评论,快抢沙发吧。

发表评论

  • 
  • 插入代码

联系我 Contact Me

回到页首