Гид по технологиям

Установка Arkime (Moloch) на Ubuntu 20.04

5 min read Сетевая безопасность Обновлено 23 Nov 2025
Установка Arkime на Ubuntu 20.04
Установка Arkime на Ubuntu 20.04

Кратко: это пошаговое руководство по установке Arkime (ранее Moloch) на Ubuntu 20.04. Вы пройдёте установку Elasticsearch, установку и настройку Arkime, запуск сервисов и проверку веб-интерфейса; в конце — рекомендации по безопасности и отладке.

Arkime — индексированный захват пакетов

Arkime, ранее известный как Moloch, — это open-source инструмент для индексированного масштабируемого захвата пакетов и поиска. Он сохраняет и экспортирует пакеты в формате PCAP, которые затем можно анализировать в Wireshark или других инструментах. Arkime предоставляет простой веб-интерфейс для просмотра, поиска и экспорта PCAP. Решение рассчитано на распределённые развертывания и обработку гигабитного трафика в секунду.

Важно: для корректной работы Arkime требуется Elasticsearch. Для небольших тестовых развёртываний локальный Elasticsearch допустим, но в продакшне рекомендуется отдельный кластер Elasticsearch.

Краткая схема работы

  • Захват пакетов (capture) собирает трафик и разбивает сеансы.
  • Viewer предоставляет веб-интерфейс для поиска и экспорта PCAP.
  • Elasticsearch индексирует метаданные и обеспечивает быстрый поиск.

Требования

  • Сервер с Ubuntu 20.04.
  • Доступ под root или sudo; установлен пароль root/доступ администратора.
  • Минимум 3 ГБ оперативной памяти для локального Elasticsearch в демо-режиме; в продакшне — больше.

Начало работы

Обновите системные пакеты:

apt-get update -y

Установите необходимые зависимости:

apt-get install gnupg2 curl wget -y

Установка Elasticsearch

Arkime использует Elasticsearch для индексации и поиска. Пакет Elasticsearch по умолчанию отсутствует в репозиториях Ubuntu, поэтому добавим официальный репозиторий Elastic.

Добавьте GPG-ключ:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch --no-check-certificate | apt-key add -

Добавьте репозиторий в APT:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list

Обновите репозиторий и установите Elasticsearch:

apt-get update -y  
apt-get install elasticsearch -y

Отредактируйте конфигурацию JVM для Elasticsearch, чтобы задать минимальный и максимальный объём памяти (рекомендуется установить одинаковые значения):

nano /etc/elasticsearch/jvm.options

Найдите и при необходимости измените строки:

-Xms1g
-Xmx1g

Сохраните файл и включите запуск Elasticsearch при загрузке:

systemctl enable --now elasticsearch

Проверка прослушиваемого порта (по умолчанию 9200):

ss -antpl | grep 9200

Ожидаемый примерный вывод (указан для ориентира):

LISTEN   0        4096        [::ffff:127.0.0.1]:9200                  *:*       users:(("java",pid=9518,fd=272))                                                
LISTEN   0        4096                     [::1]:9200               [::]:*       users:(("java",pid=9518,fd=271))                                               

Проверка Elasticsearch HTTP API:

curl http://localhost:9200

Пример ответа от Elasticsearch (версия приведена для примера):

