Shell脚本根据Hash值判断web服务器页面是否被更改
编程需求:
当页面被恶意木马攻击更改后,监控状态脚本并不能检测出异常,但是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服务状态监测脚本两者相辅相成,也可以考虑把它们两个合并成同一个脚本!并且一同添加到周期性计划任务中!