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
總結
以上是生活随笔為你收集整理的linux 实时检测web项目MD5防止网站被黑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 印尼火山爆发(火山爆发)
- 下一篇: 养生茶大全及配方(养生茶要分体质饮用效果