将 Zeek 与 ELK 栈集成
创始人
2024-03-02 11:37:05
0

Zeek 是一个开源的网络安全监控工具。本文讨论了如何将 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中国 荣誉推出

相关内容

AI“断案”、黄金救援.....
高空抛物、电瓶车上楼、老人意外跌倒……在小区治理与安全防护的工作中...
2025-11-14 23:15:40
阜阳市颍州区:启用AI市容...
“这位商贩您好,您属于违规占道经营,请立即转移到合适区域……”近日...
2025-11-12 17:44:32
辽宁一农户17只羊一夜之间...
极目新闻记者 赵贝 近日,有网络视频显示,在辽宁阜新彰武县,一农户...
2025-11-11 22:15:57
AI搜索摘要优化实战:让你...
当用户在AI搜索引擎中提问时,你的品牌是否能被生成式摘要“点名推荐...
2025-11-01 06:14:24
AI将薯片误判为枪,美国一...
据外媒10月26日报道,近日,美国马里兰州一名16岁高中生因口袋里...
2025-10-27 13:45:56
罗普特获得发明专利授权:“...
证券之星消息,根据天眼查APP数据显示罗普特(688619)新获得...
2025-10-15 06:45:41

热门资讯

《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何理解Apache 2.0许... 提要:Apache 2.0许可证中的专利许可条款使得开源代码可以安全使用,但它经常被误解。Apach...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...