
iNTERCEPT, бесплатная платформа с открытым исходным кодом, объединяющая лучшие инструменты радиоэлектронной разведки в единый доступный интерфейс.
<p align="center"> <img src="https://raw.githubusercontent.com/smittix/intercept/HEAD/static/images/readme-banner.svg" alt="iNTERCEPT — платформа радиоразведки" width="100%"> </p> <p align="center"> <img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"> <img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="Лицензия Apache 2.0"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg" alt="Платформа"> </p> <p align="center"> Поддержите разработчика этого проекта с открытым исходным кодом </p> <p align="center"> <a href="https://www.buymeacoffee.com/smittix" target="_blank"><img src="https://assets.kitploit.com/production/public/readmes/12080/608ca47c77206e90cac89def2d3fa14b17084ebc4a0a8dce231e4f0b3a78be1a.webp" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> </p> <p align="center"> <strong>Платформа радиоразведки</strong><br> Веб-интерфейс для инструментов программно-определяемого радио. </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12080/ccf5fc125324afe151202823a136a895449841e2cdd28325dcf6290230cda0d1.png" alt="Скриншот"> </p> --- ## Возможности - **Декодирование пейджеров** — POCSAG/FLEX через rtl_fm + multimon-ng - **Датчики 433 МГц** — метеостанции, TPMS, IoT-устройства через rtl_433 - **Анализатор Sub-GHz** — захват RF и декодирование протоколов для ISM-диапазонов 300–928 МГц через HackRF - **Отслеживание самолётов** — ADS-B через dump1090 с картой в реальном времени и радаром - **Отслеживание судов** — отслеживание судов AIS с мониторингом бедствия VHF DSC - **Обмен сообщениями ACARS** — сообщения линии передачи данных самолётов через acarsdec - **VDL2** — декодирование линии передачи данных самолётов VHF Data Link Mode 2 через dumpvdl2 - **Пост прослушивания** — широкополосный сканер частот с мониторингом аудио в реальном времени - **Метеоспутники** — декодирование изображений NOAA APT и Meteor LRPT через SatDump с авто-планировщиком - **WebSDR** — удалённое прослушивание HF/коротких волн через сеть KiwiSDR - **ISS SSTV** — приём изображений медленного телевидения с Международной космической станции - **HF SSTV** — наземное SSTV на коротковолновых частотах (80м–10м, VHF, UHF) - **APRS** — отчёты о местоположении и телеметрия любительской пакетной радиосвязи через direwolf - **Отслеживание спутников** — прогнозирование пролётов с полярным графиком и картой наземной траектории - **Коммунальные счётчики** — считывание показаний электросчётчиков, газовых и водяных счётчиков через rtlamr - **История ADS-B** — постоянная история самолётов с панелью отчётов (Postgres опционально) - **Сканирование WiFi** — разведка в режиме мониторинга через aircrack-ng - **Сканирование Bluetooth** — обнаружение устройств и выявление трекеров (с поддержкой Ubertooth) - **BT Locate** — поиск Bluetooth-устройств для SAR с картографированием сигнального следа с GPS-метками и оповещениями о близости - **WiFi Locate** — поиск точек доступа WiFi по BSSID с измерителем сигнала в реальном времени, оценкой расстояния и звуковым оповещением о близости - **GPS** — отслеживание позиции GPS в реальном времени с живой картой, скоростью, высотой и информацией о спутниках - **TSCM** — противодействие наблюдению со сравнением RF-базовой линии и обнаружением угроз - **Meshtastic** — интеграция с сетью LoRa mesh - **Космическая погода** — данные о солнечной и геомагнитной активности в реальном времени от NOAA SWPC, NASA SDO и HamQSL (SDR не требуется) - **Шпионские станции** — база данных номерных станций и дипломатических HF-сетей - **Удалённые агенты** — распределённая SIGINT с удалёнными сенсорными узлами - **Автономный режим** — встроенные ресурсы для изолированных/полевых развёртываний - **Разведка дронов** — многовекторное обнаружение БПЛА через ASTM F3411 Remote ID (WiFi/BLE), RF RTL-SDR 433/868 МГц и сканирование HackRF 2.4/5.8 ГГц с картой контактов в реальном времени и оценкой рисков --- ## Установка / Debian / Ubuntu / macOS ### Быстрый старт ```bash git clone https://github.com/smittix/intercept.git cd intercept ./setup.sh # Interactive menu (first run launches setup wizard) sudo ./start.sh ``` При первом запуске `setup.sh` запускает **пошаговый мастер**, который определяет вашу ОС, позволяет выбрать профили установки, настраивает окружение Python и, при желании, конфигурирует переменные окружения и PostgreSQL. При последующих запусках открывается **интерактивное меню**: ``` INTERCEPT Setup Menu ════════════════════════════════════════ 1) Install / Add Modules 2) System Health Check 3) Database Setup (ADS-B History) 4) Update Tools 5) Environment Configurator 6) Uninstall / Cleanup 7) View Status 0) Exit ``` > **Продакшн-сервер vs Dev-сервер:** `start.sh` автоматически определяет gunicorn + gevent и запускает продакшн-сервер с кооперативными гринлетами — обрабатывает несколько SSE/WebSocket-клиентов без блокировки. Если gunicorn не установлен, используется dev-сервер Flask. Для быстрой локальной разработки вы по-прежнему можете напрямую использовать `sudo -E venv/bin/python intercept.py`. ### Профили установки Выберите, что устанавливать, во время работы мастера или через пункт меню 1: | # | Профиль | Инструменты | |---|---------|-------| | 1 | Core SIGINT | rtl_sdr, multimon-ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd | | 2 | Maritime & Radio | AIS-catcher, direwolf | | 3 | Weather & Space | SatDump, radiosonde_auto_rx | | 4 | RF Security | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR | | 5 | Full SIGINT | Все вышеперечисленное | | 6 | Custom | Чек-лист по каждому инструменту | Несколько профилей можно комбинировать (например, введите `1 3` для Core + Weather). ### Флаги CLI ```bash ./setup.sh --non-interactive # Headless full install (same as legacy behavior) ./setup.sh --profile=core,weather # Install specific profiles ./setup.sh --health-check # Check system health and exit ./setup.sh --postgres-setup # Run PostgreSQL setup and exit ./setup.sh --menu # Force interactive menu ``` ### Docker ```bash git clone https://github.com/smittix/intercept.git cd intercept docker compose --profile basic up -d --build ``` > **Примечание:** Docker требует привилегированного режима для доступа к USB SDR. Устройства SDR передаются через `/dev/bus/usb`. > **Ваши данные:** настройки, пользователи, правила оповещений, списки наблюдения и декодированные сообщения хранятся в `./instance` на хосте, поэтому они сохраняются при `--build`. Обновляетесь с compose-файла без этого монтирования? Скопируйте старые данные перед пересборкой: `docker cp intercept:/app/instance ./instance`. Для мультиархитектурных сборок (amd64 + arm64 для Raspberry Pi) см. `build-multiarch.sh` — он выполняет кросс-компиляцию и отправку в реестр за один шаг. ### Настройка окружения Используйте **Конфигуратор окружения** (пункт меню 5), чтобы интерактивно задать любую переменную `INTERCEPT_*`. Настройки сохраняются в файл `.env`, который `start.sh` автоматически подхватывает при запуске. Вы также можете создать или отредактировать `.env` вручную: ```bash # .env (auto-loaded by start.sh) INTERCEPT_PORT=5050 INTERCEPT_ADSB_AUTO_START=true INTERCEPT_DEFAULT_LAT=51.5074 INTERCEPT_DEFAULT_LON=-0.1278 ``` ### История ADS-B (опционально) Функция истории ADS-B сохраняет сообщения воздушных судов в PostgreSQL для долгосрочного анализа. **Автоматическая настройка (локальная установка):** ```bash ./setup.sh --postgres-setup # Or use menu option 3: Database Setup ``` Это установит PostgreSQL при необходимости, создаст базу данных/пользователя/таблицы и запишет параметры подключения в `.env`. **Docker:** ```bash docker compose --profile history up -d ``` Задайте следующие переменные окружения (в `.env`): ```bash INTERCEPT_ADSB_HISTORY_ENABLED=true INTERCEPT_ADSB_DB_HOST=adsb_db INTERCEPT_ADSB_DB_PORT=5432 INTERCEPT_ADSB_DB_NAME=intercept_adsb INTERCEPT_ADSB_DB_USER=intercept INTERCEPT_ADSB_DB_PASSWORD=intercept ``` Для хранения данных Postgres на внешнем хранилище задайте `PGDATA_PATH` (по умолчанию `./pgdata`): ```bash PGDATA_PATH=/mnt/usbpi1/intercept/pgdata ``` Затем откройте **/adsb/history** для панели отчётности. ### Проверка работоспособности системы Убедитесь, что установка завершена и работает корректно: ```bash ./setup.sh --health-check # Or use menu option 2 ``` Проверяет установленные инструменты, SDR-устройства, доступность портов, разрешения, Python venv, конфигурацию `.env` и подключение к PostgreSQL. ### Открытие интерфейса После запуска откройте **http://localhost:5050** в браузере. **Пароля по умолчанию нет.** При первом запуске INTERCEPT генерирует пароль для учётной записи `admin`, записывает его в журнал и сохраняет в `instance/.initial_password`. Войдите с этим паролем, после чего вам будет предложено задать собственный пароль, прежде чем интерфейс разблокируется. Чтобы задать свой пароль заранее, установите `INTERCEPT_ADMIN_PASSWORD` перед первым запуском. Подробности и объяснение того, почему это заменило прежний пароль по умолчанию `admin`/`admin`, см. в разделе [Безопасность](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md#authentication). --- ## Требования к оборудованию | Оборудование | Назначение | Цена | |----------|---------|-------| | **RTL-SDR** | Требуется для всех функций SDR | ~$25-35 | | **WiFi-адаптер** | Должен поддерживать режим мониторинга (promiscuous) | ~$20-40 | | **Bluetooth-адаптер** | Сканирование устройств (обычно встроенный) | - | | **GPS** | Любой GPS-модуль с поддержкой Linux | ~10 | Большинство функций работает с базовым донглом RTL-SDR (RTL2832U + R820T2). | :exclamation: Не используете устройство RTL-SDR? | |----------------------------------------------- |Intercept поддерживает любое устройство, поддерживаемое SoapySDR. Однако у вас должен быть установлен правильный модуль для вашего устройства! Например, если у вас устройство SDRPlay, вам нужно установить soapysdr-module-sdrplay. | :exclamation: Использование GPS | |----------------------------------------------- |Для определения местоположения в реальном времени требуется gpsd. Intercept автоматически проверяет, запущен ли gpsd в фоновом режиме, при отображении любых карт. --- ## Сервер Discord <p align="center"> <a href="https://discord.gg/EyeksEJmWE">Присоединяйтесь к нашему Discord</a> </p> --- ## Документация - [Руководство по использованию](https://github.com/smittix/intercept/blob/main/docs/USAGE.md) — подробные инструкции для каждого режима - [Руководство по оборудованию](https://github.com/smittix/intercept/blob/main/docs/HARDWARE.md) — SDR-оборудование, ручная установка и расширенная настройка - [Устранение неполадок](https://github.com/smittix/intercept/blob/main/docs/TROUBLESHOOTING.md) — типичные проблемы и их решения - [Распределённые агенты](https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md) — развёртывание удалённых сенсорных узлов - [Вебхуки](https://github.com/smittix/intercept/blob/main/docs/WEBHOOKS.md) — правила оповещений и интеграция с вебхуками - [Безопасность](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md) — сетевая безопасность и лучшие практики --- ## Отказ от ответственности Этот проект разрабатывался с использованием ИИ в качестве партнёра по программированию, сочетая человеческое руководство с реализацией при помощи ИИ. Цель: сделать программно-определяемое радио более доступным, предоставив чистый, унифицированный интерфейс для распространённых SDR-инструментов. **Это программное обеспечение предназначено только для образовательных целей и авторизованного тестирования.** - Используйте только при наличии надлежащего разрешения - Перехват коммуникаций без согласия может быть незаконным - Вы несёте ответственность за соблюдение применимых законов --- ## Лицензия Лицензия Apache 2.0 — см. [LICENSE](https://github.com/smittix/intercept/blob/main/LICENSE) ## Автор Создано **smittix** — [GitHub](https://github.com/smittix) ## Благодарности [rtl-sdr](https://osmocom.org/projects/rtl-sdr/wiki) | [multimon-ng](https://github.com/EliasOenal/multimon-ng) | [rtl_433](https://github.com/merbanan/rtl_433) | [dump1090](https://github.com/flightaware/dump1090) | [AIS-catcher](https://github.com/jvde-github/AIS-catcher) | [acarsdec](https://github.com/TLeconte/acarsdec) | [direwolf](https://github.com/wb2osz/direwolf) | [rtlamr](https://github.com/bemasher/rtlamr) | [dumpvdl2](https://github.com/szpajder/dumpvdl2) | [aircrack-ng](https://www.aircrack-ng.org/) | [Leaflet.js](https://leafletjs.com/) | [SatDump](https://github.com/SatDump/SatDump) | [Celestrak](https://celestrak.org/) | [Priyom.org](https://priyom.org/)