Termux — удобная среда для работы в мобильной экосистеме Linux. При этом анализ сетевого трафика на практике часто нужен для мониторинга своего сегмента сети, диагностики проблем и выявления аномалий. В этой статье разберём, как организовать автоматизированный анализ сетевого трафика в Termux с использованием Zeek и Suricata, а также как правильно собирать и хранить артефакты (логи, результаты детектов) для дальнейшего разбирательства.
Важно: примеры ниже ориентированы на анализ трафика в рамках вашей локальной сети и с явного разрешения. Не предназначены для несанкционированного перехвата или анализа трафика третьих лиц.
Что именно будет автоматизироваться
Цепочка работ выглядит так:
- захват трафика (pкап) с интерфейса в контролируемой сети;
- разбор трафика инструментом Zeek (в основном — протоколы и события);
- детекция по сигнатурам и/или правилам Suricata (IDs/IPS-подход, но в режиме анализа);
- сбор и нормализация результатов (каталоги, отчёты);
- планирование запуска (скрипт, запуск по расписанию, ротация логов).
В Termux ключевая идея — подготовить рабочую директорию, собрать зависимости, затем выстроить пайплайн.
Подготовка Termux
Начнём с обновления пакетов и установки базовых инструментов. В зависимости от версии Termux/Android может потребоваться дополнительная настройка окружения (например, разрешения на доступ к сети и к ресурсам захвата данных).
pkg update && pkg upgrade -y
pkg install -y nano wget curl git python clang make autoconf automake pkg-config libpcap
После этого создайте рабочую структуру:
mkdir -p ~/trafficlab/{zeek,suricata,pcaps,logs,reports,bin}
Захват трафика: практичный подход для мобильной среды
Для автоматизированного анализа удобнее работать с pcap файлами: захват выполняется отдельно (в вашем контролируемом сегменте), затем Zeek/Suricata анализируют готовые дампы. Такой подход снижает сложность с правами и интерфейсами в среде мобильного устройства.
Если вы управляете сетевым сегментом (например, используете локальную лабораторную сеть), организуйте захват так, чтобы трафик относился к вашим системам.
На стороне Termux можно подготовить папку под дампы и дальше запускать анализ:
ls -lah ~/trafficlab/pcaps
Дальше будем считать, что у вас уже есть один или несколько файлов .pcap в ~/trafficlab/pcaps.
Установка и запуск Zeek в режиме анализа pcap
Zeek обычно ставят из репозитория или через сборку. Для мобильной платформы иногда удобнее собрать конкретную версию. Ниже — ориентир по процессу (в деталях могут отличаться команды в зависимости от доступности пакетов в вашей среде).
1) Скачайте исходники Zeek и соберите:
cd ~/trafficlab/zeek
# В реальности подставьте актуальную версию Zeek
git clone https://github.com/zeek/zeek.git zeek-src
cd zeek-src
./aux/configure --prefix=$HOME/trafficlab/zeek/zeek-install
make -j$(nproc)
make install
2) Проверьте бинарники и версию:
~/trafficlab/zeek/zeek-install/bin/zeek -v
3) Базовый анализ pcap:
pcap=~/trafficlab/pcaps/sample.pcap
out=~/trafficlab/logs/zeek
mkdir -p "$out"
~/trafficlab/zeek/zeek-install/bin/zeek -r "$pcap" \
-L "$out"
Zeek создаст журналы (в формате, зависящем от конфигурации). Далее их можно прикладывать к отчёту.
Сбор и подготовка Zeek-логов
Часто требуется быстро собрать ключевые файлы журналов и привести их к читабельному виду. Пример: определить список файлов и скопировать в папку отчёта.
ts=$(date +%Y%m%d-%H%M%S)
report_dir=~/trafficlab/reports/zeek-$ts
mkdir -p "$report_dir"
cp -R ~/trafficlab/logs/zeek/ "$report_dir"/
ls -lah "$report_dir"
Если вы планируете дальнейший разбор (например, в веб-отчёте), имеет смысл стандартизировать имена файлов и формировать сводку по сессиям/хостам.
Установка Suricata и запуск анализа pcap
Suricata поддерживает режимы, удобные для анализа записанного трафика. В этом подходе вы получаете alerts и протоколированные детекты без необходимости немедленного режима реального времени.
1) Подготовим директории:
cd ~/trafficlab/suricata
mkdir -p suricata-src suricata-install rules configs
2) Скачайте исходники Suricata (пример):
git clone https://github.com/OISF/suricata.git suricata-src
cd suricata-src
./configure --prefix=$HOME/trafficlab/suricata/suricata-install
make -j$(nproc)
make install
3) Настройте правила и конфигурацию. На практике удобнее использовать стандартные правила и минимальную конфигурацию.
Минимальная базовая конфигурация (пример-подход). Создайте файл suricata.yaml в ~/trafficlab/suricata/configs и подстройте под вашу среду:
nano ~/trafficlab/suricata/configs/suricata.yaml
Далее — пример запуска (адаптируйте параметры под вашу версию):
ts=$(date +%Y%m%d-%H%M%S)
report_dir=~/trafficlab/reports/suricata-$ts
mkdir -p "$report_dir"
pcap=~/trafficlab/pcaps/sample.pcap
~/trafficlab/suricata/suricata-install/bin/suricata \
-c ~/trafficlab/suricata/configs/suricata.yaml \
-r "$pcap" \
--set outputs.log-dir="$report_dir"
По итогам Suricata создаст журналы детектов. В разных конфигурациях это может быть alert.json, alert.*** и другие артефакты.
Работа с правилами Suricata
Сигнатуры — это основа детектов. Для качественного результата подбирайте правила под вашу задачу и не злоупотребляйте “всё включено”, чтобы не получить много шумных срабатываний.
Если вы используете встроенную систему правил, обычно нужно:
- загрузить набор правил в отдельную папку;
- указать пути в
suricata.yaml; - при необходимости включить/отключить категории.
Пример структуры директории правил:
mkdir -p ~/trafficlab/suricata/rules
# Далее: разместите туда .rules файлы и настройте путь в suricata.yaml
Интеграция: общий пайплайн запуска (Zeek + Suricata)
Чтобы анализ был действительно автоматизированным, сделаем скрипт, который берёт pcap из папки, запускает Zeek, затем Suricata, и складывает результаты в отчёт.
1) Создайте исполняемый скрипт:
nano ~/trafficlab/bin/run_analysis.sh
2) Вставьте пример:
#!/data/data/com.termux/files/usr/bin/bash
set -euo pipefail
PCAPS_DIR="$HOME/trafficlab/pcaps"
TS=$(date +%Y%m%d-%H%M%S)
zeek_out="$HOME/trafficlab/logs/zeek"
mkdir -p "$zeek_out"
zeek_report="$HOME/trafficlab/reports/zeek-$TS"
suricata_report="$HOME/trafficlab/reports/suricata-$TS"
mkdir -p "$zeek_report" "$suricata_report"
# Выбираем первый pcap (при желании расширьте до цикла по всем файлам)
pcap_file="$(ls -1 "$PCAPS_DIR"/.pcap 2>/dev/null | head -n 1 || true)"
if [ -z "${pcap_file}" ]; then
echo "No .pcap files found in $PCAPS_DIR"
exit 1
fi
echo "Using pcap: $pcap_file"
# Zeek
$HOME/trafficlab/zeek/zeek-install/bin/zeek -r "$pcap_file" -L "$zeek_out"
cp -R "$zeek_out"/ "$zeek_report"/ || true
echo "Zeek done: $zeek_report"
# Suricata
$HOME/trafficlab/suricata/suricata-install/bin/suricata \
-c "$HOME/trafficlab/suricata/configs/suricata.yaml" \
-r "$pcap_file" \
--set outputs.log-dir="$suricata_report"
echo "Suricata done: $suricata_report"
echo "All results stored under $HOME/trafficlab/reports/$TS"
3) Сделайте файл исполняемым:
chmod +x ~/trafficlab/bin/run_analysis.sh
4) Запустите:
~/trafficlab/bin/run_analysis.sh
Автоматизация по расписанию
Для регулярного анализа удобно планировать запуск скрипта. В Termux обычно используют встроенные возможности планирования или cron-подобный подход (при наличии установленного cron в вашей среде).
Пример концепции: запуск раз в час для свежих дампов в папке ~/trafficlab/pcaps. Конкретные команды зависят от доступных компонентов.
Минимальный вариант — вызывать скрипт вручную или из задачи в вашем рабочем процессе. Главное — обеспечить ротацию и очистку старых отчётов, чтобы не раздувать файловую систему.
Хранение, ротация и “гигиена” данных
Чтобы эксплуатация была устойчивой:
- делайте уникальные подпапки отчётов по времени;
- ограничивайте размер логов (архивирование старых отчётов);
- разделяйте “сырые” pcap и “обработанные” результаты;
- следите за свободным местом на устройстве.
Пример ротации отчётов (упрощённый подход):
# Оставлять отчёты за последние 14 дней (пример логики — адаптируйте под ваши нужды)
find ~/trafficlab/reports -mindepth 1 -maxdepth 1 -type d -mtime +14 -exec rm -rf {} ;
Безопасность и легальность: что важно соблюдать
При работе с сетевым трафиком соблюдайте следующие принципы:
- анализируйте только трафик в пределах вашей локальной сети и с явным разрешением;
- не используйте инструменты для скрытого перехвата чужих данных;
- если вы используете VPN, то только для создания локальной сети между вашими узлами (не для обхода блокировок);
- не публикуйте чувствительные данные (IP, учётные данные, полезную нагрузку) без необходимости и согласий.
Техническая часть должна служить мониторингу и анализу, а не вмешательству в чужую инфраструктуру.
Практические сценарии использования
- Диагностика проблем связи: Zeek — события и протоколы, Suricata — детекты и индикаторы атак/аномалий.
- Проверка гипотез: сравнение “до/после” изменений в сети по отчетам.
- Сбор доказательной базы (в рамках ваших систем): логи, временные метки, корреляция событий.
- Автоматизированный мониторинг локального сегмента: регулярные pcap-дампы и пакетный анализ.
Заключение
Автоматизированный анализ сетевого трафика в Termux можно выстроить по практичной схеме: подготовка pcap, запуск Zeek для протокольной картины и Suricata для детектов, затем упаковка результатов в отчёты. Такой подход удобен для локальной лаборатории, диагностики и мониторинга собственных систем, а также снижает сложность “реального времени” на мобильной платформе.
Если вы хотите, чтобы мы помогли собрать полностью рабочее окружение под вашу версию Termux/Android, настроить конфигурации Zeek/Suricata, правила детектов и пайплайн отчетов — обращайтесь в РыбинскЛАБ. Мы выполняем настройку и сопровождение решений по анализу сетевого трафика и кибербезопасности.