计算目录下的md5值,用于文件被篡改后对比

计算/etc目录下的md5值,用于文件被篡改后对比,命令如下:

find /etc/ -maxdepth 1 -type f | xargs -n1 md5sum> /root/etc_sum-$(date +%F).log

同样的道理,

我们可以将/usr/bin  /usr/sbin/ /usr/local/bin /root/bin 等等重要的目录下面的文件校验和都计算一遍,这样的话定期执行一下该命令,生成一份最新的校验和,通过diff命令将生成的log文件和原始的md5sum.log比较.

如果发现有变化的,则服务器有可能被入侵,需要及时查毒(查毒的话,可以使用clamav这个软件,epel源里面有这个rpm包)

下面是我自己写的检测文件是否发生变化的脚本,先生成一份原始的md5校验和作为样本,如下:

find /bin -maxdepth 1 -type f | xargs -n1 md5sum > /home/sum/bin_sum_ori.log 
find /sbin -maxdepth 1 -type f | xargs -n1 md5sum > /home/sum/sbin_sum_ori.log

然后,编写/home/scripts/chkmd5sum.sh脚本,下面脚本中我只对/sbin和/bin下的文件MD5sum做了校验,其他的可以参照补充:

#!/bin/bash

BIN_SUM_LOG="/home/sum/bin_sum-$(date +%F).log"
SBIN_SUM_LOG="/home/sum/sbin_sum-$(date +%F).log"

find /bin -maxdepth 1 -type f | xargs -n1 md5sum > $BIN_SUM_LOG
find /sbin -maxdepth 1 -type f | xargs -n1 md5sum > $SBIN_SUM_LOG

if ! diff $BIN_SUM_LOG  /home/sum/bin_sum_ori.log > /dev/null ;then
echo "Some file‘s md5sum is changed in /bin,please check"|mail -s "Warning, /bin Checksum not matched" [email protected]
fi

if ! diff $SBIN_SUM_LOG  /home/sum/sbin_sum_ori.log > /dev/null ;then
echo "Some file‘s md5sum is changed in /sbin,please check"|mail -s "Warning, /sbin Checksum not matched" [email protected]
fi

然后,我们添加个cron计划任务(如下),每天0点30检查执行该脚本,检测下文件是否变化即可。

 echo ‘30 0 * * * /bin/bash /home/scripts/chkmd5sum.sh > /dev/null 2>&1‘ >> /var/spool/cron/root

当然,Linux下还有个软件叫做tripwire,它的功能更强大,有兴趣的可以自己百度下。

时间: 2024-10-29 19:08:36

计算目录下的md5值,用于文件被篡改后对比的相关文章

遍历目录删除指定MD5值的文件

工作需要实现一个查找出指定目录下md5值与excel表格中md5值相同的文件然后删掉的功能.我是这样做的:首先遍历指定目录,计算该目录下所有文件的md5值,以文件路径为key,md5值为value保存到一个字典中:然后读取excel表格中的md5,查看字典中的value是否包含该md5,如果包含,则删除对应文件.以下是具体实现代码: 1 #coding:utf-8 2 3 from hashlib import md5 4 import os,time,sys 5 import xlrd 6 i

多线程的对比与案例(计算目录下文件的大小)

本人使用的是mac 所以有usr目录.把以下的几种情况分别贴出来给大家分析下各自有什么优缺点! 1.顺序计算目录大小code: package jvm; import java.io.File; /** * 第一版 * 顺序计算目录大小 * @author zeuskingzb * */ public class TotalFileSizeSequential { private long getTotalSizeOfFilesInDir(File file){ if (file.isFile(

快速遍历对比两个文件下的md5值

[[email protected] Activity]# find /opt/xyrpg/rpgserver_s1/XMLData/Activity/ -type f -exec md5sum {} \;|sed 's/rpgserver_s1/rpgserver_s2/'|md5sum -c /opt/xyrpg/rpgserver_s2/XMLData/Activity/ActivityCondition.xml: FAILED /opt/xyrpg/rpgserver_s2/XMLDat

Linux Shell编程实战---计算特定目录下前10个大文件

计算特定目录下前10个大文件 在给定的目录下,想知道有哪些大文件存在,取前十个,按文件大小排行 (1).使用awk来实现 #!/bin/bash path=/root/shell find $path-type f | awk '{ var=$0 "ls -l "var |getline var1 split(var1,a," ") filename=a[9] filesize=a[5] printf("%s %s\n",filename,fil

H5计算图片视频资源md5值(使用fileapi)

2017/10/28 发布 md5概念及作用: MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的"数字指纹".任何一个文件,无论是可执行程序.图像文件.临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变.因此,我们可以通过对比同一文件的MD5值,来校验这个文件是否被"篡改"过. 实际应用: 近期在开

检测日志文件的md5值如果N分钟后无变化则重启应用

计划任务添加如下: 每隔10分钟检测一次 */10 * * * * /bin/bash /data/scripts/check_md5sum.sh  /data/log/policy-root-new-4/policy-root-new-4.$(date +%Y-%m-%d).log    300   policy-root-new-4   policy-root-new-4  '/data/www/apps/policy-root-new-4/bin/boxrun'  restart chec

c#用牛顿法计算根号下2的值

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 牛顿法计算根号下2的值 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 double a = 0, b = 2, t = 0; 14

解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

本文摘自:(http://blog.csdn.net/stevencn76/article/details/6246162) 分类: Java技术专区2011-03-13 12:25 5017人阅读 评论(1) 收藏 举报 tomcatlinux工具任务web 由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已经其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开,而且同时tomcat依旧在不断的向文

删除指定目录下的指定后缀的文件

1 import java.io.*; 2 import javax.swing.*; 3 public class Delete{ 4 public static void main(String[] args)throws Exception{ 5 String target = JOptionPane.showInputDialog(null,"请输入您要清理垃圾的目录:"); 6 File[] fs = new File(target).listFiles(new Filena