zoukankan      html  css  js  c++  java
  • linux 实时检测web项目MD5防止网站被黑

    搭建在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 '
    ' ',' | 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

  • 相关阅读:
    替代传统C/S和B/S技术的下一代客户/服务器编程技术
    理想的编程语言
    nginx进程模型
    Sybase 7.0 中文乱码问题
    netfilter 链接跟踪机制与NAT原理
    TraTraffic Server 进程模型
    nginx并发模型与traffic_server并发模型简单比较
    vs/nat原理分析
    ORACLE 查询表信息
    in 跟exists的区别
  • 原文地址:https://www.cnblogs.com/dota2/p/3493110.html
Copyright © 2011-2022 走看看