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 в Termux с Suricata и пользовательскими правилами

В последние годы мобильные устройства становятся всё более привлекательными целями для киберугроз. Termux позволяет превратить Android‑смартфон в полноценную Linux‑среду, а Suricata – в мощный IDS/IPS. Чтобы start (запустить) такой сервис, необходимо понять, что слово start означает "начинать, запускать" merriam-webster.com, а также "to begin doing something" cambridge.org. В этой статье мы покажем, как start Suricata в Termux и построить собственные правила для обнаружения атак.

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

  • Устройство Android с установленным Termux (рекомендовано Android 8+).
  • Подключение к сети Wi‑Fi (для получения обновлений и загрузки правил).
  • Базовые навыки работы в командной строке Linux.

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

Сначала обновим репозитории и установим основные утилиты:

pkg update && pkg upgrade -y

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

pkg install -y git clang make automake autoconf libtool pkg-config \
    libpcap-dev libpcre2-dev libyaml-dev zlib-dev libnet1-dev \
    libmagic-dev python python-pip

Для ускорения сборки включим поддержку OpenSSL:

pkg install -y openssl-dev

Сборка и установка Suricata

Клонируем исходный код Suricata и проверяем последнюю стабильную ветку:

git clone https://github.com/OISF/suricata.git
cd suricata
git checkout v7.0.5   # пример версии

Создаём директорию сборки и конфигурируем проект с минимальными опциями для мобильного устройства:

./autogen.sh
./configure --prefix=$HOME/.local \
    --disable-nfqueue --disable-nflog \
    --enable-nfstream --enable-af-packet \
    --enable-lua \
    --with-libpcap=$(pkg-config --variable=prefix libpcap)
make -j$(nproc)
make install

После установки проверим, что бинарник доступен:

$HOME/.local/bin/suricata --build-info

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

Создадим каталог конфигурации и скопируем пример:

mkdir -p $HOME/.config/suricata
cp $HOME/.local/etc/suricata/suricata.yaml $HOME/.config/suricata/

Отредактируем suricata.yaml, указав путь к пользовательским правилам и интерфейсу, который будет мониториться (например, wlan0):

vi $HOME/.config/suricata/suricata.yaml
# В разделе "af-packet" укажите:
# - interface: wlan0
# В разделе "default-rule-path" укажите путь к правилам:
# default-rule-path: $HOME/.config/suricata/rules

Создание пользовательских правил

Suricata использует язык правил, совместимый с Snort. Для лёгкого IDS достаточно нескольких правил, охватывающих наиболее распространённые атаки.

mkdir -p $HOME/.config/suricata/rules
cat > $HOME/.config/suricata/rules/local.rules <<'EOF'
# Пример: обнаружение сканирования портов
alert tcp any any -> any any (msg:"Port scan detected"; flags:S; threshold:type both, track by_src, count 5, seconds 10; sid:1000001; rev:1;)

# Пример: блокировка попытки доступа к известному C2‑серверу
drop ip any any -> 203.0.113.45 any (msg:"Blocked C2 traffic"; sid:1000002; rev:1;)
EOF

Не забудьте включить пользовательские правила в suricata.yaml (раздел rule-files).

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

  • Отключите ненужные протоколы. В конфиге отключите http, tls и dns, если они не требуются.
  • Используйте режим «IPS». Добавьте runmode: ips в suricata.yaml для прямой блокировки.
  • Настройте буферизацию. Увеличьте capturebuffer-size до 32768 для снижения потери пакетов.
  • Ограничьте количество потоков. На мобильных процессорах достаточно 2‑4 потоков: threading: set-cpu-affinity: yes cpu-affinity: - [0] - [1]

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

Запустим Suricata в режиме start (запуск) и проверим, что правила работают:

$HOME/.local/bin/suricata -c $HOME/.config/suricata/suricata.yaml -i wlan0 -D

Проверим логи:

tail -f /data/data/com.termux/files/home/.local/var/log/suricata/fast.log

Сгенерируем тестовый трафик, например, сканирование nmap:

nmap -p 1-1024 192.168.1.100

В журнале должно появиться сообщение Port scan detected, подтверждающее работу правила.

Заключение

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

Если вам требуется профессиональная настройка, аудит безопасности сети или разработка специализированных правил под ваш бизнес, обратитесь к экспертам RybinskLab. Мы предоставляем услуги по внедрению и поддержке IDS/IPS, консалтингу по кибербезопасности и обучению персонала.
Контакты: rybinsklab.example.com

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

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной