Un Raspberry sempre acceso che ascolta la rete e ti scrive su Telegram quando qualcosa non torna: qualcuno che si spaccia per il router, un DHCP abusivo, i DNS cambiati, una scansione, un dispositivo mai visto.
pi@rpi3:~ $ sentinella --version ▄▄▄▄▄ ▄█▄ ▄█████████▄ █ ▄███████████▄ █ ██▀███▀██ █ ▀███████▀ █ sentinella ▄▄▄▄▄███▄▄▄▄▄ █ sorveglia la tua LAN ███▀███████▀███ █ ███ ███████ ███ █ versione 0.1.0 ███ ███████ ▀██▄▄▄█ ▀▀ ███▀███ ▀▀▀▀█ ███ ███ █ ███ ███ █ ▄████ ████▄ ▀
Ogni avviso dice cosa è successo, chi è stato e cosa fare, in italiano. Lo stesso avviso non si ripete prima di mezz'ora, e se qualcuno prova a sommergerla di eventi ti arriva un riassunto invece di cento messaggi.
Un dispositivo che risponde al posto del router, un server DHCP che non è il tuo, un MAC nuovo che usa l'IP del DHCP vero, migliaia di MAC inventati al secondo per confondere lo switch. Sono gli attacchi che portano il tuo traffico a passare da qualcun altro.
DNS o gateway annunciati dal DHCP diversi da ieri, due dispositivi che si contendono lo stesso IP, un flood di ARP, il router o il DHCP che smettono di rispondere. A volte sei stato tu, a volte no: lei te lo dice subito.
Ogni dispositivo mai visto, con il produttore ricavato dal MAC e il nome che gli hai dato tu nella configurazione. E le scansioni ARP: normali per un NAS, sospette per una lampadina smart.
Gli otto controlli di L2 Anomaly di NetForge, riscritti per girare sempre, giorno e notte.
Ascolta l'ARP e ogni 30 secondi chiede lei stessa chi è il router. Un MAC diverso o due che rispondono insieme è ARP spoofing.
Ogni 5 minuti chiede un indirizzo e guarda chi lo offre. Un server non ammesso è il modo classico per dirottare tutta la LAN.
Confronta cosa annuncia il DHCP con la volta prima: DNS cambiati sono il segno tipico di un router compromesso.
Lo stesso indirizzo usato da due MAC in pochi minuti: un conflitto, o qualcuno che ruba l'identità di un altro.
Conta gli ARP al secondo e quanti indirizzi diversi chiede ogni MAC: distingue un flood da una scansione, anche velocissima.
Ogni MAC mai visto, con il produttore. Riconosce i MAC casuali dei telefoni, così non ti allarmi per niente.
Tre controlli di fila senza risposta e ti avvisa; quando tornano, te lo dice con un ✅.
Migliaia di MAC inventati al secondo, su qualunque protocollo, per mandare in tilt lo switch. Un solo allarme, e intanto non impara la spazzatura.
Niente configurazione obbligatoria, niente pannello web, niente cloud: un servizio che parte con il Raspberry e resta lì.
Al primo avvio osserva la rete in silenzio per 10 minuti: router, server DHCP, DNS, dispositivi. Poi ti manda un riepilogo da confrontare con il pannello del router.
Su una rete con switch molte risposte non arrivano a chi ascolta e basta. Per questo chiede lei stessa al router e al DHCP: le risposte arrivano a lei.
Si ricorda la rete tra un riavvio e l'altro, non ripete lo stesso avviso e non si fa zittire da chi la sommerge di eventi. Se muore lei, ti avvisa healthchecks.io.
Niente pannelli, niente cloud, niente database. Un contadino col fucile davanti al cancello, che urla su Telegram quando passa qualcuno di strano.
Per sorvegliare una rete è esattamente quello che serve: meno pezzi ha, meno cose possono rompersi o essere attaccate. La sentinella non apre nessuna porta.
Se vuoi dare un'occhiata alla rete senza aspettare un avviso, sentinella --html scrive una pagina di stato: chi c'è in rete adesso, i dispositivi nuovi, gli allarmi degli ultimi 7 giorni con una fascia rossa in cima quando qualcosa non va. La genera il cron, la serve il web server che hai già.
*/5 * * * * root /usr/sbin/runuser -u sentinella -- \ /usr/local/bin/sentinella --html > /var/www/stato/index.html
curl.CAP_NET_RAW per leggere i pacchetti.Va su un qualsiasi Raspberry con Raspberry Pi OS, a 32 o a 64 bit, collegato alla LAN che vuoi sorvegliare. Meglio con il cavo.
# sul Raspberry, nella cartella del pacchetto sudo sh install.sh sudo nano /etc/sentinella/config.toml # token e chat_id del tuo bot Telegram sudo -u sentinella sentinella --prova-telegram sudo systemctl restart sentinella
# e poi, quando vuoi sudo -u sentinella sentinella --dispositivi # chi ha visto finora sudo sentinella --reset # dimentica la rete, prima di spostare il Pi
Lo script installa quello che serve, crea l'utente sentinella e il servizio, e se lo rilanci aggiorna il binario senza toccare la configurazione.
Per ora la distribuisco a mano: scrivimi e ti preparo il pacchetto per il tuo Raspberry.
Scrivimi