Мобильный мониторинг сети становится всё более востребованным, а 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 готова помочь. Мы предоставляем консалтинг, настройку и сопровождение систем безопасности под любые задачи.