Ubuntu 20.04 中安装 Zeek 网络安全监控工具

Zeek,原名Bro,是Linux的网络安全监控工具。 它是一个免费、开源且灵活的工具,位于“传感器”或云平台上,可观察网络流量。 Zeek 监控并记录连接、发送和接收的数据包数量、有关 TCP 会话的属性以及其他有助于分析网络行为的元数据。 它可以帮助我们轻松地跨多个流和协议跟踪复杂事件。

在这篇文章中,我们将向我们展示 Ubuntu 20.04 上安装 Zeek 网络安全监控工具。

先决条件

  • 云平台上的全新 Ubuntu 20.04 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu 20.04 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到 Ubuntu 20.04 服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

第 2 步 – 安装 Zeek

默认情况下,Zeek 不包含在 Ubuntu 默认存储库中,因此我们将首先将 Zeek 存储库添加到我们的系统中。 使用以下命令安装所有必需的依赖项:

apt-get install curl gnupg2 wget -y

接下来,使用以下命令下载并添加 Zeek GPG 密钥:

curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_20.04/Release.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/security_zeek.gpg

接下来,使用以下命令将 Zeek 存储库添加到 APT:

echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_20.04/ /' | tee /etc/apt/sources.list.d/security:zeek.list

最后,更新存储库缓存并使用以下命令安装 Zeek:

apt-get update -y
apt-get install zeek -y

在安装过程中,我们将被要求提供一些后缀设置,如下所示:
选择 Internet 或本地邮件服务器
定义邮件名称

安装 Zeek 后,我们需要将 Zeek 添加到系统路径。 我们可以使用以下命令执行此操作:

echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc

接下来,使用以下命令激活 ~/.bashrc:

source ~/.bashrc

现在,使用以下命令验证 Zeek 版本:

zeek --version

我们应该得到以下输出:

zeek version 4.0.3

第 3 步 – 定义我们的网络

接下来,我们需要定义要监控的网络。 我们可以通过编辑 /opt/zeek/etc/networks.cfg 文件来定义它。

nano /opt/zeek/etc/networks.cfg

以下是默认值。 我们可以在文件末尾添加自己的网络:

10.0.0.0/8          Private IP space
172.16.0.0/12       Private IP space
192.168.0.0/16      Private IP space

完成后保存并关闭文件。

第 4 步 – 配置 Zeek 集群

默认情况下,Zeek 配置为在独立模式下运行。 在本节中,我们将在集群模式下配置 Zeek。

首先,编辑Zeek主配置文件:

nano /opt/zeek/etc/node.cfg

注释掉以下几行:

#[zeek]
#type=standalone
#host=localhost
#interface=eth0

在文件末尾添加以下行。

[zeek-logger]
type=logger
host=wer-server-ip
#
[zeek-manager]
type=manager
host=wer-server-ip
#
[zeek-proxy]
type=proxy
host=wer-server-ip
#
[zeek-worker]
type=worker
host=wer-server-ip
interface=eth0
#
[zeek-worker-lo]
type=worker
host=localhost
interface=lo

完成后保存并关闭文件,然后使用以下命令检查配置文件是否有任何错误:

zeekctl check

如果一切正常,我们应该得到以下输出:

zeek-logger scripts are ok.
zeek-manager scripts are ok.
zeek-proxy scripts are ok.
zeek-worker scripts are ok.
zeek-worker-lo scripts are ok.

接下来,使用以下命令部署 Zeek 配置:

zeekctl deploy

我们应该得到以下输出:

starting logger ...
starting manager ...
starting proxy ...
starting workers ...

第 5 步 – 验证 Zeek 的状态

我们现在可以使用以下命令检查 Zeek 实例的状态:

zeekctl status

我们应该得到以下输出:

Name         Type    Host             Status    Pid    Started
zeek-logger  logger  wer-server-ip     running   10479  25 Jul 06:34:08
zeek-manager manager wer-server-ip     running   10529  25 Jul 06:34:10
zeek-proxy   proxy   wer-server-ip     running   10579  25 Jul 06:34:12
zeek-worker  worker  wer-server-ip     running   10648  25 Jul 06:34:14
zeek-worker-lo worker  localhost        running   10650  25 Jul 06:34:14

