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 на базе Linux в Termux для мобильного мониторинга сети

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

Что понадобится

  • Устройство под управлением Android ≥ 7.0.
  • Приложение Termux (рекомендовано из F‑Droid).
  • Подключение к Wi‑Fi или мобильной сети с правом доступа к пакетам (root не обязателен, но упрощает работу с сетевыми интерфейсами).
  • Небольшой объём свободного места (≈ 200 МБ) для компиляции Snort.

Установка Termux и базовой среды

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

Мы будем использовать proot‑distro для развёртывания полноценного дистрибутива Debian/Ubuntu внутри Termux.

Создание Linux‑окружения

proot-distro install ubuntu-20.04
proot-distro login ubuntu-20.04

После входа в контейнер обновим пакеты:

apt update && apt upgrade -y

Установка зависимостей Snort

apt install -y libpcap-dev libpcre3-dev libdumbnet-dev bison flex liblzma-dev zlib1g-dev libssl-dev pkg-config

Эти библиотеки требуются для компиляции и работы Snort.

Скачивание и сборка Snort

wget https://www.snort.org/downloads/snort/snort-2.9.20.0.tar.gz
tar -xzf snort-2.9.20.0.tar.gz && cd snort-2.9.20.0
./configure --enable-sourcefire
make && make install

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

snort -V

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

Создадим рабочий каталог и базовый конфиг:

mkdir -p /etc/snort/rules /var/log/snort
cat > /etc/snort/snort.conf <<'EOF'
var RULE_PATH /etc/snort/rules
var LOG_PATH /var/log/snort
output unified2: filename snort.log, limit 128
include $RULE_PATH/local.rules
EOF

Создадим простой файл правил local.rules:

cat > /etc/snort/rules/local.rules <<'EOF'
alert icmp any any -> any any (msg:"ICMP ping detected"; sid:1000001; rev:1;)
EOF

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

Для начала запустим Snort в режиме детектора на интерфейсе wlan0 (можно заменить на нужный):

snort -c /etc/snort/snort.conf -i wlan0 -A console -q

Вы увидите сообщения о срабатывании правила, когда будет обнаружен ICMP‑ping.

Включение режима IPS (inline)

Для работы в качестве IPS необходимо, чтобы интерфейс поддерживал режим NFQUEUE. Установим iptables и подключим очередь:

apt install -y iptables
iptables -I INPUT -j NFQUEUE --queue-num 0

Запускаем Snort в inline‑режиме:

snort -c /etc/snort/snort.conf -i wlan0 -Q --daq nfq --daq-var queue=0

Теперь Snort будет блокировать пакеты, соответствующие правилам.

Управление правилами и обновление

Для постоянного обновления правил удобно использовать Snort Community Rules. Скачивание и установка:

wget https://www.snort.org/rules/community.tar.gz -O community.tar.gz
tar -xzf community.tar.gz -C /etc/snort/rules

После добавления новых правил перезапускаем Snort командой snort -c /etc/snort/snort.conf ….

Почему слово start так важно в контексте Snort?

В английском языке глагол start имеет множество значений, от «начать» до «запустить» оборудование. Как отмечает cambridge.org, он используется для «to begin doing something», что именно мы делаем, когда start‑уем Snort. В определении merriam-webster.com указано, что start может означать «to begin a course or journey», аналогично запуску процесса мониторинга сети.

Автоматизация запуска при старте Termux

Создадим скрипт ~/start-snort.sh:

#!/data/data/com.termux/files/usr/bin/bash
proot-distro login ubuntu-20.04 --shared-tmp -- bash -c "snort -c /etc/snort/snort.conf -i wlan0 -A console -q &"

Сделаем его исполняемым:

chmod +x ~/start-snort.sh

И добавим в ~/.bashrc строку, чтобы скрипт запускался каждый раз при открытии Termux:

echo "~/start-snort.sh" >> ~/.bashrc

Заключение

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

Если вам нужен более глубокий аудит сети, настройка корпоративных SIEM‑решений или поддержка в развертывании Snort на множестве устройств, команда RybinskLab готова помочь. Мы предоставляем консалтинг, настройку и сопровождение систем безопасности под любые задачи.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом РыбинскЛАБ.

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

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

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

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