
iNTERCEPT, una piattaforma gratuita e open-source che unisce i migliori strumenti di intelligence sui segnali in un'interfaccia unica e accessibile.
<p align="center"> <img src="https://raw.githubusercontent.com/smittix/intercept/HEAD/static/images/readme-banner.svg" alt="iNTERCEPT — Piattaforma di Signal Intelligence" 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="Licenza Apache 2.0"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg" alt="Piattaforma"> </p> <p align="center"> Supporta lo sviluppatore di questo progetto open-source </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>Piattaforma di Signal Intelligence</strong><br> Un'interfaccia web per strumenti di radio definita via software. </p> <p align="center"> <img src="https://assets.kitploit.com/production/public/readmes/12080/ccf5fc125324afe151202823a136a895449841e2cdd28325dcf6290230cda0d1.png" alt="Screenshot"> </p> --- ## Funzionalità - **Decodifica Pager** - POCSAG/FLEX tramite rtl_fm + multimon-ng - **Sensori a 433MHz** - Stazioni meteo, TPMS, dispositivi IoT tramite rtl_433 - **Analizzatore Sub-GHz** - Cattura RF e decodifica di protocolli per bande ISM da 300-928 MHz tramite HackRF - **Tracciamento Aeromobili** - ADS-B tramite dump1090 con mappa in tempo reale e radar - **Tracciamento Navi** - Tracciamento navi AIS con monitoraggio delle chiamate di soccorso VHF DSC - **Messaggistica ACARS** - Messaggi datalink degli aeromobili tramite acarsdec - **VDL2** - Decodifica datalink aeromobili VHF Data Link Mode 2 tramite dumpvdl2 - **Listening Post** - Scanner di frequenze a banda larga con monitoraggio audio in tempo reale - **Satelliti Meteo** - Decodifica immagini NOAA APT e Meteor LRPT tramite SatDump con pianificazione automatica - **WebSDR** - Ascolto remoto HF/onde corte tramite la rete KiwiSDR - **ISS SSTV** - Ricezione immagini slow-scan TV dalla Stazione Spaziale Internazionale - **HF SSTV** - SSTV terrestre su frequenze in onde corte (80m-10m, VHF, UHF) - **APRS** - Rapporti di posizione e telemetria di radioamatori packet radio tramite direwolf - **Tracciamento Satelliti** - Previsione dei passaggi con grafico polare e mappa della traccia a terra - **Contatori di Utilità** - Lettura di contatori elettrici, gas e acqua tramite rtlamr - **Cronologia ADS-B** - Cronologia persistente degli aeromobili con dashboard di reportistica (Postgres opzionale) - **Scansione WiFi** - Ricognizione in modalità monitor tramite aircrack-ng - **Scansione Bluetooth** - Rilevamento dispositivi e rilevamento tracker (con supporto Ubertooth) - **BT Locate** - Localizzazione di dispositivi Bluetooth SAR con mappatura della traccia del segnale etichettata GPS e avvisi di prossimità - **WiFi Locate** - Localizzazione di punti di accesso WiFi tramite BSSID con misuratore di segnale in tempo reale, stima della distanza e audio di prossimità - **GPS** - Tracciamento della posizione GPS in tempo reale con mappa live, velocità, altitudine e informazioni sui satelliti - **TSCM** - Controsorveglianza con confronto della baseline RF e rilevamento delle minacce - **Meshtastic** - Integrazione della rete mesh LoRa - **Meteo Spaziale** - Dati solari e geomagnetici in tempo reale da NOAA SWPC, NASA SDO e HamQSL (nessun SDR richiesto) - **Spy Stations** - Database di number stations e reti HF diplomatiche - **Agenti Remoti** - SIGINT distribuito con nodi sensore remoti - **Modalità Offline** - Risorse incluse per distribuzioni in ambienti air-gapped/sul campo - **Drone Intelligence** - Rilevamento UAV multi-vettore tramite ASTM F3411 Remote ID (WiFi/BLE), RF RTL-SDR 433/868 MHz e scansione HackRF 2.4/5.8 GHz con mappa dei contatti live e punteggio di rischio --- ## Installazione / Debian / Ubuntu / macOS ### Avvio Rapido ```bash git clone https://github.com/smittix/intercept.git cd intercept ./setup.sh # Interactive menu (first run launches setup wizard) sudo ./start.sh ``` Al primo avvio, `setup.sh` lancia una **procedura guidata** che rileva il tuo sistema operativo, ti consente di scegliere i profili di installazione, configura l'ambiente Python e, facoltativamente, configura le variabili d'ambiente e PostgreSQL. Nelle esecuzioni successive, apre un **menu interattivo**: ``` 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 ``` > **Server di produzione vs dev:** `start.sh` rileva automaticamente gunicorn + gevent ed esegue un server di produzione con greenlet cooperativi — gestisce più client SSE/WebSocket senza bloccarsi. Torna al server di sviluppo Flask se gunicorn non è installato. Per uno sviluppo locale rapido, puoi comunque usare direttamente `sudo -E venv/bin/python intercept.py`. ### Profili di installazione Scegli cosa installare durante la procedura guidata o tramite l'opzione di menu 1: | # | Profilo | Strumenti | |---|---------|-------| | 1 | Core SIGINT | rtl_sdr, multimon-ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd | | 2 | Marittimo e Radio | AIS-catcher, direwolf | | 3 | Meteo e Spazio | SatDump, radiosonde_auto_rx | | 4 | Sicurezza RF | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR | | 5 | SIGINT completo | Tutti i precedenti | | 6 | Personalizzato | Checklist per singolo strumento | È possibile combinare più profili (ad es. inserisci `1 3` per Core + Meteo). ### Flag 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 ``` > **Nota:** Docker richiede la modalità privilegiata per l'accesso agli SDR USB. I dispositivi SDR vengono passati tramite `/dev/bus/usb`. > **I tuoi dati:** impostazioni, utenti, regole di allerta, watchlist e messaggi decodificati risiedono in `./instance` sull'host, così sopravvivono a `--build`. Eseguendo l'aggiornamento da un file compose privo di quel mount? Copia i vecchi dati prima di ricostruire: `docker cp intercept:/app/instance ./instance`. Per le build multi-architettura (amd64 + arm64 per Raspberry Pi), vedi `build-multiarch.sh` — gestisce la cross-compilazione e il push al registry in un unico passaggio. ### Configurazione dell'ambiente Usa l'**Environment Configurator** (opzione 5 del menu) per impostare in modo interattivo qualsiasi variabile `INTERCEPT_*`. Le impostazioni vengono salvate in un file `.env` che `start.sh` carica automaticamente all'avvio. Puoi anche creare o modificare `.env` manualmente: ```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 ``` ### Cronologia ADS-B (opzionale) La funzionalità di cronologia ADS-B salva i messaggi degli aeromobili in PostgreSQL per l'analisi a lungo termine. **Configurazione automatizzata (installazione locale):** ```bash ./setup.sh --postgres-setup # Or use menu option 3: Database Setup ``` Questo installerà PostgreSQL se necessario, creerà il database/utente/tabelle e scriverà le impostazioni di connessione in `.env`. **Docker:** ```bash docker compose --profile history up -d ``` Imposta le seguenti variabili d'ambiente (in `.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 ``` Per memorizzare i dati di Postgres su storage esterno, impostare `PGDATA_PATH` (il valore predefinito è `./pgdata`): ```bash PGDATA_PATH=/mnt/usbpi1/intercept/pgdata ``` Poi apri **/adsb/history** per la dashboard di reporting. ### Verifica dello stato di salute del sistema Verifica che l'installazione sia completa e funzionante: ```bash ./setup.sh --health-check # Or use menu option 2 ``` Verifica gli strumenti installati, i dispositivi SDR, la disponibilità delle porte, i permessi, il venv Python, la configurazione `.env` e la connettività a PostgreSQL. ### Aprire l'interfaccia Dopo l'avvio, apri **http://localhost:5050** nel tuo browser. **Non esiste una password predefinita.** Al primo avvio, INTERCEPT ne genera una per l'account `admin`, la registra nei log e la scrive in `instance/.initial_password`. Accedi con quella, e ti verrà chiesto di impostarne una tua prima che l'interfaccia si sblocchi. Per sceglierne una tua fin dall'inizio, imposta `INTERCEPT_ADMIN_PASSWORD` prima del primo avvio. Consulta [Security](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md#authentication) per i dettagli e per il motivo per cui questo ha sostituito la precedente impostazione predefinita `admin`/`admin`. --- ## Requisiti hardware | Hardware | Scopo | Prezzo | |----------|---------|-------| | **RTL-SDR** | Necessario per tutte le funzionalità SDR | ~$25-35 | | **Adattatore WiFi** | Deve supportare la modalità promiscua (monitor) | ~$20-40 | | **Adattatore Bluetooth** | Scansione dispositivi (di solito integrato) | - | | **GPS** | Qualsiasi unità GPS supportata da Linux | ~10 | La maggior parte delle funzionalità funziona con un dongle RTL-SDR di base (RTL2832U + R820T2). | :exclamation: Non usi un dispositivo RTL-SDR? | |----------------------------------------------- |Intercept supporta qualsiasi dispositivo supportato da SoapySDR. Devi però avere installato il modulo corretto per il tuo dispositivo! Ad esempio, se hai un dispositivo SDRPlay dovresti installare soapysdr-module-sdrplay. | :exclamation: Uso del GPS | |----------------------------------------------- |gpsd è necessario per la localizzazione in tempo reale. Intercept verifica automaticamente se gpsd è in esecuzione in background ogni volta che viene visualizzata una mappa. --- ## Server Discord <p align="center"> <a href="https://discord.gg/EyeksEJmWE">Unisciti al nostro Discord</a> </p> --- ## Documentazione - [Guida all'uso](https://github.com/smittix/intercept/blob/main/docs/USAGE.md) - Istruzioni dettagliate per ciascuna modalità - [Guida hardware](https://github.com/smittix/intercept/blob/main/docs/HARDWARE.md) - Hardware SDR, installazione manuale e configurazione avanzata - [Risoluzione dei problemi](https://github.com/smittix/intercept/blob/main/docs/TROUBLESHOOTING.md) - Problemi comuni e soluzioni - [Agenti distribuiti](https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md) - Distribuzione di nodi sensore remoti - [Webhook](https://github.com/smittix/intercept/blob/main/docs/WEBHOOKS.md) - Regole di avviso e integrazione webhook - [Sicurezza](https://github.com/smittix/intercept/blob/main/docs/SECURITY.md) - Sicurezza di rete e buone pratiche --- ## Disclaimer Questo progetto è stato sviluppato utilizzando l'IA come partner di programmazione, combinando la direzione umana con l'implementazione assistita dall'IA. L'obiettivo: rendere il Software Defined Radio più accessibile fornendo un'interfaccia pulita e unificata per i comuni strumenti SDR. **Questo software è destinato esclusivamente a scopi educativi e di test autorizzati.** - Utilizzare solo con la debita autorizzazione - Intercettare comunicazioni senza consenso può essere illegale - Sei responsabile del rispetto delle leggi applicabili --- ## Licenza Licenza Apache 2.0 - vedi [LICENSE](https://github.com/smittix/intercept/blob/main/LICENSE) ## Autore Creato da **smittix** - [GitHub](https://github.com/smittix) ## Ringraziamenti [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/)