本教程适用于以下操作系统版本
- Ubuntu 24.04 (Noble Numbat)
- Ubuntu 22.04 (Jammy Jellyfish)
本页内容
- 准备工作
- 开始之前
- 添加 Zeek 软件源
- 安装 Zeek
- 配置 Zeek 服务器
- 测试 Zeek 状态
- 结语
Zeek 是一款免费、开源且全球领先的安全监控工具,可用作网络入侵检测系统和网络流量分析器。安全专业人员使用它来检测可疑特征并跟踪 DNS、HTTP 和 FTP 活动。Zeek 通过将网络活动记录到单独的文件中来工作。该文件包含 MIME 类型、服务器响应、DNS 请求、HTTP 会话、请求的 URI、SSL 证书等所有重要信息。
本教程将向你展示如何在 Ubuntu 22.04 上安装 Zeek 网络安全工具。
准备工作
- 一台运行 Ubuntu 22.04 的服务器,内存至少 2 GB。
- 服务器已配置 root 密码。
开始之前
首先,你必须将所有系统软件包更新到最新版本。可以通过运行以下命令来更新所有软件包。
apt update -y
apt upgrade -y
更新完所有系统软件包后,使用以下命令安装一些必需的软件包。
apt install curl gnupg2 wget -y
添加 Zeek 软件源
默认情况下,Ubuntu 默认软件源中不包含 Zeek 软件包。因此你需要将 Zeek 软件源添加到 APT。
首先,使用以下命令下载并添加 Zeek 的 GPG 密钥。
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_22.04/Release.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/security_zeek.gpg
接下来,使用以下命令添加 Zeek 软件源。
echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_22.04/ /' | tee /etc/apt/sources.list.d/security:zeek.list
接下来,使用以下命令更新软件源缓存。
apt update -y
安装 Zeek
现在只需运行以下命令即可安装 Zeek 工具。
apt install zeek -y
安装过程中,系统会提示你选择邮件服务器,如下所示:

选择 local only 并按 Enter 键。系统会要求你提供邮件服务器的主机名。

