open source · zero dipendenze · python 3

OpenVPN GeoMap
& DNS Report Suite

Dashboard HTML statiche per sessioni VPN, geolocalizzazione IP, query DNS e blocco minacce RPZ. Pronte per crontab + nginx.
Modulare: funziona con solo OpenVPN, solo BIND o entrambi.

OVPN GeoMap — dashboard preview
Funzionalità

Tutto quello che serve, niente di più

Un unico toolkit che trasforma i log di OpenVPN e BIND in dashboard leggibili, senza database, senza framework, senza dipendenze esterne.

GeoMap interattiva

Mappa Leaflet con marker per ogni IP pubblico. Colori diversi per connessioni attive e storiche, popup con dettaglio ISP e utenti.

DNS Analytics

Statistiche query per client, dominio e tipo record. Top-N con barre proporzionali e contatori in tempo reale.

RPZ Threat Blocking

Report blocchi malware per zona RPZ, dominio e client. Distribuzione oraria dei blocchi con grafico a barre.

Sessioni VPN

Tracking completo connect/disconnect con durata, IP pubblico, IP VPN. Statistiche per utente e distribuzione oraria.

Dynamic DNS

Monitoraggio aggiornamenti DDNS automatici. Mappa IP-to-username e contatori add/delete per utente.

Zero dipendenze

Solo libreria standard Python 3. Nessun pip install, nessun database. Output HTML statico servibile con qualsiasi web server.

Modulare

Funziona con solo OpenVPN, solo BIND o entrambi. Se un log non esiste la sezione corrispondente non viene generata.

Report

Due dashboard, una visione completa

Report HTML statici con dark theme, responsive, generati da cron e serviti da nginx. Collegati tra loro con link di navigazione nell'header.

VPN Report + GeoMap

vpn-report.py
  • Stat cards: sessioni, connessi, utenti unici, IP unici, durata media
  • Mappa Leaflet con geolocalizzazione IP pubblici
  • Marker verdi (connessi ora) e blu (storici) con popup ISP
  • Sidebar con tab: Utenti, Località, Distribuzione oraria
  • Tabella sessioni con durata e stato
VPN GeoMap Report preview

DNS Report

dns-report.py
  • Stat cards: query totali, blocchi RPZ, sessioni VPN, utenti
  • Top client, top domini, distribuzione tipi record
  • Blocchi RPZ per zona, client e dominio
  • Grafico blocchi per ora del giorno
  • Aggiornamenti DDNS e riepilogo sessioni VPN
DNS Report preview
terminale
# Genera entrambi i report HTML
$ python3 vpn-report.py --format html
  VPN Report HTML scritto in /var/www/html/ovpn-geomap.html

$ python3 dns-report.py --format html
  DNS Report HTML scritto in /var/www/html/dns-report.html

# Oppure output testuale su stdout
$ python3 vpn-report.py -d 7 -u mario.rossi
# Report filtrato: ultimi 7 giorni, solo utente mario.rossi
Come funziona

Dai log al browser in 4 passi

Nessun agente da installare. Legge i log già presenti, genera HTML statico, cron fa il resto.

1

Log

OpenVPN e BIND scrivono i log nelle directory standard. Hook script per eventi connect/disconnect.

2

Parsing

I parser regex estraggono sessioni, query, blocchi RPZ e aggiornamenti DDNS con filtraggio temporale.

3

Rendering

Template HTML condiviso genera dashboard con stat cards, tabelle, grafici e mappa Leaflet.

4

Deploy

File HTML statici serviti da nginx. Cron rigenera i report ogni N minuti. Nessun backend richiesto.

Quick Start

Operativo in 5 minuti

Copia i file, adatta config.ini, lancia gli script. Fatto.

installazione
# 1. Clona il repository
# 1. Installa il pacchetto
$ sudo dpkg -i netforge-ovpn-reports_1.0.0_all.deb

# 2. Configura i path e il nome azienda
$ sudo vi /etc/netforge-reports/config.ini

# 3. Genera i report (cron automatico ogni 15 min incluso)
$ netforge-vpn-report --format html
$ netforge-dns-report --format html

# Report HTML pronti in /var/www/html/
  ovpn-geomap.html — mappa VPN + sessioni
  dns-report.html  — statistiche DNS + RPZ
Stack

Tecnologie

Minimale per design. Massima portabilità, nessuna dipendenza esterna da gestire.

Python 3

Solo stdlib, zero pip

Leaflet.js

Mappe interattive (CDN)

HTML/CSS

Dark theme, responsive

ip-api.com

GeoIP batch (opzionale)

CLI

Opzioni da riga di comando

Tutti i parametri di config.ini sono sovrascrivibili via CLI.

Flag Descrizione Default
-f, --formattext | htmltext
-o, --outputFile di outputstdout / config.ini
-d, --daysFiltra ultimi N giornitutto il log
--sinceDa data YYYY-MM-DDtutto il log
-u, --userFiltra per utente (CN)tutti
-c, --configPath config.ini alternativo./config.ini
Integrazione

Configurazioni perfette con NetForge

Questo progetto funziona con qualsiasi setup OpenVPN + BIND.
Ma con NetForge hai le configurazioni generate automaticamente, già compatibili e ottimizzate.

NetForge

NetForge — Security Infrastructure Toolkit

Genera configurazioni server OpenVPN con PKI completa, hook di logging strutturato, BIND con canali separati, zone DDNS e policy RPZ — tutto pronto per alimentare questi report senza configurazione manuale.

  • Server OpenVPN con PKI e certificati inline
  • Script hook connect/disconnect (formato log compatibile)
  • BIND logging: queries, rpz, update su file separati
  • Zona DDNS con chiave TSIG per nsupdate
  • Response Policy Zone con zone RPZ preconfigurate
  • Firewall iptables/nftables con regole VPN
  • Export ZIP completo con tutti i file
  • Audit sicurezza config OpenVPN e WireGuard
Scopri NetForge

Pronto per iniziare?

Scarica il pacchetto .deb o consulta la guida di installazione completa.

Download .deb Guida installazione