In questa lezione impari a
- leggere la dashboard e i grafici del traffico
- analizzare il traffico con ntopng
- catturare pacchetti e aprirli con Wireshark
- impostare notifiche e log remoti
Un firewall va tenuto d'occhio: in questa lezione vediamo gli strumenti per capire che cosa succede nella rete.
Perché il monitoring è critico?
Il monitoring è l'occhio sulla tua rete. Senza visibilità su cosa sta accadendo, sei cieco di fronte a problemi di performance, attacchi di sicurezza e anomalie. Un buon sistema di monitoring ti permette di:
- Rilevare Anomalie – Identificare picchi di traffico insoliti, connessioni sospette, dispositivi non autorizzati
- Troubleshooting Veloce – "Internet è lento" → Grafici mostrano saturazione banda da backup cloud
- Capacity Planning – Dati storici mostrano crescita traffico → upgrade banda preventivo
- Security Incident Response – Vedere chi ha fatto cosa, quando e verso dove durante un attacco
Cosa monitorare?
| Metrica | Perché Importante | Tool pfSense |
|---|---|---|
| Bandwidth Usage | Identificare saturazione, abusi, trend crescita | Traffic Graphs, ntopng |
| Active Connections | Vedere connessioni in tempo reale, rilevare malware (C&C) | States, ntopng |
| Top Talkers | Chi usa più banda? Quali applicazioni dominano? | ntopng, RRD Graphs |
| Firewall Blocks | Tentativi accesso non autorizzato, port scan | Firewall Logs |
| System Resources | CPU/RAM/Disk usage - bottleneck hardware | Dashboard, System Logs |
| Gateway Status | Uptime connessioni WAN, packet loss, latency | Gateway Status |
| DHCP Leases | Dispositivi attivi, pool exhaustion | DHCP Leases |
| VPN Connections | Utenti connessi, problemi autenticazione | OpenVPN Status |
Dashboard pfSense
Il Dashboard è la prima schermata che vedi loggandoti su pfSense. È completamente personalizzabile con widget che mostrano le metriche più importanti a colpo d'occhio.
Personalizzazione dashboard
- Accedi al Dashboard
Login su pfSense → Dashboard (homepage) - Aggiungi widget
Click + (Add Widget) in alto a sinistra
Si apre menu con tutti i widget disponibili - Widget consigliati
Essenziali: ☑ System Information (hostname, versione, uptime) ☑ Interfaces (stato WAN/LAN/DMZ, IP, up/down) ☑ Gateway (status gateway, latency, packet loss) ☑ Traffic Graphs (bandwidth real-time WAN/LAN) Sicurezza: ☑ Firewall Logs (ultimi blocchi) ☑ Services Status (stato servizi critici) Monitoring Avanzato: ☑ CPU/Memory/Disk Usage ☑ Temperature (se sensori disponibili) ☑ DHCP Leases (dispositivi attivi) ☑ OpenVPN (connessioni VPN attive) Opzionali: ☑ Wake on LAN (WOL rapido dispositivi) ☑ Smart Status (SMART disk se installato SSD/HDD) ☑ Package Info (aggiornamenti packages)
- Riorganizza widget
Drag & drop widget per posizionarli
Widget più importanti in alto - Configura widget
Click icona su ogni widget per opzioni:Traffic Graphs: - Interface: WAN (o LAN, DMZ) - Refresh Interval: 1 second (real-time) - Graph Type: Area (visivamente chiaro) Firewall Logs: - Number of entries: 20 (ultimi 20 blocchi) - Filter: Interface WAN (solo tentativi esterni)
- Salva layout
Le modifiche si salvano automaticamente
Ogni utente può avere dashboard personalizzata
Dashboard Multi-monitor. Se hai 2+ monitor, usa uno dedicato al dashboard pfSense in fullscreen.
- Browser fullscreen (F11) su secondo monitor
- Auto-refresh pagina ogni 30-60 secondi (estensione browser)
- Visibilità costante rete senza aprire/chiudere tab
Ideale per NOC (Network Operations Center) o admin desk.
Traffic graphs: analisi bandwidth
I Traffic Graphs mostrano utilizzo banda in tempo reale e storico per ogni interfaccia.

