Кластер Zeek выходит из строя с pcap_error: socket: операция не разрешена (pcap_activate)

Я пытаюсь настроить кластер Zeek IDS (v.3.2.0-dev.271) на 3 хостах Ubuntu 18.04 LTS, но безрезультатно - работаетzeek deploy команда завершается ошибкой со следующим выводом:

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

Я следил за официальной документацией (которая в лучшем случае является довольно общей) и настроил SSH-аутентификацию без пароля между узлами zeek.

Я также заранее создал /usr/local/zeekpath на всех хостах и ​​предоставил пользователю 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 является sudoer И членом группы netdev на всех 3 узлах. Однако развертывание кластера не удается. Очевидно, когда zeekctl устанавливает SSH-соединение с рабочими, он не может получить доступ к сетевым интерфейсам и установить ограничения.

В конце концов, я смог успешно запустить кластер, следуя этой статье, однако она требует, чтобы вы настроили весь кластер как root, чего я бы хотел избежать, если это вообще возможно.

Итак, мой вопрос: есть ли что-то явно очевидное, чего мне не хватает? Насколько мне известно, эта настройка должна работать, в противном случае я не знаю, как заставить zeekctl запускать sudo перед каждой командой SSH, которую он должен запускать для рабочих, или как удовлетворить это требование.

Будем очень признательны за любые рекомендации, спасибо!

3 ответа

Решение

Итак, на случай, если кто-то еще наткнется на ту же проблему - я понял, что происходит. Я упростил развертывание кластера с помощью Ansible (используя директиву "стать" на уровне задачи) и не повышал уровень при запуске обработчиков, ответственных за выдачуzeekctl deployкоманда. Как только я это сделал, развертывание Zeek Cluster прошло успешно.

У меня была такая же ошибка при автономной установке. Нашел этот вопрос в поисковике. Дальнейшие поиски ошибки привели меня к нескольким блогам, включая тот, в котором в комментариях упоминается та же ошибка. Автор упомянул о предоставлении разрешений для двоичных файлов с помощью 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/

На самом деле, если вы видите ящики с pcap pkg https://crates.io/crates/pcap , они упомянули о предоставлении определенных разрешений для файла сборки.

Примечание. Если вы не работаете с правами root, вам необходимо настроить следующие возможности:

      sudo setcap cap_net_raw,cap_net_admin=eip path/to/bin
Другие вопросы по тегам