记一次开源网站系统文件一直被篡改的问题及解决思路
前言
最近有个客户的网站过几天就会把网站系统的首页文件篡改一下,非常烦,客户找我恢复了好几次了,我想是时候要解决一下了
解决思路
他把是一直会篡改那个文件,那我就写一个脚本每5秒去检测一下是否被篡改,如果篡改了就恢复,天才的想法
实现代码
#!/bin/bash # 定义要监控的文件路径 FILE="/www/wwwroot/www.xxx.cc/index.php" # 定义存储原始哈希值的文件 HASH_FILE="/www/wwwroot/www.xxx.cc/index.php.original_hash" # 定义备份文件路径 BACKUP_FILE="/www/wwwroot/www.xxxx.cc/index.php.backup" # 计算当前文件的哈希值 CURRENT_HASH=$(sha256sum "$FILE" | awk '{print $1}') # 检查是否已经存在原始哈希值 if [ -f "$HASH_FILE" ]; then # 读取原始哈希值 ORIGINAL_HASH=$(cat "$HASH_FILE") # 比较当前哈希值与原始哈希值 if [ "$CURRENT_HASH" != "$ORIGINAL_HASH" ]; then echo "警告: $FILE 已被修改!" echo "当前文件哈希值: $CURRENT_HASH" echo "原始文件哈希值: $ORIGINAL_HASH" # 恢复备份文件 if [ -f "$BACKUP_FILE" ]; then cp "$BACKUP_FILE" "$FILE" echo "已恢复原始文件." else echo "备份文件不存在,无法恢复." fi # 发送警报(可选) # mail -s "文件被修改警报" 598692079@qq.com <<< "$FILE 已被修改并已恢复." else echo "文件未被修改." fi else # 如果原始哈希值文件不存在,则创建并保存当前哈希值 echo "$CURRENT_HASH" > "$HASH_FILE" # 创建备份文件 cp "$FILE" "$BACKUP_FILE" echo "原始哈希值和备份文件已创建." echo "原始文件哈希值: $CURRENT_HASH" fi