Visualizzare grafici Real-time
- Accedi a Traffic Graph
Vai in Status → Traffic Graph - Configura visualizzazione
Interface: WAN (o LAN, DMZ, VPN) Resolution: - 1 second: Real-time massima precisione - 5 seconds: Più smooth, meno jittery - 60 seconds: Trend generale Graph Style: - Area: Riempimento colorato (chiaro visivamente) - Line: Solo linea (più pulito) - Inverse: Sfondo nero (occhi su monitor lungo) Auto-refresh: 1 sec (aggiornamento automatico)
- Interpretare il grafico
Asse Y: Bandwidth (Mbps, Kbps) Asse X: Tempo (scorrevole) Linea verde: Traffico IN (download dalla prospettiva interfaccia) Linea blu: Traffico OUT (upload dalla prospettiva interfaccia) WAN Interface: IN (verde) = Download da Internet OUT (blu) = Upload verso Internet LAN Interface: IN (verde) = Traffico da LAN verso firewall OUT (blu) = Traffico da firewall verso LAN Patterns comuni: 📥 Download file = Spike verde WAN 📤 Upload backup = Spike blu WAN 📺 Streaming video = Verde WAN costante alto 🎮 Gaming online = Traffico basso ma costante bidirezionale
Grafici RRD storici
I RRD Graphs (Round-Robin Database) conservano dati storici per analisi trend a lungo termine.
- Accedi a RRD Graphs
Vai in Status → RRD Graphs - Seleziona categoria
Traffic: Bandwidth WAN/LAN/DMZ Packets: Packets/sec per interfaccia Quality: Latency, packet loss gateway Queues: Traffic shaper queue usage System: CPU, Memory, Disk, Processes Wireless: Signal, noise (se AP integrato)
- Seleziona intervallo temporale
1 Hour: Dettaglio massimo, troubleshooting immediato 4 Hours: Trend mattina/pomeriggio 1 Day: Pattern giornaliero completo 1 Week: Confronto giorni lavorativi vs weekend 1 Month: Crescita mensile, capacity planning 1 Year: Trend annuale, stagionalità
- Analizzare trend
Esempio 1: Saturazione ricorrente Grafico 1 Month WAN Traffic: - Ogni giorno 9:00-10:00 → Picco 95 Mbps (linea 100 Mbps) → Azione: Upgrade banda o traffic shaping più aggressivo Esempio 2: Crescita traffico Grafico 1 Year WAN Traffic: - Gen 2024: Media 30 Mbps - Dic 2024: Media 75 Mbps → Azione: Pianifica upgrade entro 6 mesi Esempio 3: Abuso notturno Grafico 1 Week WAN Traffic: - Ogni notte 02:00-05:00 → Spike 80 Mbps → Azione: Identifica client con ntopng, limita backup/torrent
ntopng: deep packet inspection
ntopng è IL tool professionale per analisi traffico approfondita. Fornisce visibilità dettagliata su chi sta usando la rete, per cosa, quanto e quando.