输入你的主机名并按 Enter 键以完成安装。
接下来,你需要将 Zeek 的安装路径添加到系统变量中。可以使用以下命令添加。
echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc
接下来,使用以下命令使系统变量生效。
source ~/.bashrc
现在可以使用以下命令验证 Zeek 版本:
zeek --version
你将看到如下输出。
zeek version 5.1.1
配置 Zeek 服务器
首先,编辑 Zeek 网络配置文件并定义你的网络。
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
保存并关闭文件,然后编辑 Zeek 主配置文件。
nano /opt/zeek/etc/node.cfg
注释掉以下行:
#[zeek] #type=standalone #host=localhost #interface=eth0
然后,在文件末尾添加以下配置。
[zeek-logger] type=logger host=your-server-ip # [zeek-manager] type=manager host=your-server-ip # [zeek-proxy] type=proxy host=your-server-ip # [zeek-worker] type=worker host=your-server-ip interface=eth0 # [zeek-worker-lo] type=worker host=localhost interface=lo
保存文件,然后使用以下命令验证 Zeek 配置。
zeekctl check
你将看到如下输出。
Hint: Run the zeekctl "deploy" command to get started. 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
你将看到如下输出。
checking configurations ... installing ... creating policy directories ... installing site policies ... generating cluster-layout.zeek ... generating local-networks.zeek ... generating zeekctl-config.zeek ... generating zeekctl-config.sh ... stopping ... stopping workers ... stopping proxy ... stopping manager ... stopping logger ... starting ... starting logger ... starting manager ... starting proxy ... starting workers ...
测试 Zeek 状态
至此,Zeek 已安装并配置完成。现在可以使用以下命令查看 Zeek 状态。
zeekctl status
你将看到如下输出。
Name Type Host Status Pid Started zeek-logger logger 209.23.10.179 running 58935 19 Jan 05:37:02 zeek-manager manager 209.23.10.179 running 58985 19 Jan 05:37:03 zeek-proxy proxy 209.23.10.179 running 59035 19 Jan 05:37:05 zeek-worker worker 209.23.10.179 running 59107 19 Jan 05:37:06 zeek-worker-lo worker localhost running 59104 19 Jan 05:37:06
Zeek 将其日志存储在 /opt/zeek/logs/current/ 目录中。你可以使用以下命令查看所有日志文件。
ls -l /opt/zeek/logs/current/
你将看到如下输出。
total 72 -rw-r--r-- 1 root zeek 1735 Jan 19 05:37 broker.log -rw-r--r-- 1 root zeek 2166 Jan 19 05:37 cluster.log -rw-r--r-- 1 root zeek 187 Jan 19 05:37 packet_filter.log -rw-r--r-- 1 root zeek 6158 Jan 19 05:37 conn.log -rw-r--r-- 1 root zeek 31212 Jan 19 05:37 loaded_scripts.log -rw-r--r-- 1 root zeek 666 Jan 19 05:37 reporter.log -rw-r--r-- 1 root zeek 601 Jan 19 05:37 stats.log -rw-r--r-- 1 root zeek 0 Jan 19 05:37 stderr.log -rw-r--r-- 1 root zeek 204 Jan 19 05:37 stdout.log -rw-r--r-- 1 root zeek 266 Jan 19 05:37 telemetry.log -rw-r--r-- 1 root zeek 960 Jan 19 05:37 weird.log
要查看 Zeek 集群日志,运行以下命令。
tail /opt/zeek/logs/current/cluster.log
你将看到如下输出。
1674106627.672399 zeek-proxy got hello from zeek-worker-lo (62498247-62ce-5763-b201-a0f0e52b71f9) 1674106627.744144 zeek-proxy got hello from zeek-worker (0c8c7207-f1a1-540d-aee0-2b55cf76e69f) 1674106627.674594 zeek-manager got hello from zeek-worker-lo (62498247-62ce-5763-b201-a0f0e52b71f9) 1674106627.752439 zeek-manager got hello from zeek-worker (0c8c7207-f1a1-540d-aee0-2b55cf76e69f) 1674106627.672635 zeek-worker-lo got hello from zeek-proxy (b0734910-55c0-5aa5-b5fb-abdf7c083d3e) 1674106627.674358 zeek-worker-lo got hello from zeek-manager (b4a3890a-a470-5a1d-b2c7-fc48fd683ff9) 1674106627.666564 zeek-worker-lo got hello from zeek-logger (405e0618-3699-5b85-ac39-0af2743c0aab) 1674106627.708986 zeek-worker got hello from zeek-manager (b4a3890a-a470-5a1d-b2c7-fc48fd683ff9) 1674106627.699878 zeek-worker got hello from zeek-proxy (b0734910-55c0-5aa5-b5fb-abdf7c083d3e) 1674106627.706099 zeek-worker got hello from zeek-logger (405e0618-3699-5b85-ac39-0af2743c0aab)
要查看 Zeek 连接日志,运行以下命令。
tail /opt/zeek/logs/current/conn.log
你将看到如下输出。
1674106667.717311 Camkki2oVKl4J9dgpd 209.23.10.179 47762 209.23.10.179 56180 tcp - - - - OTH FF 0 CccC 0 0 0 0 - 1674106667.742276 CZ7aKU3nUfkjSSN5x6 209.23.10.179 56182 209.23.10.179 47762 tcp - - - - OTH FF 0 CcCc 0 0 0 0 - 1674106667.742332 Cd58V813jeHygHXQS2 209.23.10.179 56176 209.23.10.179 47762 tcp - - - - OTH FF 0 CcCc 0 0 0 0 - 1674106668.621860 CZlcm316EidXbp4aMj 209.23.10.179 41430 209.23.10.179 47761 tcp - - - - OTH FF 0 Cc 0 0 0 0 -
结语
恭喜!你已成功在 Ubuntu 22.04 服务器上安装 Zeek 安全监控工具。希望本文能帮助你理解网络架构并调查任何恶意活动。如有任何疑问,欢迎向我提问。