Zeek cluster fails with pcap_error: socket: Operation not permitted (pcap_activate)

Zeek cluster fails with pcap_error: socket: Operation not permitted (pcap_activate)

我正在尝试在 3 Ubuntu 18.04 LTS 主机上设置 Zeek IDS 集群 (v.3.2.0-dev.271) 但无济于事- 运行ning zeek deploy 命令失败,输出如下:

fatal error: problem with interface ens3 (pcap_error: socket: Operation not permitted (pcap_activate))

我遵循了 official documentation(充其量是非常通用的)并在 zeek 节点之间设置了无密码 SSH 身份验证。

我还预先在所有主机上创建了 /usr/local/zeek 路径,并授予 zeek 用户对该目录的完全权限。文档说 The Zeek user must be able to either create this directory or, where it already exists, must have write permission inside this directory on all hosts.

文档还说 on the worker nodes this user must have access to the target network interface in promiscuous mode.

我的 zeek 用户是所有 3 个节点上的 sudoer 和 netdev 组的成员。然而,集群部署失败。显然,当 zeekctl 与工作人员建立 SSH 连接时,它无法获取网络接口并设置上限。

最终我能够通过 this 文章成功 运行 集群 - 但是它要求您将整个集群设置为 root,我希望尽可能避免这种情况.

所以我的问题是,是否有明显明显的我遗漏的东西?据我所知,这个设置应该有效,否则我不知道如何在每个 SSH 命令前强制 zeekctl 运行 'sudo' 它应该对工作人员 运行 , 或者如何满足这个要求。

任何指导将不胜感激,谢谢!

我在独立设置时遇到了同样的错误。通过谷歌搜索发现了这个问题。更多谷歌搜索这个错误让我找到了一些博客,其中一个博客的评论提到了同样的错误。作者提到使用 setcap 授予二进制文件权限:

$sudo setcap cap_net_raw,cap_net_admin=eip /usr/local/zeek/bin/zeek

$sudo setcap cap_net_raw,cap_net_admin=eip /usr/local/zeek/bin/zeekctl

在 运行 他们两个之后,我的 zeek 实例现在 运行 成功了。

来源:https://www.ericooi.com/zeekurity-zen-part-i-how-to-install-zeek-on-centos-8/#comment-1586

所以,以防万一其他人偶然发现同样的问题 - 我弄清楚发生了什么。 我使用 Ansible 简化了集群部署(在任务级别使用 'become' 指令)并且在 运行 负责发出 zeekctl deploy 命令的处理程序时没有提升。 一旦我这样做了,Zeek 集群部署就成功了。