FortiGate Packet Sniffer – Análise de Tráfego em FortiGate – Parte 1 Básico
Você já se perguntou como é possível visualizar o que acontece na rede? Como é possível identificar problemas de desempenho, falhas de segurança ou até mesmo detectar ataques cibernéticos em tempo real? A resposta está na análise de tráfego em redes TCP/IP.
É aí que entra o Tcpdump, uma ferramenta de rede poderosa que permite a captura de pacotes e análise detalhada do tráfego em redes TCP/IP. Mas não será nesse post que iremos falar do Tcpdump e sim do FortiGate Packet Sniffer!.
Sumário do Conteúdo
A importância da análise de tráfego com FortiGate Packet Sniffer
Você sabia que a ferramenta Packet Sniffer do FortiGate é o Tcpdump embutido (built-in) no FortiOS? A principal função do Packet Sniffer é capturar o que entra (ingressing) e o que sai (egressing) do seu FortiGate. Nesta seção, vamos aprofundar o funcionamento do Packet Sniffer e explorar suas funcionalidades para capturar pacotes e analisar o tráfego em redes TCP/IP.
O Packet Sniffer pode lhe ajudar com:
- Confirmar o fluxo atual dos pacotes no FortiGate;
- Detectar perda de comunicação;
- Verificar e reportar se a falha está sendo causada pelo FortiGate (Se o FortiGate recebeu a requisição do cliente e respondeu ao servidor);
- Inspecionar o header do pacote e o payload (carga útil);
- Estudo de troubleshooting.
O Packet Sniffer pode ser utilizado de várias maneiras, cada qual com suas limitações:
- Via CLI por meio da console, via SSH ou pelo terminal da interface gráfica (GUI);
- Via GUI na opção Packet Capture. Nas versões mais novas se chama Diagnostics;
- Via Policy de firewall;
- Via IPS Packet Logging.
Comparação da captura de pacotes por FortiOS:
GUI FortiOS <= 7.0 | GUI FortiOS >= 7.2 | |
Localização na gráfica | Network > Packet Capture | Network > Diagnostics > Packet Capture |
Número máximo de pacotes capturados | 10.000 | 50.000 |
Suporta Operadores Lógicos | NÃO | SIM |
Baixar em formato .PCAP | SIM | SIM |
Suporte a “any” interfaces | NÃO | SIM |
Visibilidade em tempo real | NÃO | SIM |
Como funciona o Packet Sniffer na CLI
Para iniciar a captura de pacotes em seu FortiGate basta digitar no terminal o seguinte comando:
#diagnose sniffer packet <interface> “<filter>” <verbose> <count> <timestamp_format>
Porém, vamos entender como funciona cada linha do comando:
<interface_name> | O nome da interface que será realizar o “sniffer”, podendo ser port1 ou internal. Também pode utilizar o any para “sniffar” todas as interfaces. |
<filter> | O que será visto de informação para o sniffer ler. Não definir nada, indica que nenhum filtro será utilizado e então será exibido tudo.
O filtro pode ser realizado com aspas simples (‘) ou aspas duplas (“). |
<verbose> | Indica o nível de verbose:
|
<count> | Indica o número de pacotes que serão lidos antes de parar de sniffar. Caso você não coloque nada, o sniffer só irá parar após você clicar em CTRL+C. |
<timestamp_fortmat> | É o formato de carimbo de tempo:
|
Casos de uso do packet sniffer interface:
Observação: Ao utilizar “any” como interface, o packet sniffer capturará todo o tráfego de todas as interfaces no FortiGate.
Exemplo de sniffer direcionado para uma interface:
FGT-Andy # diagnose sniffer packet wan ‘icmp and host 1.1.1.1’ 4 0 l
interfaces=[wan]
filters=[icmp and host 1.1.1.1]
2024-03-12 23:27:46.910684 wan — 192.168.1.7 -> 1.1.1.1: icmp: echo request
2024-03-12 23:27:46.977084 wan — 1.1.1.1 -> 192.168.1.7: icmp: echo reply
Observação: Ao especificar uma interface, como a “wan“, para monitorar o tráfego em direção a um endereço específico, a interface física ou virtual subjacente não será exibida para o tráfego monitorado. Isso é evidenciado no exemplo anterior, onde a interface exibida é apenas a interface especificada no comando. Se o filtro for alterado para “any” será possível ver todas as interfaces que fazem parte da comunicação de entrada e saída.
FGT-Andy # diagnose sniffer packet any ‘icmp and host 1.1.1.1’ 4 0 l
interfaces=[wan]
filters=[icmp and host 1.1.1.1]
2024-03-12 23:08:34.711823 G&T in 192.168.253.10 -> 1.1.1.1: icmp: echo request
2024-03-12 23:08:34.711920 wan out 192.168.1.7 -> 1.1.1.1: icmp: echo request
2024-03-12 23:08:34.778024 wan in 1.1.1.1 -> 192.168.1.7: icmp: echo reply
2024-03-12 23:08:34.778063 G&T out 1.1.1.1 -> 192.168.253.10: icmp: echo reply
Casos de uso do packet sniffer filter:
- Capture todo o tráfego com o IP de Origem (source IP) 192.168.253.10.
- Capture todo o tráfego com o IP de Origem ou destino 192.168.253.10.
- Capture todo o tráfego com o para/de da sub-rede 192.168.253.0/24.
- Capture todo o tráfego de DNS na porta 53.
- Capture todo o tráfego ICMP.
ou
Observação: Você pode especificar o filtro utilizando aspas simples ou aspas duplas.
Casos de uso do packet sniffer verbose:
- O nível de verbose 4 exibe o fluxo do tráfego.
- Já o nível de verbose 6 mostra o header (cabeçalho) do pacote e o payload.
- Muito utilizado para conversão em .PCAP. Formato de arquivo muito utilizado pelo Wireshark.
![Diagnose sniffer verbose - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/Diagnose-sniffer-verbose-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
Nível 4 de verbosity:
FGT-Andy # diag sniff packet any ‘icmp and host 1.1.1.1’ 4 0 l
interfaces=[any]
filters=[icmp and host 1.1.1.1]
2024-03-12 23:08:34.711823 G&T in 192.168.253.10 -> 1.1.1.1: icmp: echo request
2024-03-12 23:08:34.711920 wan out 192.168.1.7 -> 1.1.1.1: icmp: echo request
2024-03-12 23:08:34.778024 wan in 1.1.1.1 -> 192.168.1.7: icmp: echo reply
2024-03-12 23:08:34.778063 G&T out 1.1.1.1 -> 192.168.253.10: icmp: echo reply
Nível 5 de verbosity:
FGT-Andy # diag sniff packet any ‘icmp and host 1.1.1.1’ 6 0 l
interfaces=[any]
filters=[icmp and host 1.1.1.1]
2024-03-12 23:11:52.539167 G&T in 192.168.253.10 -> 1.1.1.1: icmp: echo request
0x0000 0000 0000 0001 9c30 5bff b5bb 0800 4500 …….0[…..E.
0x0010 003c a5d1 0000 4001 153b c0a8 fd0a 0101 .<….@..;……
0x0020 0101 0800 46ba 0001 06a1 6162 6364 6566 ….F…..abcdef
0x0030 6768 696a 6b6c 6d6e 6f70 7172 7374 7576 ghijklmnopqrstuv
0x0040 7761 6263 6465 6667 6869 wabcdefghi2024-03-12 23:11:52.539283 wan out 192.168.1.7 -> 1.1.1.1: icmp: echo request
0x0000 0000 0000 0000 d476 a0ae 7590 0800 4500 …….v..u…E.
0x0010 003c a5d1 0000 3f01 123f c0a8 0107 0101 .<….?..?……
0x0020 0101 0800 5ab8 ec02 06a1 6162 6364 6566 ….Z…..abcdef
0x0030 6768 696a 6b6c 6d6e 6f70 7172 7374 7576 ghijklmnopqrstuv
0x0040 7761 6263 6465 6667 6869 wabcdefghi
Ferramenta que pode converter texto para .PCAP:
Se você tiver interesse em capturar o tráfego utilizando a verbosity 6 e desejar converter direto na sua máquina windows utilizando a CLI, segue o passo a passo abaixo:
- Baixe o fgt2eth.exe.12.2014.zip abaixo (Somente para Windows).
- Descompacte fgt2eth.exe em um diretório.
- Acesse o FortiGate via Putty ou pelo terminal console na GUI.
- Então execute o comando # diag sniff packet any ‘icmp and host 1.1.1.1’ 6 0 l
- Faça um teste da sua máquina “pingando” o 1.1.1.1.
- Se tiver utilizando o Putty certifique-se que está salvando a sessão ou selecione e salve em um bloco de notas.
- Abra o CMD do windows e vá até o diretório que extraiu o arquivo zipado.
- Execute o seguinte comando: fgt2eth.exe -in <nome_do_arquivo.txt> -out <nome_do_arquivo.pcap>
- Vá no diretório utilizando o wireshark e abra o arquivo
![Diretorio - Blog Diário de Suporte - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/Diretorio-Blog-Diario-de-Suporte-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
![Wireshark - Blog Diário de Suporte - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/Wireshark-Blog-Diario-de-Suporte-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
Arquivo para download: fgt2eth.exe.12.2014 o script permite converter uma saída de sniffer nível 3 ou 6 em um arquivo legível e possível decodificar como um arquivo .PCAP no Wireshark.
Como funciona o Packet Sniffer na GUI
Exemplo de captura de pacotes na interface gráfica (GUI) no FortiOS 7.4 (Network > Diagnostics > Packet Capture):
- Defina os parâmetros do seu filtro de captura.
- Após iniciar a captura você pode escolher salvar em .pcap ou analisar a captura observando o fluxo, ou clicando em cada linha.
- Você clicar na linha e observar o cabeçalho de cada camada TCP/IP. Um pouco semelhante ao processo de visualização do Wireshark.
Realizando o Packet Sniffer na Policy de Firewall
O FortiOS permite realizar a captura de pacotes em uma política de firewall. Para isso ocorrer, o FortiGate precisa ter SSD interno em alguns modelos para realizar esse recurso. Essa feature é habilitada ao nível de CLI.
![FortiGate Sniffer Packet Policy - Blog Diário de Suporte - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/FortiGate-Sniffer-Packet-Policy-Blog-Diario-de-Suporte-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
Uma vez habilitado a captura na policy, o FortiGate captura cada pacote que deu match na policy em cada sessão automaticamente, no qual poderá ser realizado o download posteriormente conforme o exemplo abaixo.
![FortiGate Sniffer Packet Policy-2 - Blog Diário de Suporte - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/FortiGate-Sniffer-Packet-Policy-2-Blog-Diario-de-Suporte-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
Capturando pacotes via IPS Packet Logging
O FortiOS também possibilita realizar a captura de pacotes quando uma anomalia dar match no sensor IPS. Isso ajuda a equipe de segurança a ter visibilidade de pacotes malformados ou suspeitos. Além disso, essa feature pode ser configurada via CLI ou GUI.
![FortiGate Sniffer Packet IPS-GUI-CLI - Blog Diário de Suporte - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/FortiGate-Sniffer-Packet-IPS-GUI-CLI-Blog-Diario-de-Suporte-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
![FortiGate Sniffer Packet IPS-Log - Blog Diário de Suporte - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/FortiGate-Sniffer-Packet-IPS-Log-Blog-Diario-de-Suporte-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
Recomendação de livro:
Chegando ao final do post, gostaria de recomendar um livro que já li várias vezes e que ajuda muito a aprimorar o conhecimento em análise de tráfego, ele se chama “Análise de Tráfego em Redes TCP/IP: Utilize tcpdump na análise de tráfegos em qualquer sistema operacional” do autor João Eriberto Mota Filho. Eu vou deixar o link do livro abaixo pela Amazon.
![Livro tcpdump - O Seu Guia de Conteúdo de Segurança e Redes](https://diariodesuporte.com.br/wp-content/uploads/2024/03/Livro-tcpdump-O-Seu-Guia-de-Conteudo-de-Seguranca-e-Redes.png)
Link do Livro: https://amzn.to/3Tzq2fF
Conclusão
Concluímos nosso artigo sobre a análise de tráfego em redes TCP/IP utilizando o Sniffer Packet do FortiGate. Vale ressaltar que utilizar o recurso de packet capture em Policy ou IPS exige recurso da caixa, e utilize esses recursos com cuidado para não gerar uma alta carga de performance no FortiGate.
Quer saber mais sobre esse e outros tipos de conteúdo? Fique de olho no Diário de Suporte. 😉