Fortigate Login登入 LINE 訊息通知

在設定 Fortigate 50E 的時候,曾想過,之前都會遇到一些無聊的攻擊行為,像是嘗試帳號,或是試密碼等這一些行為,有沒有可能 FG50E 當有些狀況的時候,發出告警,提醒身為管理者的我(?),再多多關注目前設備的狀況~

像是下圖這樣,一有登入失敗的狀況就可讓 LINE 收到些通知
Login failed LINE message

倘若要做到上述的 Line 訊息通知的情境,需要先準備兩件事情
1. 首先要有 IFTTT 的帳號,目前 IFTTT 免費的帳號就能做到這些事情!
2. 就是要有 LINE 帳號,稍後會在 IFTTT 上與 LINE 連動,才能夠過 IFTTT 將訊息透過 LINE 平台讓我們可收到 LINE 訊息
接下來先說明整個流程及預計的行為,首先是 Fortigate 本身有 automation 功能(FortiOS 6.0 以後才有,正好手邊的 FG50E 是 6.2.x,是有支援的),然後透過 automation,讓 Fortigate 在一些形況下觸發一些行為,像是 事件觸發後發出 E-mail 這類的,而我是會讓 FG50E 事件觸發後,將一些訊息丟至 IFTTT 上的 webhooks,進而再透過 IFTTT 上與 LINE 的連動,讓我可以收到事件通知的 LINE 訊息。了解流程後,就立刻開始吧~~

首先先前往 IFTTT 網站,IFTTT 雖然都是英文的,但不會太複雜,申請帳號的部分,很直覺就輸入 Email 電子郵件信箱及密碼後,之後再去收信來啟動帳號就完成,登入帳號之後,第一個畫面就下圖這樣子沒有任何專案!點選右上角的 ”Create” 來新增一個應用(Applet)
IFTTT create New applet

接下來可以看到 IFTTT 主要用意(If This… Then that),先來新增一個 IF This,點選右邊的 “Add”
IFTTT ceate applet add

在搜尋列輸入 “webhooks”,可以看到 “Webhooks”,點選 “Webhooks”
IFTTT add webhooks

Webhooks 的觸發選擇 “Recevice a web request” 的方式即可

接下來需要與 Webhooks 服務連線,點選 “Connect” 繼續
IFTTT webhooks connect

接下我們要為 Event 命名,取個自己看得懂即可,像是我就直接使用 “fortigate”,確認名稱無誤後,點選 “Create trigger” 繼續
IFTTT add webhooks trigger

接下來要來設定 “Then That” 的後續行為,點選 “Add” 來新增
IFTTT add Then This

服務這邊我們輸入 Line 來搜尋,第一個 LINE 就是了!
IFTTT add LINE service

LINE這就是要送訊息出來,點選 “Send message”
IFTTT LINE send message

接下來 IFTTT 會需要與 LINE 連動,點選 “Connect” 繼續
IFTTT LINE connect

這邊應該會另外開一個視窗,我們輸入 LINE 的帳號及密碼登入,或用手機可直接使用 “透過行動條碼登入”,倘若是點選 “透過行動條碼登入”,會出現一個 QR code 的視窗畫面,手機開啟 LINE 直接掃描,後續再完成驗證碼的驗證後就能下一步
IFTTT LINE login

IFTTT 會 LINE 連動,點擊 “同意並連動”
IFTTT LINE login connect

接著要設定 LINE訊息相關的欄位,Recipient 選擇 1 對 1 聊天接收,Message 保留就 Value1 就好,一個 Value 1 就可以接收所有訊息,確認完就 “Create action”
IFTTT LINE action fields

接下來會回到建立應用,點選 “Continue”
IFTTT applet continue

確認整體應用完成後,點選 “Finish“
IFTTT applet finish

點選 ”Webhooks“ 圖示,進入 webhooks 相關設定
IFTTT edit webhooks

點選中間的 “Documentation”,來獲取 web request 的 URL 相關設
IFTTT webhooks Documentation

其中 Your Key,是非常重要的,而底下有一個 “Test It” 測試,中間有個 {event} 改成剛剛輸入的 Event Name,如我剛剛設定的 fortigate,並按下 “Test It”
IFTTT webhooks key test

這時,Line 就會收到訊息了~
IFTTT LINE message

接下來,我們回到 Fortigate 的 GUI 上,Security Fabric > Automation,目前底下都是空的,點選上方的 “Create New” 來建立一條新的規則
Fortigate security fabric automation

Name:這邊輸入自己容易辨識的名稱
Trigger:選擇 FortiOS Event Log,底下的 Event 選擇 Admin login failed
Action:選擇 Webhook
fortigate automation trigger fortiOS event log, admin login failed

往下繼續設定 Webhook 相關的設定,
Name:輸入自己看得懂的名稱,如:Webhook_to_Line
Protocol:選擇 HTTPS
Method:選擇 POST
URI:輸入剛剛在 IFTTT 中 webhooks 的 Documentation 的 超連結網址,輸入 https:// 之後的,最後記得再補上一個 ?
HTTP body:可參考 Fortigate 6.2.15 Log Message Refernece 文件,以下是我使用的範例

value1=

FG50E 登入失敗通知
日期:%%log.date%%
時間:%%log.time%%
帳號:%%log.user%%
來源 IP:%%log.srcip%%
目的 IP:%%log.dstip%%
方式:%%log.method%%
狀態:%%log.status%%
動作:%%log.action%%
訊息:%%log.msg%%
fortigate automation trigger fortiOS event log, scrip, dstip, logmsg

接下來便可來測試是否 Work,我新增了兩個 Automation 的規則,登入失敗是一個規則,登入成功是另一個規;不論是登入失敗或登入成功,我的 Line 訊息都會收相關的通知
fortigate login log LINE message

透過 Fortigate 上的 Automation,能把這些 Login 的紀錄撈出來,後送給 IFTTT 的 webhooks 來執行,再進而達到即時通知的 LINE 訊息通知,這只是其中的一種應用,倘若還有什麼應用也可來集思廣益下,也希望大家的網路順暢~

這個網誌中的熱門文章

線上看 CAD 圖檔 DWG, DWF 的網站

VirtualBox 橋接介面卡 未選取/無法選取 故障排除

Windows 10 網路磁碟機 網路芳鄰 無法存取...