歡迎來到家庭安全的世界,在這里,保護你的數字資產是重中之重。在當今這個互聯互通的時代,建立一個強大的防御系統來檢測和應對潛在威脅至關重要。
這就是為什么我們要在這里引導你完成一個激動人心的教程,教你如何使用Wazuh——一個令人難以置信的開源安全監控平臺——在樹莓派上構建一個安全的網絡。但等等,還有更多!我們還將通過Telegram的力量,為你創建一個便捷的通知中心,以便即時接收警報和更新。
完成本教程后,你將擁有一個可靠且經濟實惠的解決方案,用于監控網絡的安全性,并通過實時通知讓你隨時了解情況。無論你是小企業主、家庭網絡愛好者,還是重視隱私和安心的人——我們都能滿足你的需求!
這個分步指南將為你提供加固數字防御所需的知識和工具。
拿起你的樹莓派,系好安全帶——是時候讓你的網絡變得更安全、更智能、更酷炫了。
硬件設備
沒有主角,這個教程可難以進行:
樹莓派4 Model B——8GB RAM
Micro SD卡——理想情況下是128GB,但32GB也可以
你喜歡的樹莓派外殼
注意事項:Wazuh宣布,對于1-25個代理,我們需要至少8GB RAM;對于90天的監控,需要50GB存儲空間。
軟件要求
對于樹莓派,我們將使用Ubuntu Server 22.04.5 LTS(64位)
為了安裝鏡像,我強烈推薦使用Raspberry Pi Imager。
它基本上讓整個安裝過程變得簡單得多,因為你無需在線搜索所需的鏡像,它本身就提供了一個完整的列表:
如果你選擇這個選項:
1.選擇操作系統 > 其他通用操作系統 > Ubuntu > Ubuntu Server 22.04.5 LTS(64位)
2.選擇存儲設備 > 選擇你的SD卡
3.在點擊“寫入”之前——點擊右下角的設置,你以后會感謝我的:

