Shell实战--文件安全性的保证
监控Web站点目录(/var/html/www
)下的所有文件是否被恶意篡改(文件内容被更改)
文件被更改会有如下特征:
- 大小可能会变化
- 修改时间会变化
- 文件内容会变化,利用
md5sum
指纹校验 - 增加或删除文件,对比每次检测前后的文件数量
第一步:在企业网站发布代码后,即对所有网站数据建立初始指纹库和文件库,这个步骤很重要,没有基础的指纹库,无法进行入侵检测
- 建立测试数据
[root@localhost ~]# mkdir /var/html/www -p
[root@localhost ~]# cp -a /etc/a* /var/html/www/
[root@localhost ~]# cp -a /etc/b* /var/html/www/
[root@localhost ~]# 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 ~]# find /var/html/www/ -type f|xargs md5sum > /opt/zhiwen.db
[root@localhost ~]# cat /opt/zhiwen.db
0c18947e88b495de161b078c1467c9d6 /var/html/www/abrt/abrt-action-save-package-data.conf
bf1d986df3e106423f132124d10f0820 /var/html/www/abrt/abrt.conf
b6fa2f81eab31d579be78e777b4246cf /var/html/www/abrt/gpg_keys.conf
2876e889d2a25c672819152946183cee /var/html/www/abrt/plugins/xorg.conf
......
- 建立初始文件库
/opt/wenjian.db
文件中包含初始文件的文件名
[root@localhost ~]# find /var/html/www/ -type f > /opt/wenjian.db
[root@localhost ~]# cat /opt/wenjian.db
/var/html/www/abrt/abrt-action-save-package-data.conf
/var/html/www/abrt/abrt.conf
/var/html/www/abrt/gpg_keys.conf
/var/html/www/abrt/plugins/xorg.conf
/var/html/www/abrt/plugins/python.conf
/var/html/www/abrt/plugins/CCpp.conf
/var/html/www/abrt/plugins/vmcore.conf
/var/html/www/adjtime
/var/html/www/aliases
/var/html/www/aliases.db
......
第二步:监测文件内容和数量的变化
- 监测文件内容的变化
篡改文件内容:
[root@localhost ~]# echo redhat >> /var/html/www/brltty.conf
检查所有文件内容是否变化:
[root@localhost ~]# md5sum -c --quiet /opt/zhiwen.db
/var/html/www/brltty.conf: FAILED #校验失败
md5sum: WARNING: 1 computed checksum did NOT match
- 监测文件数量的变化
新增加文件数:
[root@localhost ~]# echo redhat.txt > /var/html/www/test.txt
利用指纹库无法监测新增文件:
[root@localhost ~]# echo redhat.txt > /var/html/www/test.txt
[root@localhost ~]# md5sum -c --quiet /opt/zhiwen.db
/var/html/www/brltty.conf: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
获取检测前的所有文件数量及文件名:
[root@localhost ~]# find /var/html/www/ -type f > /opt/wenjian.db_curr
采用diff
命令比较:
[root@localhost ~]# diff /opt/wenjian.db*
348a349
> /var/html/www/test.txt
开发脚本:
前提恢复操作:
[root@localhost ~]# find /var/html/www/ -type f | xargs md5sum >/opt/zhiwen.db
[root@localhost ~]# find /var/html/www/ -type f > /opt/wenjian.db
[root@localhost mnt]# cat invad_Alarm.sh
#!/bin/bash
RETVAL=0
CHECK_DIR=/var/html/www
[ -e $CHECK_DIR ] || exit 1zhiwendb="/opt/zhiwen.db"
filedb="/opt/wenjian.db"
errlog="/opt/err.log"[ -e $zhiwendb ] || exit 1
[ -e $filedb ] || exit 1#judge file content
echo "[root@desktop mnt]# md5sum -c --quiet /opt/zhiwen.db" >$errlog
md5sum -c --quiet /opt/zhiwen.db &>/dev/null
RETVAL=$?#com file count
find /var/html/www/ -type f >/opt/wenjian.db_curr
echo "[root@desktop mnt]# diff /opt/wenjian.db*" &>>$errlog
diff /opt/wenjian.db*" &>>$errlogif [ $RETVAL -ne 0 -o `diff /opt/wenjian.db* | wc -l` -ne 0 ];thentouch /tmp/`date +%s`.err
elseecho "Site dir is ok"
fi
[root@localhost mnt]# sh invad_Alarm.sh
Site dir is ok
篡改文件后再检测:
[root@localhost mnt]# sh invad_Alarm.sh
Site dir is ok
[root@localhost mnt]# echo redhat >> /var/html/www/brltty.conf
[root@localhost mnt]# sh invad_Alarm.sh
[root@localhost mnt]# cat /opt/err.log #查看错误日志
[root@desktop mnt]# md5sum -c --quiet /opt/zhiwen.db
[root@desktop mnt]# diff /opt/wenjian.db*
Shell实战--文件安全性的保证相关推荐
- shell编程中文件安全性的保证
目的 监控Web站点目录(/var/html/www)下的所有文件是否被恶意篡改(文件内容被更改) 文件被更改会有如下特征: 大小可能会变化 修改时间会变化 文件内容会变化,利用md5sum指纹校验 ...
- oozie action shell 实战(完整配置文件)
有一个这样的需求,apache oozie调用shell命令(x.sh的脚本文件),x.sh的逻辑为先执行第一个jar包命令,后执行一个spark任务,第一个jar任务命令执行成功后返回的结果作为参数 ...
- 企业Shell实战-MySQL分库分表备份脚本
本文来自 http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.ht ...
- linux环境: shell初始化文件, for TCSH, CSH
TCSHELL, CSHELL 配置文件 全局配置文件 /etc/csh.cshrc 个人配置文件 ~/.cshrc或~/.tcshrc 参考: 1.配置你的csh/tcsh, https://wi ...
- linux执行加密的shell,Linux下Shell脚本文件的加密
一些站长会对自己编写的网页文件进行加密,以免自己辛辛苦苦写出来的成果被盗用.而Linux程序员编写的Shell脚本文件,也是可以加密的.这样做的好处除了防止被盗用,还可以防止自己脚本文件中的密码泄露, ...
- shell判断文件是否存在[转]
原文出处: http://canofy.iteye.com/blog/252289 shell判断文件,目录是否存在或者具有权限#!/bin/shmyPath="/var/log/httpd ...
- linux获取文件的md5,linux shell 获取文件md5的命令linux操作系统 -电脑资料
下面我给各位朋友总结一下在linux中利用shell命令来获取文件md5及遍历目录下所有文件的md5的例子,希望此例子对各位同学会有所帮助, 获取文件的MD5值: $ md5sum linuxmint ...
- shell读取文件的每一行
shell读取文件的每一行 写法一: ---------------------------------------------------------------------------- #!/b ...
- springboot文件上传下载实战 ——文件上传、下载、在线打开、删除
springboot文件上传下载实战 文件上传 文件上传核心 UserFileController 文件上传测试 文件下载与在线打开 文件下载.在线打开核心 UserFileController 文件 ...
最新文章
- python怎么删除特定文件_如何使用python从文件中删除特定行?
- Qt小游戏《2048》源码(含大量注释)
- PHP实现带重试功能的curl连接示例
- mysql 查看索引命中_请问下如何在Mysql中where与orderBy后在命中索引?
- Centos7 +Django的安装
- Swift调用微信支付宝SDK(Swift4.0)
- 生物信息学常用软件—2(PCR引物设计及相关软件使用)
- 国内外各大免费搜索引擎、导航网址提交入口(转载)
- 软件项目管理之历时估算(工程评估评审技术【Program Evaluation And Review Technique,PERT】)
- android 反编译 jadx,jadx gui下载 jadx(Android反编译gui工具) v0.6.1 官方版 下载-脚本之家...
- 昆石VOS3000/VOS2009 Web手机管理说明
- latex论文模板:中文小论文
- 计算机硬件组装什,计算机硬件组装的步骤详解
- java数组查找奇数_java – 在数组中对偶数和奇数进行排序
- 利用stm32控制步进电机 速度加速度控制
- CUDA专业小贴士:通过 Warp-聚合的原子操作来优化过滤
- 如何从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7?
- 利用Delphi编程控制摄像头
- 今日头条爬虫实战----爬取图片
- 面经:众安保险前端实习,一面(27min)