{
  "name" : "ubuntu2004",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "9g2B-tNaQl-rjuV32eCgpg",
  "version" : {
    "number" : "7.11.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "ff17057114c2199c9c1bbecc727003a907c0db7a",
    "build_date" : "2021-02-15T13:44:09.394032Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

На этом этапе Elasticsearch установлен и запущен.

Установка и настройка Arkime

Скачайте пакет Arkime для Ubuntu 20.04 (пример для версии 2.7.1):

wget https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-20.04/moloch_2.7.1-1_amd64.deb

Установите скачанный пакет:

apt install ./moloch_2.7.1-1_amd64.deb

Запустите скрипт конфигурации Arkime:

/data/moloch/bin/Configure

Во время настройки вам будет предложено указать сетевой интерфейс для мониторинга, например:

Found interfaces: lo;eth0;eth1
Semicolon ';' seperated list of interfaces to monitor [eth1] eth0

Введите имя интерфейса и нажмите Enter. После завершения конфигурации вы увидите интерактивные подсказки, например:

Install Elasticsearch server locally for demo, must have at least 3G of memory, NOT recommended for production use (yes or no) [no] no
Elasticsearch server URL [http://localhost:9200] 
Password to encrypt S2S and other things [no-default] 
Password to encrypt S2S and other things [no-default] mypassword
Moloch - Creating configuration files
Installing systemd start files, use systemctl
Moloch - Installing /etc/logrotate.d/moloch to rotate files after 7 days
Moloch - Installing /etc/security/limits.d/99-moloch.conf to make core and memlock unlimited
Download GEO files? (yes or no) [yes] yes

9) Visit http://MOLOCHHOST:8005 with your favorite browser.
      user: admin
      password: THEPASSWORD from step #6

If you want IP -> Geo/ASN to work, you need to setup a maxmind account and the geoipupdate program.
See https://molo.ch/faq#maxmind

Any configuration changes can be made to /data/moloch/etc/config.ini
See https://molo.ch/faq#moloch-is-not-working for issues

Additional information can be found at:
  * https://molo.ch/faq
  * https://molo.ch/settings

Примечание: при желании интеграции Geo/IP и ASN потребуется аккаунт MaxMind и утилита geoipupdate.

Инициализация конфигурации Arkime в Elasticsearch

Инициализируйте конфигурацию Arkime в Elasticsearch:

/data/moloch/db/db.pl http://localhost:9200 init

Создайте административного пользователя:

/data/moloch/bin/moloch_add_user.sh admin "Moloch SuperAdmin" mypassword --admin

Замените “mypassword” на надёжный пароль.

Запуск и управление сервисами Arkime

Arkime состоит из трёх логических компонентов: capture, viewer и Elasticsearch. Запустите службы capture и viewer и добавьте их в автозагрузку:

systemctl enable --now molochcapture  
systemctl enable --now molochviewer

Проверьте статус служб:

systemctl status molochcapture molochviewer

Ожидаемый пример вывода статуса (сокращённый пример):

? molochcapture.service - Moloch Capture
     Loaded: loaded (/etc/systemd/system/molochcapture.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-01 11:40:08 UTC; 10s ago
   Main PID: 11313 (sh)
      Tasks: 7 (limit: 4691)
     Memory: 206.6M
     CGroup: /system.slice/molochcapture.service
             ??11313 /bin/sh -c /data/moloch/bin/moloch-capture -c /data/moloch/etc/config.ini  >> /data/moloch/logs/capture.log 2>&1
             ??11315 /data/moloch/bin/moloch-capture -c /data/moloch/etc/config.ini

Mar 01 11:40:08 ubuntu2004 systemd[1]: Starting Moloch Capture...
Mar 01 11:40:08 ubuntu2004 systemd[1]: Started Moloch Capture.

? molochviewer.service - Moloch Viewer
     Loaded: loaded (/etc/systemd/system/molochviewer.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-01 11:40:13 UTC; 5s ago
   Main PID: 11361 (sh)
      Tasks: 12 (limit: 4691)
     Memory: 51.9M
     CGroup: /system.slice/molochviewer.service
             ??11361 /bin/sh -c /data/moloch/bin/node viewer.js -c /data/moloch/etc/config.ini  >> /data/moloch/logs/viewer.log 2>&1
             ??11362 /data/moloch/bin/node viewer.js -c /data/moloch/etc/config.ini

Mar 01 11:40:13 ubuntu2004 systemd[1]: Started Moloch Viewer.

Проверка логов viewer:

tail -f /data/moloch/logs/viewer.log

Ожидаемый вывод:

Express server listening on port 8005 in development mode

Проверка логов capture:

tail -f /data/moloch/logs/capture.log

Пример вывода журнала захвата:

Mar  1 11:40:49 http.c:382 moloch_http_curlm_check_multi_info(): 1/30 ASYNC 201 http://localhost:9200/dstats/_doc/ubuntu2004-1209-5 806/154 0ms 51ms
Mar  1 11:40:49 http.c:382 moloch_http_curlm_check_multi_info(): 1/30 ASYNC 200 http://localhost:9200/_bulk 3737/327 0ms 51ms
Mar  1 11:40:50 http.c:382 moloch_http_curlm_check_multi_info(): 1/30 ASYNC 200 http://localhost:9200/_bulk 7246/451 0ms 51ms
Mar  1 11:40:51 http.c:382 moloch_http_curlm_check_multi_info(): 1/30 ASYNC 200 http://localhost:9200/stats/_doc/ubuntu2004?version_type=external&version=22 805/149 0ms 51ms
Mar  1 11:40:53 http.c:382 moloch_http_curlm_check_multi_info(): 1/30 ASYNC 200 http://localhost:9200/stats/_doc/ubuntu2004?version_type=external&version=23 805/149 0ms 52ms
Mar  1 11:40:54 http.c:382 moloch_http_curlm_check_multi_info(): 1/30 ASYNC 201 http://localhost:9200/dstats/_doc/ubuntu2004-1210-5 806/154 0ms 51ms
Mar  1 11:40:54 http.c:382 moloch_http_curlm_check_multi_info(): 1/30 ASYNC 200 http://localhost:9200/_bulk 2830/302 0ms 51ms

Доступ к веб-интерфейсу Arkime

Проверьте, что процесс слушает порт 8005:

ss -antpl | grep 8005

Ожидаемый вывод:

LISTEN   0        511                          *:8005                  *:*       users:(("node",pid=11362,fd=20))                                                

Откройте в браузере URL: http://your-server-ip:8005 и авторизуйтесь под созданным админом.

Страница входа Arkime

Введите имя пользователя и пароль и нажмите Sign In. После успешного входа вы увидите панель управления:

Панель управления Arkime

Рекомендации по безопасности и эксплуатация

  • Изолируйте Elasticsearch в отдельной сети/кластерe, не оставляйте HTTP API открытым в интернет.
  • Используйте TLS для Elasticsearch и для веб-интерфейса, если он доступен в публичной сети.
  • Ограничьте доступ к порту 8005 через брандмауэр и настройте аутентификацию (встроенная аутентификация Arkime).
  • Храните экспортированные PCAP в безопасном хранилище и контролируйте доступ.

Советы по отладке

  • Если viewer не стартует — проверьте логи (/data/moloch/logs/viewer.log) и корректность пути к config.ini.
  • Если Arkime не может подключиться к Elasticsearch — проверьте URL, порт, состояние кластера и соответствие версий.
  • Проверьте права на /data/moloch: процессы должны иметь доступ к каталогам логов и индексам.

Альтернативные инструменты и когда их выбрать

  • Wireshark — локальный анализ PCAP на рабочей станции, не подходит для длительного центрального хранения.
  • Zeek (ранее Bro) — глубокий анализ сетевых сессий и создание богатых метрик, иногда в связке с Elasticsearch/Kibana.
  • Suricata — IDS/IPS с возможностью логирования и выгрузки PCAP; полезна для детекции угроз.
  • tcpdump — лёгкий захват для одноразового анализа.

Выбор зависит от задач: Arkime хорош для долгосрочного хранения и поиска по большим объёмам PCAP.

Мини-методология внедрения Arkime (шаги)

  1. Подготовить выделенный сервер(ы) с Ubuntu 20.04.
  2. Подготовить и настроить Elasticsearch (отдельный узел/кластер для продакшна).
  3. Установить Arkime, выполнить Configure и инициализацию БД.
  4. Создать пользователей и настроить ротацию логов и бекап метаданных.
  5. Настроить мониторинг сервисов и проверку целостности данных.

Ролевые чек-листы

Администратор:

  • Установил и запустил Elasticsearch.
  • Настроил системные лимиты и rclone/backup при необходимости.

Сетевой инженер:

  • Выбрал и настроил интерфейс захвата.
  • Обеспечил отказоустойчивость (mirror/span или TAP).

Аналитик безопасности:

  • Проверил доступность веб-интерфейса.
  • Выполнил экспорт PCAP и проверил в Wireshark.

Критерии приёмки

  • Веб-интерфейс доступен по http://your-server-ip:8005.
  • Сервисы molochcapture и molochviewer активны (systemctl status).
  • Arkime успешно индексирует данные в Elasticsearch (проверка _bulk и stats в логах).
  • Экспорт PCAP работает и файл открывается в Wireshark.

Короткий глоссарий

  • Capture — компонент захвата пакетов.
  • Viewer — веб-интерфейс Arkime.
  • PCAP — формат сохранения сетевых пакетов.
  • Elasticsearch — поисковый движок для индексации метаданных.

Быстрые тесты/приёмо-сдаточные кейсы

  • Тест 1: Перейти на страницу входа — получить форму авторизации.
  • Тест 2: Войти под admin — увидеть панель управления.
  • Тест 3: Запустить захват нескольких минут и экспортировать PCAP.
  • Тест 4: Открыть экспортированный PCAP в Wireshark.

Заключение

Поздравляем — Arkime установлен и базово настроен на Ubuntu 20.04. Дальше рекомендуем:

  • Перенести Elasticsearch в отдельный кластер для продакшна.
  • Настроить TLS и ограничить доступ по сети.
  • Настроить ротацию и бэкапы /data/moloch.

Если нужны примеры конфигураций, сценарии резервного восстановления или помощь с интеграцией GeoIP — напишите, и я помогу.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как воспроизводить медиа на Smart TV
Руководство

Как воспроизводить медиа на Smart TV

Как изменить размер изображения в Paint 3D
Руководство

Как изменить размер изображения в Paint 3D

Автообновление дашбордов Power BI
Power BI

Автообновление дашбордов Power BI

Как получить доступ к Google Bard AI в Индии
Искусственный интеллект

Как получить доступ к Google Bard AI в Индии

Запуск 16‑битных приложений в Windows 10 (64‑bit)
Windows

Запуск 16‑битных приложений в Windows 10 (64‑bit)

Как выключить Google Pixel: все способы
Мобильные устройства

Как выключить Google Pixel: все способы