Сетевой мониторинг · 6 min read · Sep 12, 2025
Как установить инструмент мониторинга сетевой безопасности Zeek на Ubuntu 24.04

Zeek (ранее Bro) — это бесплатная и открытая платформа для мониторинга сетевой безопасности. Это мощный пассивный анализатор сетевого трафика, который исследует подозрительную или вредоносную активность. Zeek может использоваться как монитор сетевой безопасности (NSM) и поддерживает широкий спектр анализа трафика, от области безопасности до измерения производительности и устранения неполадок.
В этом руководстве вы узнаете, как установить инструмент мониторинга сетевой безопасности Zeek на сервер Ubuntu 24.04. Вы также узнаете, как запустить Zeek в режиме кластера, как парсить журналы Zeek с помощью команды ‘zeek-cut’ и как генерировать и парсить журналы Zeek в формате JSON с помощью утилиты ‘jq’.
Предварительные требования
Перед тем как начать, убедитесь, что у вас есть следующее:
- Сервер Ubuntu 24.04
- Непривилегированный пользователь с правами администратора
Установка Zeek
Zeek — это инструмент мониторинга сетевой безопасности для операционных систем на базе Unix. Его можно установить несколькими способами. В этом примере вы установите Zeek на сервер Ubuntu 24.04 с помощью менеджера пакетов APT из службы сборки OpenSUSE.
Сначала выполните команду ниже, чтобы добавить репозиторий Zeek в вашу систему Ubuntu.
echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.listТеперь загрузите и добавьте GPG-ключ для репозитория Zeek с помощью команды ниже.
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_24.04/Release.key | \
gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/nullПосле добавления GPG-ключа и репозитория Zeek выполните команду ‘ apt ‘ ниже, чтобы обновить ваши пакеты Ubuntu.
sudo apt updateТеперь вы можете выполнить команду ‘ apt ‘ ниже, чтобы проверить пакет ‘ zeek ‘. Вы увидите несколько версий Zeek.
sudo apt search zeek
sudo apt-cache policy zeek
Далее установите Zeek с помощью следующей команды ‘ apt ‘. В этом примере вы установите Zeek LTS.
sudo apt install zeekВведите ‘ Y ‘, чтобы подтвердить установку.

После завершения установки добавьте директорию ‘ /opt/zeek/bin ‘ в системный PATH через файл ‘ ~/.bashrc ‘. Затем перезагрузите файл ‘ ~/.bashrc ‘, чтобы применить ваши изменения. Теперь вы можете запускать командную строку Zeek через ваш терминал.
echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc
source ~/.bashrcНаконец, выполните команду ‘ zeek ‘ ниже, чтобы проверить версию Zeek и основные команды и параметры.
zeek --version
zeek --helpВы увидите вывод, подобный следующему:

Настройка Zeek
После установки Zeek вам нужно настроить, как Zeek будет работать в вашей инфраструктуре. Вы можете выбрать запуск Zeek в автономном или кластерном режиме. Для крупных развертываний вы можете использовать кластерный режим, где компоненты Zeek установлены на отдельных серверах. Для этой тестовой цели мы настроим и запустим Zeek в кластерном режиме, используя один сервер.
Проверьте IP-адрес вашего сервера с помощью следующей команды ‘ ip ‘. В этом примере у нас есть IP-адрес сервера Ubuntu ‘ 192.168.10.60 ‘.
ip aОткройте сетевую конфигурацию Zeek ‘ /opt/zeek/etc/networks.cfg ‘ с помощью редактора ‘ nano ‘.
sudo nano /opt/zeek/etc/networks.cfgВведите вашу подсеть сети целевых серверов, как показано ниже.
192.168.10.0/24 Локальная сетьСохраните файл и выйдите из редактора, когда закончите.
Теперь откройте конфигурацию узла Zeek ‘ /opt/zeek/etc/node.cfg ‘ с помощью ‘ nano ‘.
sudo nano /opt/zeek/etc/node.cfgЗакомментируйте следующие строки, чтобы отключить автономный режим Zeek. По умолчанию Zeek работает в автономном режиме с настройками по умолчанию ‘ localhost ‘ и сетевым интерфейсом ‘ eth0 ‘.
#[zeek]
#type=standalone
#host=localhost
#interface=eth0Вставьте следующую конфигурацию, чтобы запустить Zeek в кластерном режиме на одном сервере. Убедитесь, что вы изменили IP-адрес на IP-адрес вашего сервера Ubuntu. Как видно ниже, кластерный режим Zeek будет иметь несколько компонентов, таких как logger, manager, proxy и workers.
# logger
[zeek-logger]
type=logger
host=192.168.10.60
# manager
[zeek-manager]
type=manager
host=192.168.10.60
# proxy
[zeek-proxy]
type=proxy
host=192.168.10.60
# worker
[zeek-worker]
type=worker
host=192.168.10.60
interface=eth0
# worker localhost
[zeek-worker-lo]
type=worker
host=localhost
interface=loКогда закончите, сохраните файл и выйдите из редактора.
Далее выполните команду ‘ zeekctl ‘ ниже, чтобы проверить синтаксис Zeek. Если у вас правильная конфигурация, вы увидите вывод ‘ скрипты в порядке ‘.
zeekctl check
Теперь выполните команду ‘ deploy ‘, чтобы развернуть вашу установку Zeek. С этим будут запущены логгер, менеджер, прокси и рабочие узлы Zeek.
zeekctl deploy
Вы можете проверить каждый компонент Zeek с помощью команды ниже.
zeekctl statusВ приведенном ниже выводе вы можете увидеть, что каждый компонент Zeek работает. Это означает, что развертывание кластера Zeek на одном узле прошло успешно.

