We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Настройка и эксплуатация IDS/IPS (Snort, Suricata) на мобильных Linux‑системах в Termux

Подробное руководство по установке, настройке и использованию Snort и Suricata в Termux на Android: шаги, конфигурация, оптимизация и рекомендации.

Мобильные устройства на базе Android всё чаще используют Linux‑окружения через Termux. Это открывает возможность запускать полноценные инструменты сетевой безопасности, такие как IDS/IPS Snort и Suricata. В статье рассматриваются требования, процесс установки, базовая настройка и практические рекомендации по эксплуатации этих систем на мобильных платформах.

Требования и подготовка

  • Устройство с Android 8.0 и выше (рекомендовано 10+).
  • Доступ к сети Wi‑Fi/Ethernet (через OTG‑адаптер при необходимости).
  • Установленный Termux из F‑Droid или Google Play.
  • Минимум 2 ГБ свободного места в памяти.

Для полного доступа к сетевому стеку рекомендуется предоставить Termux права android.permission.ACCESS_NETWORK_STATE и android.permission.INTERNET. При работе с привилегированными пакетами может потребоваться root (опционально).

Установка Termux и базовых пакетов

pkg update && pkg upgrade -y
pkg install -y wget curl git proot-distro

Для компиляции исходных кодов понадобится набор средств разработки:

pkg install -y build-essential clang python python-dev
pkg install -y libpcap-dev zlib-dev libpcre2-dev libnetfilter-queue-dev

Установка Snort

Snort 2.9.x лучше всего собрать из исходников, так как официальные бинарные пакеты под Android отсутствуют.

# Скачивание исходного кода
wget https://www.snort.org/downloads/snort/snort-2.9.20.1.tar.gz -O snort.tar.gz
mkdir -p ~/snort && tar -xzf snort.tar.gz -C ~/snort --strip-components=1

# Сборка
cd ~/snort
./configure --enable-sourcefire
make -j$(nproc)
make install

После установки создаём директорию для конфигурации и правил:

mkdir -p /data/data/com.termux/files/home/etc/snort/rules
mkdir -p /data/data/com.termux/files/home/etc/snort/so_rules

Копируем пример конфигурации и настраиваем основные параметры:

cp etc/snort.conf.example /data/data/com.termux/files/home/etc/snort/snort.conf

Отредактируйте файл snort.conf (например, через vim или nano) и укажите пути к правилам:

var RULE_PATH /data/data/com.termux/files/home/etc/snort/rules
var SO_RULE_PATH /data/data/com.termux/files/home/etc/snort/so_rules

Для получения актуальных правил рекомендуется использовать pulledpork или загрузить бесплатный набор Snort Community Rules:

wget https://www.snort.org/downloads/community/community-rules.tar.gz -O community-rules.tar.gz
tar -xzf community-rules.tar.gz -C /data/data/com.termux/files/home/etc/snort/rules

Базовая конфигурация Snort

Для запуска в режиме IDS (только мониторинг) используем следующую команду:

snort -c /data/data/com.termux/files/home/etc/snort/snort.conf -i any -A console -s 65535 -k none

Параметры:

  • -c – путь к конфигурационному файлу.
  • -i any – прослушивание всех доступных интерфейсов (в Termux это обычно any).
  • -A console – вывод предупреждений в консоль.
  • -s 65535 – максимальный размер пакета.
  • -k none – отключить проверку контрольных сумм (полезно на Android).

Для режима IPS (инлайн) требуется поддержка NFQUEUE. Установите iptables через pkg install iptables и создайте правило:

iptables -I INPUT -j NFQUEUE --queue-num 0
iptables -I OUTPUT -j NFQUEUE --queue-num 0
snort -c /data/data/com.termux/files/home/etc/snort/snort.conf -Q --daq nfq --daq-var queue=0

Установка Suricata

Suricata поддерживает более современный набор функций и часто проще в настройке. Установим её из исходников.

# Скачивание
wget https://www.openinfosec.com/downloads/suricata-6.0.12.tar.gz -O suricata.tar.gz
mkdir -p ~/suricata && tar -xzf suricata.tar.gz -C ~/suricata --strip-components=1

