Fortinet - Análise de problemas de rede com um FortiGate
Fortinet
As redes estão a tornar-se cada vez mais complexas e confusas. Por conseguinte, são necessárias ferramentas para analisar e identificar problemas.
Uma firewall FortiGate oferece aqui uma vasta gama de ferramentas. Hoje gostaria de apresentar algumas e explicar como utilizá-las.
A ferramenta mais simples é evidentemente o clássico ping, que é executado num FortiGate através do CLI com o comando executar ping. Contudo, ainda há possibilidades de utilizar o ping de uma forma mais direccionada. Para o fazer, utilizar o comando executar ping-options <'parameter'>. Os seguintes parâmetros podem ser utilizados aqui:
-
adaptive-ping
FortiGate envia o próximo pacote assim que a última resposta tenha sido recebida . - tamanho dos dados <'bytes'> Especificar o tamanho do datagramas em bytes .
- df-bit <'yes | no'> Definir df-bit para sim para evitar que o pacote ICMP seja fragmentado. Defina df-bit para não para permitir a fragmentação do pacote ICMP.
- padrão <'2-byte_hex'> Utilizado para preencher o buffer de dados opcional no final do pacote ICMP. O tamanho do buffer é especificado com o parâmetro data_size. Isto permite enviar pacotes de diferentes tamanhos para testar o efeito do tamanho do pacote na ligação.
- repeat-count <'repeats'> Especificar a frequência com que o ping deve ser repetido .
- Fonte {auto | <'source-intf_ip'> } Especificar a interface FortiGate a partir da qual o ping deve ser enviado. Se especificar auto, a unidade FortiGate selecciona o endereço e interface de origem com base na rota para o <'host-name_str'> ou <'host_ip'>. A especificação do endereço IP de uma interface FortiGate é utilizada para testar ligações a diferentes segmentos de rede a partir da interface especificada.
- timeout <'seconds'> Especificar em segundos quanto tempo deve esperar até que o tempo de ping tenha decorrido.
- tos <'service_type'> Defina o campo ToS (Tipo de Serviço) no cabeçalho do pacote para dar uma indicação da qualidade de serviço desejada.
- Minimizar o atrasode baixo atraso
- rendimento de passagem Maximizar rendimento
- fiabilidade Maximizar a fiabilidade
- Minimizar os custosde baixo custo
-
ttl
Especificar o tempo de vida. O tempo para viver é o número de lúpulos que o pacote de ping pode fazer antes de ser descartado ou devolvido. - validar-resposta {yes | no} Seleccionar sim para validar os dados de resposta.
- view-settings Mostra as definições actuais das opções de ping.
- reset Res etar configurações.
É claro que pode combinar opções para obter o resultado desejado. Aqui fica um exemplo:
Executar fonte de opções de ping-options 192.168.10.254 contagem de repetição 50
executar ping 10.10.10.234
Esta combinação executaria um ping com o endereço de origem 192.168.10.254 e o endereço de destino 10.10.10.234. 50 pacotes de PING seriam enviados.
Se quiser descobrir que regra de firewall se aplica num caso específico, pode também descobrir isso através do CLI. Para tal, é utilizado o seguinte comando:
diag firewall iprope lookup <'src_ip'> <'src_port'> <'dst_ip'> <'dst_port'> <'protocol'> <'Source interface'>
- <'src_ip'> Endereço de origem
- <'src_port'> Porto de origem
- <'dst_ip'> Endereço de destino
- <'dst_port'> Porto de destino
- <'protocol'> Que protocolo deve ser simulado, por exemplo TCP ou UDP
- <'source interface'> Interface de origem a partir da qual o pedido deve ser simulado
Se os pedidos forem executados correctamente, obtém-se resultados como este:
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 53 tcp port2
A primeira consulta resulta na política de firewall com ID 0. Esta seria a regra de negação implícita que está sempre no fundo e bloqueia qualquer tráfego de rede que não se encaixasse numa das regras anteriores.
Com a segunda consulta obtemos o resultado de que a política de firewall com ID 2 é responsável. Isto assegura que a regra correcta da firewall é aplicada.
Mas o que fazer se tudo parece encaixar, mas mesmo assim não funciona de forma limpa?
Então tem de olhar directamente para o tráfego da rede. FortiGate oferece várias possibilidades para isso. Através do WebGUI ou do CLI.
Captura de pacotes via WebGUI
Através de Network --> Packet Capture in the FortiGate WebGUI pode rapidamente gerar dados para análise com a ajuda de algumas opções.
- Seleccionar a interface na qual o FortiGate deve recolher os dados.
- O número de pacotes a serem recolhidos, o máximo é de 10.000.
Se activar os filtros, ainda tem as seguintes opções úteis:
- Anfitrião(s) Introduzir endereços cujos dados devem ser recolhidos. É possível introduzir múltiplos endereços com um , . Exemplo: 192.168.10.254, 10.10.10.10.234
- Porto(s) Aqui mais uma vez pode definir vários portos separados por um , . Exemplo: 443, 80
- VLAN(s) Se utilizar várias VLANs numa interface na sua rede, pode especificar especificamente as VLAN(s). Exemplo: 1, 4096
- Protocolo(s) Aqui introduzem-se os números dos protocolos que se pretende analisar. Pode encontrar os números na documentação oficial da IANA: IANA Protocol numbers
- Incluir pacotes IPv6 Isto permite-lhe gravar não só pacotes IPv4, mas também pacotes IPv6, caso estes sejam utilizados na sua rede.
- IncluirPacotes não-IP Se quiser gravar ARP, DHCP ou outros protocolos que nem sempre utilizam IPs, pode gravá-los através desta opção.
Guardar a selecção. Isto pode então ser seleccionado em Network -> Packet Capture. Pode iniciar a gravação através do menu com o botão direito do rato.
Se descarregar a gravação, que também é possível enquanto a gravação ainda está a decorrer, receberá um ficheiro PCAP que pode abrir e visualizar numa ferramenta de análise como Wireshark.
Farejar pacotes via CLI
Também se pode observar rápida e convenientemente o tráfego de rede direccionado através da linha de comando.
O comando está estruturado da seguinte forma:
pacote de diag sniffer <'interface'> <'filter'> <'verbose'> <'count'> a
- <'interface'> A interface a utilizar para a escuta. O nome é necessário aqui. Exemplo: wan1 ou WLAN-Gaeste. Note por favor que o nome é sensível a maiúsculas e minúsculas. Se tiver uma interface de túnel chamada WLAN-Gaeste, wlan-gaeste não funcionará.
- <'filter'> Provavelmente o parâmetro mais complexo e poderoso. Aqui tem várias possibilidades que podem ser combinadas:
-
src|dst host
Especificação do endereço de origem ou de destino. - arp|ip|gre|esp|udp|tcp Que protocolos devem ser monitorizados.
-
porto
Qual o porto que deve ser controlado. - <'verbose'> Quão extensivamente os pacotes devem ser registados:
- 1: Cabeçalhos de saída de pacotes.
- 2: Cabeçalhos de saída e dados de pacotes IP.
- 3: Cabeçalho de saída e dados de Ethernet de pacotes.
- 4: Cabeçalhos de saída de pacotes com nomes de interface.
- 5: Cabeçalhos de saída e dados de IP de pacotes com nomes de interface.
- 6: Cabeçalhos de saída e dados da Ethernet de pacotes com nome de interface.
-
Quantos pacotes devem ser registados. Se for introduzido um 0 aqui, a gravação é permanente. A gravação pode ser interrompida com Ctrl+C. - são então utilizados aqui carimbos de tempo absoluto. Normalmente, a hora é exibida em ordem ascendente desde o início da gravação em segundos. O parâmetro exibe então a hora e a data actuais.
Exemplo: pacote de diag sniffer interno 'host 192.168.0.130 e 192.168.0.1 e porta tcp 80' 1
Aqui, apenas é registado o tráfego de rede que teve lugar entre os dois anfitriões na porta 80 com o protocolo TCP.
Espero ter conseguido dar-vos uma boa primeira impressão dos métodos de análise do FortiGate.