Linux中國

將 Zeek 與 ELK 棧集成

在本雜誌 2022 年 3 月版發表的題為「用 Zeek 輕鬆實現網路安全監控」的文章中,我們研究了 Zeek 的功能,並學習了如何開始使用它。現在我們將把我們的學習經驗再進一步,看看如何將其與 ELK(即 Elasticsearch、Kibana、Beats 和 Logstash)整合。

為此,我們將使用一個叫做 Filebeat 的工具,它可以監控、收集並轉發日誌到 Elasticsearch。我們將把 Filebeat 和 Zeek 配置在一起,這樣後者收集的數據將被轉發並集中到我們的 Kibana 儀錶盤上。

安裝 Filebeat

讓我們首先將 Filebeat 與 Zeek 安裝在一起。使用 apt 來安裝 Filebeat,使用以下命令:

sudo apt install filebeat

接下來,我們需要配置 .yml 文件,它位於 /etc/filebeat/ 文件夾中:

sudo nano /etc/filebeat/filebeat.yml

我們只需要在這裡配置兩件事。在 Filebeat 輸入部分,將類型改為 log,並取消對 enabled:false 的注釋,將其改為 true。我們還需要指定存儲日誌的路徑,也就是說,我們需要指定 /opt/zeek/logs/current/*.log

完成這些後,設置的第一部分應該類似於圖 1 所示的內容。

Figure 1: Filebeat config (a)

第二件要修改的事情是在輸出下的 Elasticsearch 輸出部分,取消對 output.elasticsearchhosts 的注釋。確保主機的 URL 和埠號與你安裝 ELK 時配置的相似。我們把它保持為 localhost,埠號為 9200

在同一部分中,取消底部的用戶名和密碼的注釋,輸入安裝後配置 ELK 時生成的 Elasticsearch 用戶的用戶名和密碼。完成這些後,參考圖 2,檢查設置。

Figure 2: Filebeat config (b)

現在我們已經完成了安裝和配置,我們需要配置 Zeek,使其以 JSON 格式存儲日誌。為此,確保你的 Zeek 實例已經停止。如果沒有,執行下面的命令來停止它:

cd /opt/zeek/bin
./zeekctl stop

現在我們需要在 local.zeek 中添加一小行,它存在於 opt/zeek/share/zeek/site/ 目錄中。

以 root 身份打開該文件,添加以下行:

@load policy/tuning/json-logs.zeek

參考圖 3,確保設置正確。

Figure 3: local.zeek file

由於我們改變了 Zeek 的一些配置,我們需要重新部署它,這可以通過執行以下命令來完成:

cd /opt/zeek/bin
./zeekctl deploy

現在我們需要在 Filebeat 中啟用 Zeek 模塊,以便它轉發 Zeek 的日誌。執行下面的命令:

sudo filebeat modules enable zeek

我們幾乎要好了。在最後一步,配置 zeek.yml 文件要記錄什麼類型的數據。這可以通過修改 /etc/filebeat/modules.d/zeek.yml 文件完成。

在這個 .yml 文件中,我們必須提到這些指定的日誌存放在哪個目錄下。我們知道,這些日誌存儲在當前文件夾中,其中有幾個文件,如 dns.logconn.logdhcp.log 等等。我們需要在每個部分提到每個路徑。如果而且只有在你不需要該文件/程序的日誌時,你可以通過把啟用值改為 false 來捨棄不需要的文件。

例如,對於 dns,確保啟用值為 true,並且路徑被配置:

var.paths: [ 「/opt/zeek/logs/current/dns.log」, 「/opt/zeek/logs/*.dns.json」 ]

對其餘的文件重複這樣做。我們對一些我們需要的文件做了這個處理。我們添加了所有主要需要的文件。你也可以這樣做。請參考圖 4。

Figure 4: zeek.yml configuration

現在是啟動 Filebeat 的時候了。執行以下命令:

sudo filebeat setup
sudo service filebeat start

現在一切都完成了,讓我們移動到 Kibana 儀錶板,檢查我們是否通過 Filebeat 接收到來自 Zeek 的數據。

Figure 5: Dashboard of Kibana (Destination Geo)

進入儀錶板。你可以看到它所捕獲的數據的清晰統計分析(圖 5 和圖 6)。

Figure 6: Dashboard of Kibana (Network)

現在讓我們進入發現選項卡,通過使用查詢進行過濾來檢查結果:

event.module: "zeek"

這個查詢將過濾它在一定時間內收到的所有數據,只向我們顯示名為 Zeek 的模塊的數據(圖 7)。

Figure 7: Filtered data by event.module query

鳴謝

作者感謝 VIT-AP 計算機科學與工程學院的 Sibi Chakkaravarthy Sethuraman、Sudhakar Ilango、Nandha Kumar R.和Anupama Namburu 的不斷指導和支持。特別感謝人工智慧和機器人技術卓越中心(AIR)。

via: https://www.opensourceforu.com/2022/06/integrating-zeek-with-elk-stack/

作者:Tridev Reddy 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國