md5介绍:md5deep工具就是监控linux系统下的文件,给文件生成md5值,那么当***对系统下某个文件删除后在上传自己的文件只不过名字和以前的一样,这样我么就被欺骗了。为了预防文件被篡改利用md5deep工具让文件唯一。

下载地址: http://md5deep.sourceforge.net/

 

功能:递归的操作 - md5deep是可以递归检查整个目录树。也就是说,计算每一个目录中的文件,并为每个子目录中的每个文件生成MD5值。

比对文件:  md5deep可以接受已知的哈希值,并把它们比作一组输入文件的列表。该程序可以显示输入匹配的文件列表中已知的哈希值或不匹配的。

说明:以下给出了几个脚本文件

其实md5deep安装还是很简单的,看第一个脚本一目了然吧!

下面就以nginx和tomcat为例、先说nginx,安装的时候就安装到了/usr/local/nginx这个目录下面了,所以这个目录下面有好多的文件,那么md5deep做什么了呢?看脚本2,当你执行了脚本2后会把文件详细目录打印在屏幕上同时你要注意目录前面会生成md5值,说明文件就是独一无二的了。预防***人员进入我们的系统对我们的文件更改(要是把我们的源文件删除后在上传新的文件,只不过名字和系统原来的名字一样,那我们就被欺骗了)现在你知道md5deep是干嘛的了吗?

下面说说这几个脚本,第2个脚本是分别为nginx和tomcat目录下的文件生成md5值,然后把这些结果追加到befor_nginx.md5这个文件中去。这个就是最原始的文件了

后期的工作中如果nginx的目录下面有文件有变动的时候在用md5deep去比对。md5deep会把比对的结果打印出来,在把比对后的结果追加到after_nginx.md5这个文件中去。在用if判断把结果最后email发给自己,这样就清楚的知道了都有哪些文件改动了。后面的awk是为了过滤掉log文件的,因为log文件总是在变。

 

准备工作

mkdir /home/soft/tools/

cd /home/soft/tools/

上传md5deep工具包

 

Md5deep安装脚本

 
  
  1. #!/bin/bash 
  2. #2012/10/19 
  3. #acong 
  4. tar zxvf md5deep_3.6.orig.tar.gz  
  5. cd md5deep-3.6/ 
  6. mkdir /usr/local/md5deep 
  7. ./configure --prefix=/usr/local/md5deep 
  8. make 
  9. make install 
  10. echo "PATH=$PATH:/usr/local/md5deep/bin" >> /etc/profile 
  11. source /etc/profile 
  12.   

脚本说明:

befor_glassfish.md5 :开头的befor_为事先生成好的.md5文件                         

after_glassfish.md5:开头的after_为匹配后的结果.md5文件

2 指定目录下文件生成md5值脚本

 
  
  1. #!/bin/bash 
  2. #2012/10/19 
  3. #acong 
  4. mkdir /md5deep 
  5.   
  6. md5deep -rl /usr/local/nginx/* >/md5deep/befor_nginx.md5 
  7. md5deep -rl /opt/apache-tomcat-7.0.26/* >/md5deep/befor_tomcat.md5 
  8.   

3 md5值比对nginx下文件脚本

 
  
  1. #!/bin/bash 
  2. #2012/10/19 
  3. #acong 
  4. /usr/local/md5deep/bin/md5deep -X /md5deep/befor_nginx.md5 -r /usr/local/nginx/* |awk '{if($0~/log/)next}{print $0}'>/md5deep/after_nginx.md5 
  5. if [ -s /md5deep/after_nginx.md5 ] ;then 
  6.   mail -s "after_nginx.md5" xxx@163.com </md5deep/after_nginx.md5 
  7. else 
  8.   echo "No matching target"|mail -s "after_nginx.md5" acongzuibang@163.com 
  9. fi 
  10.   

4 md5值比对tomcat下文件

 
  
  1. #!/bin/bash 
  2. #2012/10/19 
  3. #acong 
  4.   
  5. /usr/local/md5deep/bin/md5deep -X /md5deep/befor_tomcat.md5 -r /usr/local/nginx/* |awk '{if($0~/log/)next}{print $0}'>/md5deep/after_tomcat.md5 
  6. if [ -s /md5deep/after_tomcat.md5 ] ;then 
  7.   mail -s "after_nginx.md5" xxx@163.com </md5deep/after_nginx.md5 
  8. else 
  9.   echo "No matching target"|mail -s "after_tomcat.md5" acongzuibang@163.com 
  10. fi 

当把这几个脚本添加到定时任务中的时候自己最好先测试下,开始我弄的时候因为没把md5deep的命令写全路径所以定时任务执行不成功,手动执行就成功,还有一点就是别忘记给脚本授予执行权限。