设为首页 收藏本站
查看: 669|回复: 0

[经验分享] linux 实时检测web项目MD5防止网站被黑

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-12-27 08:45:55 | 显示全部楼层 |阅读模式
搭建在linux服务器上网站项目越来越多,防止网站项目被黑,是web运维人员的基本工作,网上关于网站运维技巧的精华文章数不胜数,方法也各不相同,有经验的大牛们写的也更是精华中的精华,小弟也是刚刚接触这一行没多久,没多少经验,下面就介绍下我在用的几种方法中的其中一种----MD5校验

这种方法需要用到系统自带的md5sum工具,(没有的可以yum到http://rpm.pbone.net/下载一个)

这个方法需要两个脚本(网站用的是java,这里监控的是class和jsp,根据项目的不同)

makemd5 和 checkmd5

makemd5


#!/bin/bash
# author:Cheng Guan
# date: 2013-12-24
# version: 0.0.1
# desc: make md5 file

#-------------项目路径
path="/home/ml/home/"
#-------------监控文件
find $path  -type f  | grep -E  "\.class|\.jsp" | xargs  md5sum > /md5/one

checkmd5


#!/bin/bash
# author:Cheng Guan
# date: 2013-12-24
# version: 0.0.1
# desc: check web file

if [ ! -s /md5/one ] ; then
echo "源文件丢失"
exit 2
fi
#path="/home/ml/home/"
#-------------监控文件
#find $path  -type f | grep .class | xargs  md5sum > two
sed 's/one/two/g' /md5/makemd5  > /md5/.makemd5
/bin/sh /md5/.makemd5
if [ ! -s /md5/two ] ; then
echo "获取MD5异常"
exit 2
fi

#-------------对比文件MD5
#do
#   wc=`cat one | grep "$file"`
#   if [ ! "$wc" ] ; then
#   echo $file | awk -F / '{print $NF}' >> diff.md5
#   fi
#done
cat /md5/one >> /md5/two
cat /md5/two | sort | uniq -c | sort -nr | awk '$1~/1/{print $3}' | awk -F / '{print $NF}' > /md5/diff.md5
#------------对比结果
error=`cat /md5/diff.md5 | tr '\n' ',' | sed 's/,$/);/' | sed 's/^/异常文件(/'`
if [ "$error"  ] ; then
#------------异常处理(飞信,邮箱都可以)
#/usr/local/fx/fetion --mobile=123456 --pwd=123456 --to=123456 --msg-utf8="$error"
#sendmail
echo "$error"
exit 0
fi
rm -rf /md5/.makemd5

makemd5用于第一次生成原始的MD5文件one,checkmd5会生成新的MD5文件two,然后把两个MD5文件进行对比,不一样的就是被修改或者被上传上来的文件,然后就会报警,

makemd5生成的是原始文件,只生成一次,可以把checkmd5加入到cron中,没1分钟执行一次,就每分钟都会生成新的MD5文件two,去和原始MD5文件one去对比,达到实时监控项目文件,及时发现问题。

*/1 * * * * root sh /md5/checkmd5  >/dev/null 2>&1
这种方式对大牛来说弱爆了,但是对于我来说还很实用,

但是入侵者把crond给改了,这个监控就失效了,我们可以再内网用nagios去监控服务器上的crond服务及其makemd5文件是否没修改等等(这个有想了解的可以告诉我)

最好是不要用root用户与运行项目,可以新建个运用去运行项目,权限能少给就少给,或者增加个对访问日志的实时监控

如logcheck,log analyzer或者自己写一些简单的脚本

END


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-12470-1-1.html 上篇帖子: Linux 查看目录大小及文件数量命令 下篇帖子: Linux中Samba详细安装 linux 检测 网站 项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表