Installazione ntopng
- Installa package
System → Package Manager → Available Packages
Cerca:ntopng
Click + Install → Confirm
Attendi 2-3 minuti installazione - Configura ntopng
Vai in Diagnostics → ntopng Settings - Configura interfacce da monitorare
☑ Enable ntopng Interfaces to monitor: ☑ WAN (traffico Internet - MUST!) ☑ LAN (traffico interno - consigliato) ☑ DMZ (se presente) ☑ VPN (se presente) DNS Mode: Decode DNS responses (Risolve IP → nomi dominio nei report) Local Networks: 192.168.1.0/24,10.0.10.0/24,10.0.8.0/24 (Definisce cosa considerare "locale") Admin Password: ●●●●●●●●●● (Password per accedere WebUI ntopng) Memory Limit: 512 MB (RAM dedicata a ntopng - aumenta se hai molta RAM)
Click Save
- Avvia ntopng
Services → ntopng → Start
Attendi 30 secondi avvio - Accedi a ntopng WebUI
Diagnostics → ntopng → Click Open ntopng
Oppure: http://IP_PFSENSE:3000
Login:admin/password_configurata
ntopng e performance. ntopng fa Deep Packet Inspection - analizza ogni pacchetto in dettaglio.
- CPU intensive: +10-20% CPU usage costante
- RAM hungry: 256 MB - 2 GB RAM (dipende traffico)
- Disk I/O: Scrive database SQLite continuamente
Hardware minimo consigliato:
- CPU: 2+ core (meglio 4 core)
- RAM: 4+ GB totale (8 GB ideale)
- Disk: SSD (HDD = lentissimo con ntopng)
Se pfSense va su hardware leggero (< 2 GB RAM), usa ntopng solo per troubleshooting temporaneo, non H24!
Utilizzo ntopng: features principali
Dashboard
ntopng Home → Dashboard Top Widgets: - Throughput: Bandwidth real-time totale - Traffic: Download vs Upload ratio - Packets: Packets/sec - Active Flows: Connessioni attive simultanee Top Applications: Mostra protocolli/app che usano più banda: - HTTP/HTTPS (web) - YouTube, Netflix (streaming) - BitTorrent (P2P) - SSH, RDP (remote access) - DNS, NTP (servizi) Top Hosts: IP che generano più traffico: 192.168.1.50 → 1.2 GB (download torrent?) 192.168.1.25 → 850 MB (streaming video?) 192.168.1.100 → 320 MB (navigazione normale)
Hosts: analisi Per-client
- Lista hosts
ntopng → Hosts → All Hosts
Vedi TUTTI i device che hanno usato rete - Ordina per traffico
Click colonna "Traffic" per ordinare
Identifica top talkers immediatamente - Drill-down su singolo host
Click su IP (es: 192.168.1.50)Overview: - Total Traffic: 5.2 GB (↓4.8 GB ↑400 MB) - Active since: 08:23 this morning - MAC: 00:1a:2b:3c:4d:5e - Hostname: laptop-marco (se DNS disponibile) Applications: BitTorrent: 4.5 GB (87% traffico!) HTTP: 450 MB DNS: 12 MB Contacted Hosts: Lista IP contattati da questo client: - 185.125.190.58:51413 (peer BitTorrent) - 91.121.215.10:6881 (peer BitTorrent) - 172.217.16.142:443 (Google HTTPS) Flows (Connessioni): Vedi OGNI connessione attiva/recente: Source → Destination : Protocol : Bytes
- Azione consigliata
Se host abusa (es: 87% traffico P2P):
→ Applica limiter bandwidth su pfSense per quell'IP
→ O blocca BitTorrent completamente