Использование zeek-cut для парсинга журналов Zeek
Теперь, когда вы установили и развернули Zeek, файлы журналов вашей сети будут создаваться в директории ‘ /opt/zeek/logs/current ‘. Там будет несколько файлов журналов Zeek, на которые вам нужно обратить внимание. В этом разделе вы узнаете, как использовать утилиту ‘zeek-cut’ для генерации журналов в формате TSV (разделенные табуляцией значения).
Проверьте директорию журналов Zeek ‘ /opt/zeek/logs/current ‘ с помощью команды ‘ls’ ниже.
ls -ah /opt/zeek/logs/current/Вы увидите несколько файлов журналов, таких как:
- conn.log: Журнал соединений для TCP и UDP. Этот файл журнала предоставляет наиболее полезную информацию, такую как временная метка, продолжительность соединения, служба и многое другое
- dns.log: Файл журнала DNS (система доменных имен)
- http.log.log: Журнал протокола передачи гипертекста (HTTP)
- ssh.log: Журнал защищенного соединения (SSH) для отслеживания соединений SSH.
- ssl.log: Журнал безопасного сокета (SSL), который также содержит журнал HTTPS
Теперь перейдите в директорию ‘ /opt/zeek/logs/current ‘ и выполните команду ‘ cat ‘, чтобы показать журналы Zeek и передать вывод с помощью команды ‘ zeek-cut ‘, чтобы парсить вывод в формате TSV (разделенные табуляцией значения).
cd /opt/zeek/logs/current/
cat dns.log | zeek-cut id.orig_h query answers
cat dns.log | zeek-cut query answers id.orig_hВ этом примере мы покажем вам значения из полей ‘ id.orig_h ‘, ‘ query ‘ и ‘ answers ‘.

Вы также можете использовать команду ‘ zeek-cut ‘, как показано ниже, чтобы обработать журналы TSV и получить аналогичный вывод.
zeek-cut id.orig_h query answers < dns.log
Настройка вывода Zeek в JSON
Zeek поддерживает несколько форматов журналов, включая TSV и JSON. В этом разделе вы узнаете, как сгенерировать журнал Zeek в формате JSON. Затем вы узнаете, как парсить журналы JSON с помощью командной строки ‘jq’, чтобы вы могли легко читать ваши журналы.
Откройте конфигурацию Zeek ‘/opt/zeek/share/zeek/site/local.zeek’ с помощью следующего редактора ‘nano’.
sudo nano /opt/zeek/share/zeek/site/local.zeekРаскомментируйте следующую строку, чтобы включить вывод журнала в формате JSON.
@load policy/tuning/json-logsСохраните файл и выйдите из редактора.
Теперь выполните команду ‘ zeekctl ‘ ниже, чтобы применить и развернуть ваши изменения. И как только процесс завершится, формат журнала JSON будет сгенерирован Zeek.
zeekctl deployВы можете увидеть следующий вывод во время развертывания Zeek.

Далее выполните команду ‘ cat ‘, чтобы проверить файл журнала Zeek. Вы увидите, что журнал Zeek теперь в формате JSON.
cat /opt/zeek/logs/current/dns.logПарсинг формата JSON Zeek с помощью jq
Установите пакет ‘ jq ‘ с помощью команды ‘apt’ ниже.
sudo apt install jq -yПосле завершения установки перейдите в директорию ‘/opt/zeek/logs/current’ с помощью команды ‘cd’.
cd /opt/zeek/logs/current/Чтобы парсить журналы в формате JSON, выполните команду ‘jq’ ниже.
jq . dns.log
Если вы хотите получить компактный вывод, используйте опцию ‘-c’, как показано ниже:
jq . -c dns.logНаконец, вы также можете указать файлы журналов JSON с помощью команды ‘jq’ ниже.
jq -c '[."id.orig_h", ."query", ."answers"]' dns.log
Заключение
Поздравляем! Вы завершили установку инструмента мониторинга сети Zeek на сервере Ubuntu 24.04. Вы узнали, как развернуть Zeek в кластерном режиме на одном узле/сервере, парсить журналы Zeek с помощью утилиты ‘ zeek-cut ‘ для генерации формата TSV (разделенные табуляцией значения), генерировать журналы Zeek в формате JSON и парсить журналы JSON с помощью утилиты ‘jq’. Теперь вы можете перейти к следующему шагу, отправив ваши журналы JSON или журналы Zeek в централизованную систему журналирования, такую как Graylog и стек ELK/EFK.
Get new posts in your inbox
No spam. Unsubscribe anytime.