自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

加強Linux防線,快速構(gòu)建異常登錄檢測與警報系統(tǒng)

系統(tǒng) Linux
本文將介紹如何編寫一個 Shell 腳本,監(jiān)控Linux服務(wù)器的登錄異常并發(fā)送警報。

在管理和維護Linux服務(wù)器時,安全是一個非常重要的方面。監(jiān)控登錄異常可以幫助管理員及時發(fā)現(xiàn)潛在的安全問題,比如多次失敗的登錄嘗試、來自未知IP的訪問等。本文將介紹如何編寫一個Shell腳本,監(jiān)控Linux服務(wù)器的登錄異常并發(fā)送警報。

工作場景

運維工程師小張負責管理公司的多臺Linux服務(wù)器。為了確保服務(wù)器的安全性,小張需要定期監(jiān)控服務(wù)器的登錄記錄,尤其是關(guān)注異常的登錄行為,例如多次失敗的登錄嘗試或者來自不常見IP地址的登錄。通過自動化腳本,小張可以及時獲取異常登錄的警報,從而采取必要的安全措施。

腳本功能概述

我們將編寫一個Shell腳本,實現(xiàn)以下功能:

  • 定期檢查系統(tǒng)日志,獲取登錄失敗的記錄。
  • 識別多次失敗的登錄嘗試和來自未知IP的登錄,并查詢這些IP的歸屬地
  • 將異常情況記錄到日志文件。
  • 把告警信息推送到釘釘群。

準備工作

在開始編寫腳本之前,需要在釘釘群創(chuàng)建一個機器人,機器人的類別選擇webhook,如下圖所示:

目前釘釘webhook強制要求了加簽、關(guān)鍵字 、IP,3選一,關(guān)鍵字最簡單,如下圖所示:

關(guān)鍵字的作用是你發(fā)送的消息體一定要包括關(guān)鍵字才能觸發(fā)。

執(zhí)行下面代碼測試機器人是否配置成功。

curl "https://oapi.dingtalk.com/robot/send?access_token=你的密鑰" -H 'Content-Type: application/json'  -d '{"msgtype": "text","text": {"content":"監(jiān)控報警:異常登錄"}}'

成功執(zhí)行,會在釘釘群上看到如下圖消息:

編寫監(jiān)控腳本

該腳本主要用于監(jiān)控 Linux服務(wù)器的登錄日志文件 以檢測登錄失敗的情況,并將告警信息發(fā)送到釘釘。當檢測到關(guān)鍵詞pam_unix(sshd:auth): authentication failure時,腳本提取日志中的IP地址和用戶名。然后,通過調(diào)用ipinfo.io API 查詢該IP地址的歸屬地信息(包括國家、城市和地區(qū)),并將這些信息準備發(fā)送到釘釘。

(1) 設(shè)置日志文件路徑和釘釘WebHook URL

LOG_FILE="/var/log/auth.log"
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=you_token"

(2) 定義關(guān)鍵詞,用于檢測登錄失敗。

KEYWORD="pam_unix(sshd:auth): authentication failure"

(3) 實時監(jiān)控日志文件

tail -Fn0 "$LOG_FILE" | while read line ; do

(4) 檢查是否包含關(guān)鍵詞

echo "$line" | grep "$KEYWORD" &> /dev/null
if [ $? = 0 ]
then

(5) 提取IP地址和登錄用戶名

IP=$(echo "$line" | awk '{for(i=1;i<=NF;i++){if($i ~ /rhost=/){print $i}}}' | cut -d '=' -f 2)
USER=$(echo "$line" | awk '{for(i=1;i<=NF;i++){if($i ~ /^user=/){print $i}}}' |cut -d '=' -f 2)

(6) 查詢IP的歸屬地信息

location=$(curl -s ipinfo.io/$IP | jq -r '" Country: \(.country), City: \(.city), Region: \(.region)"')

(7) 構(gòu)建消息內(nèi)容

    PAYLOAD=$(cat <<-EOF
{       
"msgtype": "markdown",
"markdown": {
"title":"監(jiān)控報警:異常登錄",
"text":"
##### Linux服務(wù)器監(jiān)控報警:異常登錄 \n
>  ##### <font color=#67C23A> 【登錄用戶】</font> :<font color=#FF0000> $USER</font>
>  ##### <font color=#67C23A> 【登錄IP】</font> :<font color=#FF0000> $IP </font> 
>  ##### <font color=#67C23A> 【IP歸屬地】</font> :<font color=#FF0000> $location </font> 
>  ##### <font color=#67C23A> 【告警時間】</font> :<font color=#FF0000> $(date +"%Y-%m-%d %H:%M:%S") </font> 
"
}
}
EOF
    )

(8) 把告警信息推送到釘釘

curl -s -H "Content-Type: application/json" -d "$PAYLOAD" "$WEBHOOK_URL" &>/dev/null

腳本使用

在要監(jiān)控的服務(wù)器上新建一個名為monitor_login.sh,把腳本內(nèi)容復(fù)制到文件中如下圖:

并為腳本賦予執(zhí)行權(quán)限,如下:

運行如下命令,啟動腳本:

root@didiplus:/home# ./monitor_login.sh

在另外一臺機器上模擬登錄失敗,這時,監(jiān)控服務(wù)器會出現(xiàn)如下圖所示:

然后,在釘釘群上可以看到如下告警信息:

總結(jié)

通過上述腳本,運維人員可以有效地監(jiān)控Linux服務(wù)器的登錄異常情況,及時發(fā)現(xiàn)并處理潛在的安全問題。該腳本通過解析系統(tǒng)日志,識別多次失敗的登錄嘗試和來自未知IP的登錄,并通過釘釘方式通知管理員,實現(xiàn)了對登錄異常的實時監(jiān)控。希望這篇教程能幫助到你,提高服務(wù)器的安全管理水平。

責任編輯:趙寧寧 來源: 攻城獅成長日記
相關(guān)推薦

2010-01-08 12:13:09

ibmdwDB2

2017-05-04 08:00:54

2023-11-21 08:57:16

2024-05-17 10:00:52

系統(tǒng)監(jiān)控日志記錄性能指標

2019-10-29 20:42:50

物聯(lián)網(wǎng)技術(shù)操作系統(tǒng)

2024-04-07 09:49:18

OpenAINATSStreamlit

2023-11-22 09:42:02

系統(tǒng)檢測

2024-10-29 16:18:32

YOLOOpenCV

2012-11-05 13:59:12

WebFdSafeJS

2011-03-22 16:28:59

2023-07-06 09:53:39

2014-09-03 11:26:11

2009-03-03 12:54:58

2009-09-29 10:39:04

Linuxlinux系統(tǒng)性能檢測

2009-11-30 10:50:24

Suse Linux

2011-01-18 11:31:37

2021-11-26 14:59:02

異常檢測網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)威脅

2009-09-04 10:21:00

2021-01-15 12:22:35

異常檢測工具

2013-05-06 17:08:00

Linux操作系統(tǒng)異常處理
點贊
收藏

51CTO技術(shù)棧公眾號