将 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中国 荣誉推出

相关内容

深圳开源申请基于协议模糊测...
金融界2025年6月27日消息,国家知识产权局信息显示,深圳开源互...
2025-06-27 21:11:59
舆情监测系统厂家有哪些,T...
舆情监测系统是一种利用互联网、社交媒体等渠道,对公众...
2025-05-31 16:58:22
构建监控系统-1-zabb...
优化的点?? zabbix 宏定义&#...
2025-05-30 05:57:29
动环监控4大优势,你知道几...
我国银行等一些金融机构的分布范围因城乡结构的独特原因,...
2025-05-29 12:26:08
Doris实战篇-Dori...
简介 本监控使用的doris版本是1.2.0 监控和报警 - Ap...
2025-05-29 06:38:42
K8S集群之-ETCD集群...
### 生产ETCD集群监控 核心指标 etcd服务存活状态...
2025-05-28 21:54:05

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...