Мобильные устройства становятся всё более привлекательной целью для кибератак. Стандартные средства защиты Android ограничены, поэтому многие пользователи ищут гибкие решения, позволяющие контролировать сетевой трафик в реальном времени. Termux — мощный эмулятор терминала, который превращает Android‑смартфон в полноценную Linux‑среду. В этой статье мы покажем, как построить систему IDS/IPS (Intrusion Detection/Prevention System) непосредственно на устройстве, используя открытые инструменты Suricata и Snort.
Что такое IDS/IPS и зачем они нужны на Android
IDS (система обнаружения вторжений) анализирует сетевой трафик и генерирует сигналы о подозрительных действиях. IPS (система предотвращения вторжений) способна автоматически блокировать такие соединения. На Android такие возможности позволяют:
- Выявлять попытки сканирования портов и эксплойтов.
- Блокировать известные вредоносные домены и IP‑адреса.
- Получать мгновенные уведомления о подозрительной активности.
- Вести детализированные логи для последующего аудита.
Все это достигается без необходимости установки сторонних приложений из магазина, что повышает уровень конфиденциальности.
Подготовка среды Termux
Перед тем как приступить к установке IDS/IPS, необходимо подготовить Termux и установить базовые пакеты.
pkg update && pkg upgrade -y
Установим репозитории, позволяющие работать с более широким набором пакетов.
pkg install root-repo
Далее установим инструменты, необходимые для работы Suricata и Snort.
pkg install git curl wget tar proot-distro \
python clang make libpcap-dev libnetfilter_queue-dev \
libyaml-dev zlib-dev openssl-dev pcre-dev
Для доступа к сетевому интерфейсу в режиме «root» потребуется предоставить Termux привилегии root. Если устройство имеет root‑доступ, выполните:
su -c "termux-chroot"
Если root‑доступа нет, можно использовать proot‑окружение, однако возможности IPS будут ограничены.
Установка и настройка Suricata
Suricata – современный движок IDS/IPS с поддержкой многопоточности. В репозитории Termux она уже доступна.
pkg install suricata
Создадим рабочий каталог и скопируем пример конфигурации.
mkdir -p $HOME/suricata/{etc,log,rules}
cp /data/data/com.termux/files/usr/etc/suricata/suricata.yaml $HOME/suricata/etc/
Отредактируем suricata.yaml, указав путь к правилам и логу.
sed -i "s|#default-rule-path: /etc/suricata/rules|default-rule-path: $HOME/suricata/rules|" $HOME/suricata/etc/suricata.yaml
sed -i "s|#default-log-dir: /var/log/suricata|default-log-dir: $HOME/suricata/log|" $HOME/suricata/etc/suricata.yaml
Скачиваем набор базовых правил Emerging Threats (ET) – открытый и регулярно обновляемый.
wget -O $HOME/suricata/rules/emerging.rules.tar.gz https://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
tar -xzf $HOME/suricata/rules/emerging.rules.tar.gz -C $HOME/suricata/rules --strip-components=1
Запускаем Suricata в режиме IDS (только мониторинг) для проверки конфигурации.
suricata -c $HOME/suricata/etc/suricata.yaml -i any -l $HOME/suricata/log
Если всё работает, можно включить режим IPS, добавив параметр --af-packet (требуется root).
suricata -c $HOME/suricata/etc/suricata.yaml -i any --af-packet -l $HOME/suricata/log
Для автоматического запуска при загрузке устройства создадим простейший скрипт.
cat > $HOME/start_suricata.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
su -c "suricata -c $HOME/suricata/etc/suricata.yaml -i any --af-packet -l $HOME/suricata/log" &
EOF
chmod +x $HOME/start_suricata.sh
Запускать его можно вручную или привязать к планировщику crontab (Termux поддерживает cron через пакет cronie).
Установка и настройка Snort (альтернатива)
Snort – классический движок IDS/IPS, широко использующийся в корпоративных сетях. В Termux его необходимо собрать из исходников.
git clone https://github.com/snort3/snort3.git $HOME/snort3
cd $HOME/snort3
./configure_cmake.sh --prefix=$HOME/snort3/install
cd build
make -j$(nproc)
make install
Создадим конфигурационный файл snort.lua и укажем путь к правилам.
mkdir -p $HOME/snort3/rules
cp $HOME/snort3/etc/snort/snort.lua.example $HOME/snort3/etc/snort/snort.lua
sed -i "s|RULE_PATH = "/etc/snort/rules"|RULE_PATH = "$HOME/snort3/rules"|" $HOME/snort3/etc/snort/snort.lua
Для правил используем тот же набор Emerging Threats, адаптировав их под формат Snort.
wget -O $HOME/snort3/rules/emerging.rules.tar.gz https://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz
tar -xzf $HOME/snort3/rules/emerging.rules.tar.gz -C $HOME/snort3/rules --strip-components=1
Запуск Snort в режиме IDS:
$HOME/snort3/install/bin/snort -c $HOME/snort3/etc/snort/snort.lua -i any -A console
Для включения IPS добавляем параметр --daq afpacket (требуется root).
$HOME/snort3/install/bin/snort -c $HOME/snort3/etc/snort/snort.lua -i any --daq afpacket -A console
Интеграция с Termux‑API: уведомления и логи
Для мгновенного оповещения о срабатывании правил установим пакет termux-api и используем команду termux-notification.
pkg install termux-api
Создадим скрипт, который будет парсить лог Suricata и отправлять уведомления.
cat > $HOME/suricata_alert.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
LOGFILE="$HOME/suricata/log/fast.log"
TAIL="$(tail -n1 $LOGFILE)"
if echo "$TAIL" | grep -q "[ALERT]"; then
MSG="Suricata Alert: $(echo $TAIL | cut -d'|' -f2)"
termux-notification --title "IDS Alert" --content "$MSG"
fi
EOF
chmod +x $HOME/suricata_alert.sh
Запланируем периодический запуск скрипта каждые 30 секунд.
while :; do $HOME/suricata_alert.sh; sleep 30; done &
Аналогичный подход можно реализовать для Snort, используя его вывод в файл alert.fast.
Тестирование и отладка
Для проверки работы IDS/IPS удобно использовать утилиту nmap или генераторы трафика hping3. Пример сканирования открытых портов, который должен сработать по правилу ET:
nmap -sS -p 80,443,22 192.168.1.1
После выполнения проверьте лог $HOME/suricata/log/fast.log – в нём появятся записи вида ET SCAN NMAP -sS. Если система работает в режиме IPS, соединения будут автоматически сброшены.
Заключение
С помощью Termux можно превратить обычный Android‑смартфон в полноценный узел сетевой безопасности, способный обнаруживать и предотвращать атаки в реальном времени. Выбор между Suricata и Snort зависит от ваших предпочтений: Suricata проще в установке и более эффективна в многопоточной работе, а Snort предлагает более гибкую систему правил.
Если вы хотите получить профессиональную настройку мобильной защиты, аудит безопасности вашего Android‑устройства или разработать кастомные правила IDS/IPS, обратитесь в RybinskLab. Мы предоставляем услуги по интеграции Termux, построению комплексных систем мониторинга и обучению персонала безопасному использованию мобильных платформ.