shell脚本监控web站点目录下的文件安全性

1. 监控wed站点目录文件安全:

(1)大小可能会变化

(2)修改时间会变化

(3)文件内容会变化,利用md5sum指纹校验

(4)增加或删除文件,对比每次监测前后的文件数量

在企业网站发布代码之后,即对网站所以数据建立指纹库和文件库,没有基础的指纹库,无法进行入侵监测

2. 建立测试数据

[root@localhost web_detect]# mkdir /var/html/www -p
[root@localhost web_detect]# cp -a /etc/a* /var/html/www/
[root@localhost web_detect]# cp -a /etc/b* /var/html/www/
[root@localhost web_detect]# ls /var/html/www/
abrt        alsa          at.deny  avahi              bluetooth
adjtime     alternatives  at-spi2  bash_completion.d  bonobo-activation
aliases     anacrontab    audisp   bashrc             brltty
aliases.db  asound.conf   audit    binfmt.d           brltty.conf
[root@localhost web_detect]# 

cp -a : 递归复制,复制的数据会保留原有数据的时间戳等信息(具体:时间戳+所有权+复制链接文件属性而非档案本身)

cp -r : 递归复制,复制的数据会使用新的时间戳等信息
在这里插入图片描述

2.建立初始的文件指纹库

[root@localhost web_detect]# find /var/html/www/ -type f | xargs md5sum > /opt/zhiwen.db
[root@localhost web_detect]# cat /opt/zhiwen.db 

在这里插入图片描述

3. 建立初始文件库

[root@localhost web_detect]# find /var/html/www/ -type f > /opt/wenjian.db
[root@localhost web_detect]# cat /opt/wenjian.db 

在这里插入图片描述

4. 监测文件内容的变化(md5sum)

篡改文件内容:
[root@localhost web_detect]# echo westos >> /var/html/www/brltty.conf
检查所有文件内容是否发生变化:

[root@localhost web_detect]# echo westos >> /var/html/www/brltty.conf 
[root@localhost web_detect]# md5sum -c --quiet /opt/zhiwen.db 
/var/html/www/brltty.conf: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[root@localhost web_detect]# 

在这里插入图片描述

扫描二维码关注公众号,回复: 9381932 查看本文章

5. 监测文件数量的变化(diff)

新增加文件数:
echo westos.txt > /var/html/www/test.txt
利用指纹库无法监测新增加文件

[root@localhost web_detect]# echo westos.txt > /var/html/www/test.txt
[root@localhost web_detect]# md5sum -c --quiet /opt/zhiwen.db 
/var/html/www/brltty.conf: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
[root@localhost web_detect]# 

在这里插入图片描述获取监测前的所有文件数量及文件名
利用初始文件库和改变文件数量后的文件库用diff对比

find /var/html/www/ -type f > /opt/wenjian.db_curr
[root@localhost web_detect]# diff /opt/wenjian.db /opt/wenjian.db_curr 
348a349
> /var/html/www/test.txt
[root@localhost web_detect]# 

6.开发脚本

#!/bin/bash
check_dir=/var/html/www
[ -e $check_dir ] || exit 1  #目录不存在就退出脚本

zhiwendb="/opt/zhiwen.db"  #原始指纹库路径
filedb="/opt/wenjian.db"   #原始文件库路径
errlog="/opt/err.log"   #监测后的内容日志

[ -e $zhiwendb ] || exit 1
[ -e $filedb ] || exit 1

echo "`md5sum -c --quiet /opt/zhiwen.db`" > $errlog   #将错误日志存放在指定位置
md5sum -c --quiet /opt/zhiwen.db &> /dev/null

find $check_dir -type f > /opt/wenjian.db_curr
echo "`diff /opt/wenjian.db*`" &>>$errlog
diff /opt/wenjian.db* &>> $errlog

if [ $? -ne 0 -o `diff /opt/wenjian.db* |wc -l` -ne 0 ];then
        touch /tmp/`date +%s`.err   #在指定位置创建错误报警提示  -o就是&&
else
        echo "sites dir is ok"
fi

在这里插入图片描述

发布了168 篇原创文章 · 获赞 1 · 访问量 3005

猜你喜欢

转载自blog.csdn.net/yrx420909/article/details/104340606