๐Ÿ“Š Monitoring & Analytics

Analisi Traffico, Dashboard, ntopng e Performance Monitoring

Capitolo 10 di 11

๐Ÿ“Š 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

  1. Accedi al Dashboard
    Login su pfSense โ†’ Dashboard (homepage)
  2. Aggiungi widget
    Click + (Add Widget) in alto a sinistra
    Si apre menu con tutti i widget disponibili
  3. 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)
  4. Riorganizza widget
    Drag & drop widget per posizionarli
    Widget piรน importanti in alto
  5. 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)
  6. 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.

Grafico traffico IP

Grafico dettagliato del traffico IP con statistiche per protocollo e indirizzo

๐Ÿ“Š Visualizzare Grafici Real-Time

  1. Accedi a Traffic Graph
    Vai in Status โ†’ Traffic Graph
  2. 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)
  3. 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.

  1. Accedi a RRD Graphs
    Vai in Status โ†’ RRD Graphs
  2. 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)
  3. 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ร 
  4. 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.

Dashboard ntopng

Dashboard principale ntopng con statistiche traffico, top hosts e applicazioni

๐Ÿ“ฅ Installazione ntopng

  1. Installa package
    System โ†’ Package Manager โ†’ Available Packages
    Cerca: ntopng
    Click + Install โ†’ Confirm
    Attendi 2-3 minuti installazione
  2. Configura ntopng
    Vai in Diagnostics โ†’ ntopng Settings
  3. 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
  4. Avvia ntopng
    Services โ†’ ntopng โ†’ Start
    Attendi 30 secondi avvio
  5. 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

  1. Lista hosts
    ntopng โ†’ Hosts โ†’ All Hosts
    Vedi TUTTI i device che hanno usato rete
  2. Ordina per traffico
    Click colonna "Traffic" per ordinare
    Identifica top talkers immediatamente
  3. 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
  4. Azione consigliata
    Se host abusa (es: 87% traffico P2P):
    โ†’ Applica limiter bandwidth su pfSense per quell'IP
    โ†’ O blocca BitTorrent completamente
Analisi pacchetti traffico

Visualizzazione dettagliata pacchetti di rete con analisi per protocollo e flow

๐ŸŒ 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:

  1. Configura alerts
    ntopng โ†’ Settings โ†’ Alerts
  2. 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)
  3. 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

  1. Accedi a Packet Capture
    Vai in Diagnostics โ†’ Packet Capture
  2. 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)
  3. Avvia cattura
    Click Start
    pfSense inizia a catturare pacchetti
  4. Riproduci problema
    Mentre cattura รจ attiva, riproduci il problema di rete
    Es: Prova a connetterti a servizio che non funziona
  5. Ferma cattura
    Click Stop
    pfSense mostra pacchetti catturati
  6. 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

  1. Packet Capture: Host=192.168.1.100, Port=443
  2. Client prova connessione
  3. 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

โœ… Best Practices 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

๐ŸŽฏ Prossimi Passi

Fantastico! Ora hai visibilitร  completa sulla tua rete con dashboard personalizzate, ntopng per analisi approfondita, packet capture per troubleshooting estremo e alerting automatico. La tua rete รจ completamente sotto controllo!

Nell'ultimo capitolo vedremo Troubleshooting avanzato: risoluzione problemi comuni, comandi diagnostici, procedure recovery e best practices manutenzione.

๐Ÿ” Ultimo Capitolo: Troubleshooting โ†’