Мобильные устройства на базе 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‑системы.