記一次生產環境腳本入侵檢測與報警案例(簡易版入侵檢測系統)

2019-11-04     波波說運維

概述

因業務需要,需監控某web站點目錄下所有文件是否被惡意篡改(文件內容被改了),如果有就列印改動的文件名(發郵件),定時任務每3分鐘執行一次。

下面簡單介紹下實現過程。


一、生成md5驗證文件

1、文件的校驗文件

find /var/html/www/* -type f |xargs md5sum >/tmp/check/web_file_check.md5sum

2、目錄的校驗文件

tree /var/html/www/ -d >/tmp/check/web_dir_check.txt
md5sum /tmp/check/web_dir_check.txt
md5sum /tmp/check/web_dir_check.txt >/tmp/check/web_dir_check.md5sum

二、郵箱

Sendmail配置發送郵件的郵箱認證信息

vi /etc/mail.rc

--- 增加如下內容 ---
set [email protected]
set smtp=mail.your-domain.com
set smtp-auth-user=yourname
set smtp-auth-password=yourpasswd
set smtp-auth=login


三、腳本內容

#!/bin/bash
#############################################################
# File Name: web_file_check.sh
# 前提: yum install -y tree
#############################################################

Dir=/tmp/check/
Web_Dir=/tmp/html/
Check_File1=/tmp/check/web_file_check.md5sum
Check_File2=/tmp/check/web_dir_check.md5sum
Check_Dir=/tmp/check/web_dir_check.txt
Check_Out=/tmp/check/check_out.md5sum
Mail_info=/tmp/check/mail.txt

Date=`date +%F_%T`
Host_Name=`hostname`
Host_IP=`hostname -I`
[email protected]

echo "=========================inital============================"
[ -d $Dir ] || mkdir -p $Dir
if [ ! -f $Check_File1 ]
then
find /tmp/html/* -type f |xargs md5sum >/tmp/check/web_file_check.md5sum
elif [ ! -f $Check_File2 ]
then
tree /tmp/html/ -d >/tmp/check/web_dir_check.txt
md5sum /tmp/check/web_dir_check.txt
md5sum /tmp/check/web_dir_check.txt >/tmp/check/web_dir_check.md5sum
fi

echo "========================check_out============================"
md5sum -c $Check_File1 >$Check_Out 2>/dev/null
Back_num1=$?
tree -d $Web_Dir >$Check_Dir
md5sum -c $Check_File2 &>/dev/null
Back_num2=$?

echo "======================開始校驗並觸發告警====================="
if [ $Back_num1 -ne 0 ]
then
echo "發生主機:$Host_Name 主機IP位址:$Host_IP" > $Mail_info
echo "在 $Date 的檢測中發現以下文件被篡改" >>$Mail_info
echo "==================================================" >>$Mail_info
egrep -i "失敗|failed" $Check_Out >>$Mail_info
echo "==================================================" >>$Mail_info
echo "請儘快登陸伺服器進行處理!!!" >>$Mail_info

mail -s "【警告】web站點文件被篡改" -a $Check_File1 $Email_Addr <$Mail_info
fi

if [ $Back_num2 -ne 0 ]
then
echo "目錄檢測信息" >$Mail_info
echo "在 $Date 的檢測中發現目錄被篡改" >>$Mail_info
mail -s "【警告】web站點目錄被篡改" -a $Check_Dir $Email_Addr<$Check_Dir
fi


四、測試

刪除文件後執行結果

查看郵件:


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

文章來源: https://twgreatdaily.com/zh-tw/tCXwsG8B8wMrh2LiQUZA.html