樹莓派鏡像
在這里,你可以預設SSH訪問,以及樹莓派訪問你的WiFi的方式,這基本上可以避免你手動創建所有openssh-server相關的東西。
免責聲明:對于這里的安全專業人士來說,使用密碼認證進行SSH連接當然不是最佳實踐,使用公鑰密碼保護會更好,但好吧,讓我們為初學者保持簡單。
專業提示:最初,我不會選擇“wazuh”作為主機名,因為這可能會幫助網絡上的某人識別你的寶貴資產。
最后,點擊寫入按鈕,事情就要開始熱起來了
我的樹莓派在哪里?
在將全新的操作系統插入樹莓派后,你可能需要讓它幾分鐘時間來連接到你的網絡。
如果你在網絡方面還是個新手,你可能會想知道如何在網絡上找到你的樹莓派。好吧,讓我給你一個簡單的方法:
nmap192.168.1.1-254
這應該會列出你本地網絡上的所有設備,你可以在其中找到我們的主機名“wazuh”。
Wazuh安裝
關于在樹莓派上安裝Wazuh,有幾點需要了解。
最初,Wazuh提供了一個現成的腳本,讓你能夠在幾分鐘內安裝完整的Wazuh包,但這基本上適用于amd架構,而樹莓派實際上使用的是arm架構。
雖然這個快捷方式對我們來說不可用,但沒關系,樹莓派近年來取得了巨大的改進,讓我們能夠明智地利用投資的8GB RAM。
一體化部署——Elastic Stack
這是我們今天要實現的架構。
一體化部署--由Wazuh提供
下面將介紹的步驟適用于Wazuh 4.4版本,并分為以下幾個部分:
1.安裝先決條件——安裝需要一些額外的軟件包,如curl或unzip,這些將在后續步驟中使用。然而,如果服務器上已經安裝了curl和unzip,則可以跳過此步驟。
2.安裝Elasticsearch——Elasticsearch是一個高度可擴展的全文搜索和分析引擎。
3.安裝Wazuh服務器——Wazuh服務器收集并分析來自部署的代理的數據。它運行Wazuh管理器、Wazuh API和Filebeat。設置Wazuh的第一步是將Wazuh倉庫添加到服務器上,然后是管理器本身。
4.安裝Filebeat——Filebeat是Wazuh服務器上的工具,用于將警報和歸檔事件安全地轉發到Elasticsearch。
5.安裝Kibana——Kibana是一個靈活且直觀的Web界面,用于挖掘和可視化存儲在Elasticsearch中的事件和歸檔。
無需我從官方文檔中大量復制粘貼,他們會比我在這篇文章中更新得更及時。請查看這些分步指南,并確保選擇了正確的軟件包管理器以及系統和服務管理器。
在我們的情況下,由于我們使用的是Ubuntu Server,你將使用apt和systemctl。
部署你的代理——你的私人間諜
你現在已經有了第一個Wazuh服務器,儀表板類似于以下內容:
Wazuh 儀表板
但現在是時候安裝你的第一個代理了
假設你是一個普通公民,你在家里應該運行的是MacOS或Windows。(Linux用戶,你們好)。對你來說有個好消息,代理的安裝對于這兩個操作系統都有GUI安裝程序:
Windows代理
MacOS代理
l
在兩種情況下,你都需要運行可執行文件,然后就好了!好吧,并不完全是這樣,你現在需要讓你的代理明白它應該向誰報告。基本上,Wazuh服務器在哪里?對你來說,這個階段很容易,因為你已經知道樹莓派的IP地址了。假設地址是192.168.1.43。
要注冊代理,你有兩種方法:
1.通過代理配置注冊
2.通過管理器API注冊
由于我們是真正的OG,我們將選擇第一種方法:
MacOS & Linux
1.以root用戶身份啟動終端,編輯Wazuh代理配置文件/Library/Ossec/etc/ossec.conf。
2.在部分中包含Wazuh管理器IP地址:
MANAGER_IP (Here your192.168.1.43)
Windows
邏輯相同,區別在于代理的位置不同,因為Wazuh代理安裝目錄取決于主機的架構:
對于64位系統:C:\Program Files (x86)\ossec-agent
對于32位系統:C:\Program Files\ossec-agent
使用管理員賬戶,在安裝目錄中修改Wazuh代理配置文件ossec.conf。
給Wazuh幾分鐘時間來獲取數據,然后就開始吧!儀表板應該開始接收數據了。
Telegram——你的個人通知中心
現在你已經有了SIEM(安全信息和事件管理)系統,是時候為你提供一個實時通知系統了。Wazuh提供了與Slack、Jira或電子郵件的集成,但說實話,這絕對不是在家里接收安全事件通知的最舒適方式。
創建你的Telegram機器人
你可能會認為創建一個機器人會讓你陷入一系列編碼和數小時的API文檔閱讀中。實際上,這就像在Telegram上發送一條消息一樣簡單:只需聯系BotFather。
你可以看到一些簡單的命令,這些命令將允許你管理你的機器人:
來自Telegram的BotFather
然后創建你的機器人,并獲取你的HTTP API令牌:
獲取你的 API Token
如何管理與Telegram的自定義集成?
對于這項任務,有兩個重要的位置需要了解:
本地配置:/var/ossec/etc/ossec.conf——Wazuh的配置文件所在位置
集成位置:/var/ossec/integrations/——你找到集成文件的位置
為了簡化操作,一旦你創建了集成,你需要通過引用它來讓本地配置知道這個自定義集成的存在。
腳本要求
要讓腳本工作,有兩個要求:
安裝requests包,因為我們的Python腳本將向Telegram API發出調用
pip3install requests
你需要你的Telegram CHATID。在找到ID之前,確保向你的機器人發送一條“hello”消息,以便在你們之間創建一個聊天。
https://api.telegram.org/bot/getUpdates
這將給你一個類似以下的結果:
{"ok":true,"result":[{"update_id":534302469,"message":{"message_id":2,"from":{"id":38475931,"is_bot":false,"?rst_name":"xxxxxx","last_name":"xxxxxx","username":"xxxxxx","language_code":"ua"},
自定義集成的腳本
無需進一步解釋,進入/var/ossec/integrations/并執行以下命令:
nanocustom-telegram
復制/粘貼以下腳本(別忘了更改ChatID):
#!/usr/bin/env python3# -*- coding: utf-8 -*-importsysimportjsontry: importrequestsexceptException: print("No module 'requests' found. Install: pip3 install requests") sys.exit(1)CHAT_ID ="xxxxxxxx"defcreate_message(alert_json): # Get alert information title = alert_json['rule']['description']if'description'inalert_json['rule']else'' description = alert_json['full_log']if'full_log'inalert_jsonelse'' description.replace("\\n","\n") alert_level = alert_json['rule']['level']if'level'inalert_json['rule']else'' groups =', '.join(alert_json['rule']['groups'])if'groups'inalert_json['rule']else'' rule_id = alert_json['rule']['id']if'rule'inalert_jsonelse'' agent_name = alert_json['agent']['name']if'name'inalert_json['agent']else'' agent_id = alert_json['agent']['id']if'id'inalert_json['agent']else'' # Format message with markdown msg_content =f'*{title}*\n\n' msg_content +=f'_{description}_\n' msg_content +=f'*Groups:*{groups}\n'iflen(groups) >0else'' msg_content +=f'*Rule:*{rule_id}(Level{alert_level})\n' msg_content +=f'*Agent:*{agent_name}({agent_id})\n'iflen(agent_name) >0else'' msg_data = {} msg_data['chat_id'] = CHAT_ID msg_data['text'] = msg_content msg_data['parse_mode'] ='markdown' # Debug information withopen('/var/ossec/logs/integrations.log','a')asf: f.write(f'MSG:{msg_data}\n') returnjson.dumps(msg_data)# Read configuration parametersalert_file =open(sys.argv[1])hook_url = sys.argv[3]# Read the alert filealert_json = json.loads(alert_file.read())alert_file.close()# Send the requestmsg_data = create_message(alert_json)headers = {'content-type':'application/json','Accept-Charset':'UTF-8'}response = requests.post(hook_url, headers=headers, data=msg_data)# Debug informationwithopen('/var/ossec/logs/integrations.log','a')asf: f.write(f'RESPONSE:{response}\n')sys.exit(0)
(如果你想了解更多關于腳本的信息,請隨時查看以下文章,其中@jesusjimsa在提供腳本和詳細解釋方面做得非常出色。)
讓腳本可執行,并賦予它適當的權限:
chmod750 /var/ossec/integrations/custom-telegramchownroot:wazuh /var/ossec/integrations/custom-telegram
重要警告——集成的名稱應以“custom-”開頭,否則我們親愛的Wazuh將不明白你在期待什么。
最后但同樣重要的是,是時候通過更新/var/ossec/etc/ossec.conf來完成設置了:
通過運行以下命令重啟Wazuh管理器:systemctl restart wazuh-manager.
重啟后,你將看到你的第一條通知,在代理上執行root命令時創建的通知:
原文鏈接:
https://medium.com/@henrion.frn/get-your-home-network-secured-with-raspberry-pi-wazuh-2023-edition-c7ac2044df3e
-
網絡安全
+關注
關注
11文章
3334瀏覽量
61301 -
開源
+關注
關注
3文章
3651瀏覽量
43688 -
樹莓派
+關注
關注
121文章
1983瀏覽量
107248
發布評論請先 登錄
數字家庭網絡組網方式

基于多Agent系統的智能家庭網絡研究
【MiCOKit申請】智能家庭網關
如何構建一個無縫/安全的智能家庭網絡
家用網絡的網絡安全
具有安全檢測和處置的智能家庭網絡模型

評論