Установка Arkime (Moloch) на Ubuntu 20.04
Кратко: это пошаговое руководство по установке Arkime (ранее Moloch) на Ubuntu 20.04. Вы пройдёте установку Elasticsearch, установку и настройку 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 и авторизуйтесь под созданным админом.

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

Рекомендации по безопасности и эксплуатация
- Изолируйте 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 (шаги)
- Подготовить выделенный сервер(ы) с Ubuntu 20.04.
- Подготовить и настроить Elasticsearch (отдельный узел/кластер для продакшна).
- Установить Arkime, выполнить Configure и инициализацию БД.
- Создать пользователей и настроить ротацию логов и бекап метаданных.
- Настроить мониторинг сервисов и проверку целостности данных.
Ролевые чек-листы
Администратор:
- Установил и запустил 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 — напишите, и я помогу.
Похожие материалы
Как воспроизводить медиа на Smart TV
Как изменить размер изображения в Paint 3D
Автообновление дашбордов Power BI
Как получить доступ к Google Bard AI в Индии
Запуск 16‑битных приложений в Windows 10 (64‑bit)