Fortinet - Analisi dei problemi di rete con un FortiGate
Fortinet
Le reti stanno diventando sempre più complesse e confuse. Pertanto, sono necessari strumenti per analizzare e identificare i problemi.
Il firewall FortiGate offre un'ampia gamma di strumenti. Oggi vorrei presentarne alcuni e spiegare come utilizzarli.
Lo strumento più semplice è naturalmente il classico ping, che viene eseguito in un FortiGate tramite la CLI con il comando execute ping. Tuttavia, esiste ancora la possibilità di utilizzare il ping in modo più mirato. A tale scopo, utilizzare il comando execute ping-options <'parameter'>. È possibile utilizzare i seguenti parametri:
-
adaptive-ping
FortiGate invia il pacchetto successivo non appena viene ricevuta l'ultima risposta . - data-size <'bytes'> Specificare la dimensione del datagramma in byte .
- df-bit <'yes | no'> Impostare df-bit su yes per impedire la frammentazione del pacchetto ICMP. Impostare df-bit su no per consentire la frammentazione del pacchetto ICMP.
- pattern <'2-byte_hex'> Utilizzato per riempire il buffer di dati opzionale alla fine del pacchetto ICMP. La dimensione del buffer è specificata con il parametro data_size. Ciò consente di inviare pacchetti di dimensioni diverse per verificare l'effetto della dimensione del pacchetto sulla connessione.
- repeat-count <'repeats'> Specificare la frequenza con cui il ping deve essere ripetuto .
- Sorgente {auto | <'source-intf_ip'> } Specificare l'interfaccia FortiGate da cui inviare il ping. Se si specifica auto, l'unità FortiGate seleziona l'indirizzo e l'interfaccia di origine in base al percorso verso <'host-name_str'> o <'host_ip'>. La specificazione dell'indirizzo IP di un'interfaccia FortiGate viene utilizzata per testare le connessioni a diversi segmenti di rete dall'interfaccia specificata.
- timeout <'seconds'> Specificare in secondi il tempo di attesa per il ping.
- tos <'service_type'> Imposta il campo ToS (Type of Service) nell'intestazione del pacchetto per dare un'indicazione della qualità del servizio desiderata .
- Ridurre al minimo ilritardo
- throughput Massimizzare il throughput
- affidabilità Massimizzare l'affidabilità
- Ridurre al minimo i costia basso costo
-
ttl
Specificare il tempo di vita. Il tempo di vita è il numero di salti che il pacchetto di ping può fare prima di essere scartato o restituito. - validate-reply {yes | no} Selezionare yes per validare i dati di risposta.
- visualizza-impostazioni Visualizza le impostazioni correnti delle opzioni di ping.
- reset Ripristina le impostazioni.
Naturalmente, è possibile combinare le opzioni per ottenere il risultato desiderato. Ecco un esempio:
Eseguire ping-options source 192.168.10.254 repeat-count 50
eseguire ping 10.10.10.234
Questa combinazione esegue un ping con l'indirizzo di origine 192.168.10.254 e l'indirizzo di destinazione 10.10.10.234. Verranno inviati 50 pacchetti PING.
Se si desidera scoprire quale regola del firewall si applica in un caso specifico, è possibile farlo anche tramite la CLI. A tale scopo si utilizza il seguente comando:
diag firewall iprope lookup <'src_ip'> <'src_port'> <'dst_ip'> <'dst_port'> <'protocol'> <'Source interface'>
- <'src_ip'> Indirizzo sorgente
- <'src_port'> Porta d'origine
- <'dst_ip'> Indirizzo di destinazione
- <'dst_port'> Porta di destinazione
- <'protocol'> Quale protocollo deve essere simulato, ad esempio TCP o UDP
- <'source interface'> Interfaccia di origine da cui deve essere simulata la richiesta
Se le richieste vengono eseguite correttamente, si ottengono risultati come questo:
FortiGate # diag firewall iprope lookup 10.187.1.100 12345 8.8.8.8 53 udp port2
FortiGate # diag firewall iprope lookup 10.187.1.100 12345 8.8.8.8 53 tcp port2
La prima query dà come risultato il criterio del firewall con ID 0. Si tratta della regola di negazione implicita che si trova sempre in fondo e blocca qualsiasi traffico di rete che non rientra in una delle regole precedenti.
Con la seconda query si ottiene il risultato che il criterio del firewall con ID 2 è responsabile. Questo garantisce l'applicazione della regola firewall corretta.
Ma cosa fare se tutto sembra corrispondere, ma il sistema non funziona ancora in modo pulito?
Allora bisogna esaminare direttamente il traffico di rete. FortiGate offre diverse possibilità in tal senso. Tramite la WebGUI o la CLI.
Acquisizione dei pacchetti tramite WebGUI
Tramite Network --> Packet Capture nella FortiGate WebGUI è possibile generare rapidamente dati per l'analisi con l'aiuto di alcune opzioni.
- Selezionare l'interfaccia su cui il FortiGate deve raccogliere i dati.
- Il numero di pacchetti da raccogliere, il massimo è 10.000.
Se si attivano i filtri, sono ancora disponibili le seguenti opzioni utili:
- Host(s) Inserire gli indirizzi di cui si vogliono raccogliere i dati. È possibile inserire più indirizzi con un , . Esempio: 192.168.10.254, 10.10.10.234
- Porta/e) Anche in questo caso è possibile definire più porte separate da un , . Esempio: 443, 80
- VLAN (VLAN ) Se si utilizzano diverse VLAN su un'interfaccia della rete, è possibile specificare le VLAN. Esempio: 1, 4096
- Protocollo/i) Qui si inseriscono i numeri dei protocolli che si desidera analizzare. I numeri si trovano nella documentazione ufficiale IANA: IANA Protocol numbers
- Includi pacchetti IPv6 Consente di registrare non solo i pacchetti IPv4, ma anche quelli IPv6, se utilizzati nella rete.
- Includipacchetti non IP Se si desidera registrare ARP, DHCP o altri protocolli che non utilizzano sempre gli IP, è possibile registrarli tramite questa opzione.
Salvare la selezione. Questa può essere selezionata in Rete -> Cattura pacchetti. È possibile avviare la registrazione tramite il menu del tasto destro del mouse.
Se si scarica la registrazione, cosa possibile anche quando la registrazione è ancora in corso, si riceve un file PCAP che può essere aperto e visualizzato con uno strumento di analisi come Wireshark.
Sniffing dei pacchetti tramite CLI
È inoltre possibile osservare in modo rapido e comodo il traffico di rete mirato tramite la riga di comando.
Il comando è strutturato come segue:
diag sniffer packet <'interface'> <'filter'> <'verbose'> <'count'> a
- <'interface'> L'interfaccia da utilizzare per l'intercettazione. Il nome è obbligatorio. Esempio: wan1 o WLAN-Gaeste. Si noti che il nome è sensibile alle maiuscole e alle minuscole. Se si dispone di un'interfaccia tunnel chiamata WLAN-Gaeste, wlan-gaeste non funzionerà.
- <'filter'> Probabilmente è il parametro più complesso e potente. Qui sono disponibili diverse possibilità che possono essere combinate:
-
src|dst host
Specifica dell'indirizzo di origine o di destinazione. - arp|ip|gre|esp|udp|tcp Quali protocolli devono essere monitorati.
-
port
Quale porta deve essere monitorata. - <'verbose'> La frequenza di registrazione dei pacchetti:
- 1: Intestazioni di output dei pacchetti.
- 2: Emissione delle intestazioni e dei dati dei pacchetti IP.
- 3: Emissione dell'intestazione e dei dati dei pacchetti Ethernet.
- 4: Emissione delle intestazioni dei pacchetti con i nomi delle interfacce.
- 5: Emissione di intestazioni e dati da IP di pacchetti con nomi di interfacce.
- 6: Emissione di intestazioni e dati da Ethernet dei pacchetti con nome dell'interfaccia.
-
Quanti pacchetti devono essere registrati. Se si inserisce uno 0, la registrazione è permanente. La registrazione può essere interrotta con Ctrl+C. - a In questo caso vengono utilizzate le indicazioni temporali assolute. Normalmente, l'ora viene visualizzata in ordine crescente dall'inizio della registrazione in secondi. Il parametro visualizza quindi l'ora e la data corrente.
Esempio: diag sniffer packet internal 'host 192.168.0.130 e 192.168.0.1 e porta tcp 80' 1
In questo caso, viene registrato solo il traffico di rete che ha avuto luogo tra i due host sulla porta 80 con il protocollo TCP.
Spero di essere riuscito a darvi una prima impressione dei metodi di analisi del FortiGate.