运维日常

Shell脚本根据Hash值判断web服务器页面是否被更改

2019-11-23  本文已影响0人  大白菜的猪猪

编程需求:


      当页面被恶意木马攻击更改后,监控状态脚本并不能检测出异常,但是Web的页面已经存在相当大的安全隐患.所以能不能寻找到一种方法判断自己所负责的Web服务器页面内容是否遭到恶意木马的攻击和修改显得十分重要.通过Hash值的方法可以非常高效的检测到WEB服务器页面的数据内容是否完整,如果页面内容被恶意木马更改,新页面的Hash值是不同于原始的Hash值的,我们就可以以此作为判断的依据!


源代码:


获取Hash值的方法:

md5sum /var/www/html/index.html


#!/bin/bash

#功能描述:根据数据的Hash值监控网站数据是否被更改!

#Web服务器页面地址

url="Web服务器页面地址"

如 http://127.0.0.1/index.html

#日期与时间

date=$(date +"%Y-%m-%d %H:%M:%S")

#初始的Hash值,以此为基准判断,若数值不同则判定为网站内容被更改

source_hash="获取到的原始Hash值"

#获取当面时间下,网站服务器页面的Hash值

url_hash=$(curl -s $url | md5sum | cut -d ' ' -f1)

#当前的Hash值与原始Hash值进行比较

#当两个Hash值不相等时,判定为网站页面被更改,邮件形式报警

if [ "$url_hash" != "$source_hash" ];then

        mail -s  Hash is changed  root@localhost <<- EOF

        检测时间为:$date

        数据完整性检验失败,Hash值不同,$url,页面数据被更改

        请尽快排查异常

        EOF

else

        cat >> /var/log/http_check.log <<-EOF

        $date "$url,数据完整性校验正常"

        EOF

fi


脚本运行结果


页面内容正常的情况下


chmod +x /check_http_hash.sh

/check_http_hash.sh

cat /var/log/http_check.log

2019-11-23 15:38:55 "http://127.0.0.1/index.html,数据完整性校验正常"


页面内容被恶意木马更改的情况下


修改/var/www/html/index.html文件的内容,模拟网站页面被更改的情况!

/check_http_hash.sh

检测时间为:2019-11-23 16:00:08

数据完整性检验失败,Hash值不同,http://127.0.0.1/index.html,页面数据被更改

请尽快排查异常


这一个脚本跟上一篇文章的http服务状态监测脚本两者相辅相成,也可以考虑把它们两个合并成同一个脚本!并且一同添加到周期性计划任务中!


上一篇 下一篇

猜你喜欢

热点阅读