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]#
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