Flows: connessioni Real-time
ntopng → Flows → Active Flows Vedere TUTTE le connessioni attive: Client IP → Server IP : Protocol : Bytes 192.168.1.50 → 185.125.190.58 : TCP/51413 : 125 MB ↓ 192.168.1.50 → 91.121.215.10 : TCP/6881 : 98 MB ↓ 192.168.1.100 → 172.217.16.142 : TCP/443 : 2.5 MB (HTTPS/YouTube) 192.168.1.20 → 8.8.8.8 : UDP/53 : 512 bytes (DNS) Filtri utili: - Filter by Host: 192.168.1.50 (solo connessioni host specifico) - Filter by Application: BitTorrent (solo P2P) - Filter by Country: CN,RU (connessioni verso Cina/Russia - sospette?) Export: - Download CSV per analisi offline (Excel, Python, etc.) - Utile per audit, compliance, incident response
Historical data
ntopng → Interfaces → WAN → Historical Grafici storici: - Last Hour: Dettaglio massimo - Last Day: Pattern giornaliero - Last Week: Confronto giorni - Last Month: Trend mensile Top Talkers Historical: Chi ha usato più banda nell'ultima settimana? 1. 192.168.1.50 → 45 GB (torrent user) 2. 192.168.1.100 → 12 GB (streaming) 3. 192.168.1.25 → 8 GB (videoconferenze) Application Breakdown Historical: BitTorrent: 48% traffico totale settimana YouTube: 22% HTTPS generic: 18% Cloud Backup: 8% Other: 4%
Alerts ntopng
ntopng può generare alert automatici per eventi anomali:
- Configura alerts
ntopng → Settings → Alerts - Alert types disponibili
☑ Flow Flood: Troppe connessioni simultanee (DDoS?) ☑ SYN Flood: SYN scan attack ☑ Excessive Traffic: Host supera soglia traffico ☑ Anomalous Terminations: Connessioni terminate anomalmente ☑ Remote to Remote: Due host esterni comunicano via firewall (strange!) ☑ Blacklisted Host: Connessione a IP in blacklist ☑ Custom Scripts: Alert personalizzati (Lua scripting)
- Visualizza alerts
ntopng → Alerts → Past Alerts
Review giornaliero per identificare incidenti
Packet capture: analisi profonda
Quando ntopng non basta e serve vedere DENTRO i pacchetti, usa Packet Capture.
Catturare pacchetti
- Accedi a Packet Capture
Vai in Diagnostics → Packet Capture - Configura cattura
Interface: WAN (o LAN, DMZ) Address Family: IPv4 (o IPv6, o both) Protocol: Any (O specifico: TCP, UDP, ICMP) Host Address: 192.168.1.50 (Filtra solo traffico da/verso questo IP) (Lascia vuoto = tutto traffico interfaccia) Port: 443 (Filtra solo HTTPS - porta 443) (Lascia vuoto = tutte porte) Packet Length: 0 (0 = cattura pacchetto completo, include payload) (68 = solo headers, no payload - privacy) Packet Count: 100 (Cattura max 100 pacchetti poi stop automatico) (0 = illimitato - ATTENZIONE file gigante!) Detail Level: Full (Full = massimo dettaglio, Normal = solo summary)
- Avvia cattura
Click Start
pfSense inizia a catturare pacchetti - Riproduci problema
Mentre cattura è attiva, riproduci il problema di rete
Es: Prova a connetterti a servizio che non funziona - Ferma cattura
Click Stop
pfSense mostra pacchetti catturati - Analizza cattura
Opzione A: View in browser (limitato)
Opzione B: Download PCAP → Analizza con Wireshark (CONSIGLIATO!)
Analisi con Wireshark
1. Scarica cattura: Diagnostics → Packet Capture → Download Salva file .pcap sul PC 2. Apri con Wireshark: Wireshark → File → Open → Seleziona .pcap 3. Filtri utili Wireshark: Filtro per IP: ip.addr == 192.168.1.50 (Vedi solo traffico da/verso questo IP) Filtro per protocollo: tcp.port == 443 (Solo HTTPS) http (Solo HTTP - se non cifrato vedi URL, headers!) dns (Solo query DNS) Filtro per flag TCP: tcp.flags.syn == 1 and tcp.flags.ack == 0 (Solo SYN packets - inizi connessione) tcp.flags.reset == 1 (RST packets - connessioni rifiutate/terminate) 4. Follow Stream: Click destro su pacchetto → Follow → TCP Stream Vedi conversazione completa tra client e server! 5. Esporta oggetti: File → Export Objects → HTTP Estrai file scaricati durante cattura (immagini, PDF, etc.)
Caso d'uso: debug connessione failed. Problema: Client non riesce a connettersi a server 203.0.113.50:443
- Packet Capture: Host=192.168.1.100, Port=443
- Client prova connessione
- Analisi cattura Wireshark:
Scenario A - Firewall blocca: 1. Client SYN → Server (vedi pacchetto) 2. Nessuna risposta dal server 3. Client retransmit SYN (3-4 volte) → Firewall blocca silenziosamente, verifica regole! Scenario B - Server rifiuta: 1. Client SYN → Server 2. Server RST → Client → Server attivo ma rifiuta connessione (porta chiusa, servizio down) Scenario C - Timeout rete: 1. Client SYN → Server 2. Nessun pacchetto ritorna (neanche RST) 3. Timeout dopo 20+ secondi → Problema routing o server completamente offline
System performance monitoring
CPU & memory usage
Dashboard → System Information Widget: CPU: 15% (2% user, 8% system, 5% interrupt) Memory: 35% (1.4 GB / 4.0 GB) Disk: 8% (3.2 GB / 40 GB) Interpretazione: CPU User alta (>50%): Applicazioni intensive (ntopng, Suricata) CPU System alta (>30%): Kernel busy (packet processing, firewall rules) CPU Interrupt alta (>20%): Network card interrupts (traffico intenso) Memory alta (>80%): Risk OOM killer, considera upgrade RAM Memory bassa (<40%): OK, margine sicuro Disk alta (>90%): URGENTE - pulisci log, vecchie catture packet Grafici storici: Status → RRD Graphs → System Vedi trend CPU/RAM settimanale/mensile
Temperature monitoring
Se hardware supporta sensori temperatura:
Dashboard → Temperature Widget CPU Temp: 52°C (normale) System Temp: 45°C Soglie attenzione: ✅ <40°C: Ottimo ✅ 40-60°C: Normale ⚠️ 60-75°C: Caldo (migliora ventilazione) 🔴 >75°C: CRITICO (rischio thermal throttling/shutdown) Azioni se temperatura alta: 1. Pulisci polvere ventole/dissipatori 2. Migliora airflow case 3. Riduci carico CPU (disabilita ntopng temporaneamente) 4. Considera ventole aggiuntive/dissipatore migliore
Notifiche e alerting
Email notifications
Già configurato nel Capitolo 9 (DMZ), ma riepilogo:
System → Advanced → Notifications Eventi che generano email: - Gateway down/up (connessione Internet persa/ripristinata) - DHCP pool exhaustion (nessun IP disponibile) - Certificate expiration (certificati SSL scaduti) - System crash (kernel panic, reboot inatteso) Configurazione SMTP: SMTP Server: smtp.gmail.com:587 From: pfsense@azienda.com To: admin@azienda.com Test: Click "Test SMTP" → Verifica ricezione email
Syslog: centralizzazione log
Invia tutti i log pfSense a server syslog centralizzato per analisi/archiviazione long-term.
Status → System Logs → Settings ☑ Enable Remote Logging Remote log servers: 192.168.1.15:514 (IP server syslog - Splunk, Graylog, ELK, etc.) Remote Syslog Contents: ☑ Firewall Events ☑ DHCP Events ☑ VPN Events ☑ Gateway Events ☑ System Events Vantaggi syslog centralizzato: ✅ Log persistenti anche se pfSense crasha ✅ Correlazione log multipli firewall ✅ Analisi con SIEM (Security Information Event Management) ✅ Compliance audit trail
Buone pratiche monitoring
- Dashboard sempre aperto: Secondo monitor dedicato in NOC
- Review giornaliero: 10 minuti/giorno su dashboard + firewall logs
- Review settimanale: 30 minuti analisi ntopng top talkers
- Review mensile: 1 ora RRD graphs trend + capacity planning
- Alert email: Configura notifiche eventi critici
- Baseline normali: Documenta valori "normali" (CPU, RAM, bandwidth)
- Threshold alerts: Setta soglie (es: RAM >80% = warning)
- Incident response plan: Procedura documentata risposta alert
- Log retention: Conserva log 30-90 giorni (compliance)
- Backup report: Export report mensili ntopng per archivio
- Training team: Admin devono saper leggere grafici/log
Esercizi
Esercizio 1 – La tua dashboard. Aggiungi i widget Traffic Graphs, Gateways e Services Status e disponili in modo utile. Fai uno screenshot.
Esercizio 2 – Cattura una query DNS. Con Diagnostics → Packet Capture cattura 50 pacchetti sulla LAN, filtrando l'IP del client e la porta 53, mentre esegui nslookup. Scarica il file, aprilo in Wireshark e individua domanda e risposta.
Esercizio 3 – Chi consuma più banda?. Installa ntopng e individua il client che ha usato più banda negli ultimi 5 minuti, e con quali protocolli.
Esercizio 4 – Piano di monitoraggio. Scrivi un piano per la scuola: cosa monitori, con quali soglie, chi riceve gli avvisi e come (email, syslog).