Un log su FortiGate non nasce da solo: nasce perché una policy o un profilo di sicurezza ha deciso di scriverlo, viene formattato secondo uno schema fisso e finisce su un log device che hai scelto tu. Quando una domanda ti mostra una GUI vuota o un FortiAnalyzer che non riceve niente, la risposta sta quasi sempre in uno di quei tre passaggi, non in un guasto.
Il percorso di un log, dal traffico alla riga
FortiOS registra il traffico che attraversa il firewall, quello che parte da lui e quello che termina su di lui, insieme all’azione presa durante la scansione. Le categorie sono tre: traffic (forward, local, multicast, sniffer), event (sistema, router, VPN, utenti, HA, SD-WAN) e security, cioè i log UTM prodotti dai profili di sicurezza.
Ogni messaggio ha un’intestazione con la stessa struttura, e imparare a leggerla velocemente ripaga:
date=2019-05-10 time=11:37:47 logid="0000000013" type="traffic"
subtype="forward" level="notice" vd="vdom1" srcip=10.1.100.11
dstip=23.59.154.35 action="close" policyid=1 service="HTTP"
type e subtype dicono dove cercarlo nella GUI, level è la severità, vd il VDOM, logid identifica l’evento. Il corpo che segue cambia in base al sottotipo.
A spedirli sono due demoni distinti: locallogd per il logging locale e fgtlogd per quello remoto; circa il 5% della memoria è riservato a bufferizzare i log diretti a FortiAnalyzer. Due default da ricordare: il logging del traffico local è disabilitato, perché genererebbe un volume enorme, e le statistiche di performance non vanno mai su disco, solo verso syslog o FortiAnalyzer.
Dove metterli: memoria, disco, FortiAnalyzer, syslog, cloud
La memoria è la destinazione più povera: si perde al riavvio, tiene poco e nella GUI non offre nemmeno il filtro per intervallo temporale. Va bene per una prova al volo, non per un’indagine.
Il disco si abilita con config log disk setting. Di default i log più vecchi di sette giorni vengono cancellati (maximum-log-age), circa il 75% dello spazio è disponibile per i log, e diagnose sys logdisk usage ti dice a che punto sei. Il disco è anche il prerequisito dei report locali e dello storico di FortiView: senza, quelle pagine restano vuote.
Le destinazioni remote sono FortiAnalyzer, FortiAnalyzer Cloud, FortiGate Cloud e i server syslog — fino a quattro, con formato fra default, CSV, CEF, RFC 5424 e JSON. E una cosa che confonde spesso: per FortiManager si usa lo stesso comando di FortiAnalyzer.
config log fortianalyzer setting
set status enable
set server 172.16.200.251
set upload-option realtime
end
upload-option vale realtime, ogni minuto, ogni cinque minuti (il default) oppure store-and-upload, che scrive prima su disco e carica a orario, e che esiste solo in CLI. Se FortiAnalyzer diventa irraggiungibile i log si accodano prima in memoria e poi su disco, fino alla dimensione fissata da faz-disk-buffer-size; quando anche quello è pieno i nuovi log sovrascrivono i vecchi. Con config log fortianalyzer filter, infine, decidi cosa spedire davvero: severità minima, traffico forward, locale, multicast e sniffer.
Registrare il FortiGate su FortiAnalyzer
Puntare l’indirizzo non basta: serve un’autorizzazione reciproca. Dalla GUI si passa da Security Fabric > Fabric Connectors, scheda Logging & Analytics, si abilita lo stato e si indica l’IP del FortiAnalyzer. Subito dopo la connessione risulta Unauthorized: il dispositivo va approvato sul FortiAnalyzer, e solo allora lo stato diventa Authorized. È la causa numero uno dei log che non arrivano pur essendo la configurazione apparentemente corretta.
Se lasci attiva la verifica del certificato, il FortiGate confronta il numero di serie del FortiAnalyzer con quello nel certificato e lo memorizza in configurazione: comodo, ma ricordatene quando sostituisci l’apparato. L’opzione reliable, disabilitata per default, attiva il logging affidabile; sul syslog l’equivalente è mode, che sceglie fra UDP e TCP affidabile.
Per la diagnosi il comando chiave è uno:
diagnose test application fgtlogd 1
Mostra state=connected, l’oftp-state, server e porta 514, la lunghezza della coda e il filtro di severità. Se lo stato non è connected il problema è di rete o di autorizzazione; se è connesso ma non vedi log, guarda il filtro.
Cercare: dalla GUI e dalla CLI
In GUI i log stanno in Log & Report > System Events e Security Events, entrambe con una scheda Summary e una Logs. Alcuni sottotipi compaiono solo se la funzione è accesa in System > Feature Visibility: gli eventi VPN, per esempio, non esistono finché VPN non è visibile. E la scheda Summary richiede disk logging e storico di FortiView: se è vuota, non è la licenza.
Gli intervalli temporali disponibili dipendono dalla sorgente — da FortiAnalyzer o dal cloud hai 5 minuti, 1 ora, 24 ore e 7 giorni; dal disco anche None; dalla memoria nessun filtro. Ogni pagina mantiene inoltre il proprio intervallo, indipendente dalle altre: cambiarlo su System Events non lo cambia su Security Events.
Dalla CLI la ricerca si costruisce a filtri successivi e poi si stampa:
execute log filter device disk
execute log filter category event
execute log filter field action login
execute log display
Per le classifiche rapide ci sono diagnose fortiview result event-log e security-log, che restituiscono fino a cento voci aggregate.
Un’ultima trappola di campo: l’opzione Resolve Hostnames fa una risoluzione DNS inversa su ogni indirizzo. Se il DNS è lento o irraggiungibile, la pagina dei log va in timeout e sembra rotta. È la prima cosa da spegnere quando la GUI dei log si impalla.