计算/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