# Установка зависимостей (добавляем libyaml и libmagic)
pkg install -y libyaml libmagic

# Сборка
cd ~/suricata
./configure --enable-nfq
make -j$(nproc)
make install

Создаём стандартную структуру конфигурации:

mkdir -p /data/data/com.termux/files/home/etc/suricata
cp etc/suricata.yaml /data/data/com.termux/files/home/etc/suricata/

Загружаем правила (например, Emerging Threats Open Ruleset):

wget https://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz -O emerging.rules.tar.gz
mkdir -p /data/data/com.termux/files/home/etc/suricata/rules
tar -xzf emerging.rules.tar.gz -C /data/data/com.termux/files/home/etc/suricata/rules

Отредактируйте suricata.yaml, указав пути к правилам и интерфейсу:

vars:
  address-groups:
    HOME_NET: "[192.168.0.0/16]"

default-log-dir: /data/data/com.termux/files/home/var/log/suricata

rule-files:
  - "rules/emerging-*.rules"

af-packet:
  - interface: any
    threads: auto
    defrag: yes

Запуск в режиме IDS:

suricata -c /data/data/com.termux/files/home/etc/suricata/suricata.yaml -i any

Для IPS используем NFQUEUE аналогично Snort:

iptables -I INPUT -j NFQUEUE --queue-num 1
iptables -I OUTPUT -j NFQUEUE --queue-num 1
suricata -c /data/data/com.termux/files/home/etc/suricata/suricata.yaml -q 1

Тестирование и отладка

Для проверки работы IDS можно воспользоваться утилитой nmap или сгенерировать тестовый трафик с помощью hping3:

# Установка утилит
pkg install -y nmap hping3
# Генерация сканирования порта 80
nmap -p 80 127.0.0.1
# Или отправка SYN‑пакета
hping3 -S -p 80 127.0.0.1

Ожидайте сообщения в консоли Snort/Suricata вроде ET SCAN Nmap Scripting Engine Scan. Логи находятся в /data/data/com.termux/files/home/var/log/ (по умолчанию).

Оптимизация производительности

  • Ограничьте количество правил. На мобильных процессорах лучше использовать только необходимые правила (например, только атак сетевого уровня).
  • Установите pin-cpu. При запуске укажите количество потоков, соответствующее ядрам процессора: --daq-var threads=2 для Snort или threads: 2 в suricata.yaml.
  • Отключите ненужные протоколы. В snort.conf закомментируйте модули, не требуемые в вашей среде.
  • Используйте быстрый диск. При возможности перенесите лог-файлы на внешнее SD‑карте с более высокой скоростью записи.

Типичные проблемы и их решения

  • Ошибка «cannot open pcap file». Убедитесь, что у Termux есть разрешения на доступ к сети (разрешения android.permission.ACCESS_NETWORK_STATE и android.permission.INTERNET).
  • NFQUEUE не работает без root. На не‑root‑устройствах IPS‑режим недоступен; используйте только IDS.
  • Слишком много ложных срабатываний. Откорректируйте HOME_NET и отключите правила, не относящиеся к вашему трафику.
  • Системные библиотеки конфликтуют. При сборке укажите путь к пользовательским библиотекам через --prefix=$HOME/.local и добавьте $HOME/.local/lib в LD_LIBRARY_PATH.

Заключение

Терминальное окружение Termux позволяет превратить обычный смартфон в полноценный узел сетевой безопасности. С помощью приведённых инструкций вы сможете установить и настроить как Snort, так и Suricata, адаптировать их под мобильные ограничения и интегрировать в существующую инфраструктуру. Несмотря на ограниченные ресурсы, при грамотной настройке IDS/IPS на Android‑устройстве можно получать ценные данные о подозрительном трафике, проводить предварительный анализ и даже реализовать базовую защиту в режиме inline.

Если вам требуется более глубокая интеграция, кастомные правила, автоматическое обновление сигнатур или консультация по построению распределённой системы мониторинга, обратитесь к специалистам RybinskLab. Мы предоставляем услуги по развертыванию, настройке и поддержке IDS/IPS решений на любой платформе, включая мобильные Linux‑системы.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект