Кластер 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/zeek
path на всех хостах и предоставил пользователю 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