Vai al contenuto

Monitoraggio

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?

MetricaPerché ImportanteTool pfSense
Bandwidth UsageIdentificare saturazione, abusi, trend crescitaTraffic Graphs, ntopng
Active ConnectionsVedere connessioni in tempo reale, rilevare malware (C&C)States, ntopng
Top TalkersChi usa più banda? Quali applicazioni dominano?ntopng, RRD Graphs
Firewall BlocksTentativi accesso non autorizzato, port scanFirewall Logs
System ResourcesCPU/RAM/Disk usage - bottleneck hardwareDashboard, System Logs
Gateway StatusUptime connessioni WAN, packet loss, latencyGateway Status
DHCP LeasesDispositivi attivi, pool exhaustionDHCP Leases
VPN ConnectionsUtenti connessi, problemi autenticazioneOpenVPN 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

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

⭐ Facile

Esercizio 1 – La tua dashboard. Aggiungi i widget Traffic Graphs, Gateways e Services Status e disponili in modo utile. Fai uno screenshot.

⭐⭐ Medio

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.

⭐⭐ Medio

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.

⭐⭐⭐ Sfida

Esercizio 4 – Piano di monitoraggio. Scrivi un piano per la scuola: cosa monitori, con quali soglie, chi riceve gli avvisi e come (email, syslog).