此时,Zeek 会根据配置文件开始分析流量,并将日志写入 /opt/zeek/logs/current 目录。

我们可以使用以下命令检查所有生成的日志文件:

ls -l /opt/zeek/logs/current/

我们应该看到以下输出:

-rw-r--r-- 1 root zeek  1780 Jul 25 06:36 broker.log
-rw-r--r-- 1 root zeek  2346 Jul 25 06:36 cluster.log
-rw-r--r-- 1 root zeek   578 Jul 25 06:36 conn.log
-rw-r--r-- 1 root zeek 28733 Jul 25 06:36 loaded_scripts.log
-rw-r--r-- 1 root zeek   596 Jul 25 06:36 ntp.log
-rw-r--r-- 1 root zeek   187 Jul 25 06:36 packet_filter.log
-rw-r--r-- 1 root zeek   601 Jul 25 06:36 stats.log
-rw-r--r-- 1 root zeek     0 Jul 25 06:36 stderr.log
-rw-r--r-- 1 root zeek   188 Jul 25 06:36 stdout.log
-rw-r--r-- 1 root zeek   482 Jul 25 06:36 weird.log

运行以下命令检查连接日志。

tail /opt/zeek/logs/current/conn.log

样本输出:

1627194994.735281	Cu51ph1SpnaI5e8VGe	184.188.36.2	56921	wer-server-ip	445	tcp	-	0.000036	0	0	REJ	F	F	0	Sr	1	52	1	40	-
1627194997.416217	CEMJC91xoEHySwvNdg	wer-server-ip	47762	wer-server-ip	47466	tcp	-	-	-	-	OTH	FF	0	CcCc	0	0	0	0	-
1627194998.422707	C9lEWO2Cka3rN7kafa	wer-server-ip	46316	wer-server-ip	47761	tcp	-	-	-	-	OTH	FF	0	CcCc	0	0	0	0	-
1627195000.441681	Cw8Uy5wH7AyZlUxg	wer-server-ip	46310	wer-server-ip	47761	tcp	-	-	-	-	OTH	FF	0	CcCc	0	0	0	0	-

运行以下命令检查集群日志:

tail /opt/zeek/logs/current/cluster.log

样本输出:

1627194993.480149	zeek-proxy	got hello from zeek-worker (37A494EB63B75E2A52F1EA47CA05933C608362F3#13744)
1627194993.506139	zeek-proxy	got hello from zeek-worker-lo (78A849E99E95C3EB4A0E457797D42C13BAFF3E14#13742)
1627194993.506938	zeek-manager	got hello from zeek-worker (37A494EB63B75E2A52F1EA47CA05933C608362F3#13744)

第 6 步 – 检查 Zeek 节点进程

我们还可以检查每个节点上运行的进程。

要查看 zeek-manager 节点的运行进程,请运行以下命令:

zeekctl ps.zeek zeek-manager

我们应该得到以下输出:

        USER         PID    PPID %CPU %MEM    VSZ   RSS TT       S  STARTED     TIME COMMAND
>>> wer-server-ip
   (-) root       13574   13568  1.7  2.1 1263568 87912 ?       S 06:36:26 00:00:01 zeek
   (+) root       13624   13618  1.5  2.2 642620 88836 ?        S 06:36:27 00:00:01 zeek
   (-) root       13673   13667  1.3  2.1 640932 87224 ?        S 06:36:29 00:00:01 zeek
   (-) root       13742   13732  2.1  5.4 771956 218288 ?       S 06:36:31 00:00:01 zeek
   (-) root       13744   13731  2.2  5.4 772548 219764 ?       S 06:36:31 00:00:02 zeek

在这篇文章中,我们学习了 Ubuntu 20.04 上安装和配置 Zeek 网络安全监控工具。 有关 Zeek 配置的更多信息,请访问 Zeek 文档。 立即在 的专用服务器托管上开始使用 Zeek!

© 版权声明
THE END
喜欢就支持一下吧
点赞14分享
评论 抢沙发

请登录后发表评论