En esta entrada voy a dejar un listado de comandos muy útiles para realizar un debug sencillo de policies que no sabemos si funcionan, VPNs que no están comportándose correctamente, etc.
Sniffer de tráfico:
Primero, voy a dejar los comandos para realizar un «sniffer» de tráfico. Estos comandos son solo para sniffar si vemos que llegan paquetes, no para ver el comportamiento de los paquetes en el firewall, por lo que son para un debug «superficial». Por supuesto, estos comandos deben lanzarse en el CLI del Firewall Fortigate
diag sniffer packet any 'host 192.168.1.1'
Con este comando observaremos si llegan o se generan paquetes hacía dicho host. Podemos ajustar la búsqueda aún más añadiendo por ejemplo origen y/o destino.
diag sniffer packet any 'src host 192.168.1.1'
Con este comando sniffamos solo paquetes cuyo origen sea la IP 192.168.1.1
diag sniffer packet any 'src host 192.168.1.1 and dst host 192.168.2.1'
Mientras que con este comando incluimos también que el destino sea 192.168.2.1. También podemos añadir protocolo con el siguiente comando, pudiendo usar tcp, udp o icmp
diag sniffer packet any 'src host 192.168.1.1 and dst host 192.168.2.1 and tcp'
También podemos especificar puertos:
diag sniffer packet any 'src host 192.168.1.1 and dst host 192.168.2.1 and tcp port 80'
El resultado obtenido será similar a algo así:
diag sniffer packet any 'src host 192.168.1.1 and dst host 192.168.2.1'
192.168.1.1.3426 -> 192.168.2.1.80: syn 1325244087
192.168.1.1.3426 -> 192.168.2.1.80: ack 3483111190
192.168.1.1.3426 -> 192.168.2.1.80: psh 1325244088 ack 3483111190
Debug de VPNs
Seguidamente, voy a dejar los comandos para realizar un debug de VPNs, primeramente, habilitaremos el debug de las VPNs:
diagnose debug application ike -1
diagnose debug enable
Después, si tenemos muchos túneles, nos interesaría filtrar por túnel, para poder realizar el debug del túnel que falle, de lo contrario, observaremos demasiada información y no podremos realizar un diagnóstico claro, para ello, filtraremos por la IP del Gateway remoto:
diagnose vpn ike log-filter dst-addr4 1.1.1.1
Tras esto, forzaremos el levantamiento del túnel, ya sea desde la GUI o enviando tráfico, y obtendremos las trazas del debug del túnel, las cuales tendremos que analizar.
Podemos añadir varios filtros en función de nuestras necesidades, existiendo los siguientes:
dst-addr4 IPv4 destino del Gateway remoto
dst-addr6 IPv6 destino del Gateway remoto
dst-port Rango de puertos destino para los que filtrar
interface Interfaz en la que se negocia la conexión IKE
list Ver los filtros actuales
name Filtramos por nombre de Fase 1
negate se utiliza para negar/excluir un filtro, es decir, negate dst-addr4 1.1.1.1
src-addr4 IPv4 origen del Gateway remoto
src-addr6 IPv6 origen del Gateway remoto
src-port Rango de puertos origen para los que filtrar
Cuando hayamos concluido, desactivamos el debug y limpiamos los filtros que hayamos establecido:
diagnose debug reset
diagnose debug disable
diagnose vpn ike log-filter clear
Sniffer avanzado de paquetes
Por último, voy a dejar los comandos para realizar un sniffer avanzado de paquetes en el Firewall, estos comandos nos permiten ver que pasos siguen o como se comportan los paquetes en su paso por el firewall, es decir, capturamos las trazas de los paquetes en su tratamiento por el firewall
Los comandos son los siguientes, primero, limpiamos cualquier posible filtro anterior:
diagnose debug reset
Después, añadimos filtros en función de origen, destino, o ambas, así como puertos:
diagnose debug flow filter saddr 192.168.1.1
diagnose debug flow filter daddr 8.8.8.8
diagnose debug flow filter port 5010
Y una vez hayamos afinado la búsqueda, activamos el debug:
diagnose debug flow show console enable
diagnose debug enable
Por último, le indicamos al firewall que nos muestre los 10 primeros paquetes que lleguen, es recomendable hacerlo así pues de lo contrario, si se genera mucho tráfico, podemos «perdernos» entre tantos paquetes:
diagnose debug flow trace start 10
Y una vez los hayamos analizado, desactivamos el debug:
diagnose debug disable
Eso es todo, ¡espero que os sirvan!
2 comentarios
ElSoftwareLibre · 22/05/2020 a las 7:40 pm
Genial artículo para debug de firewall, lo que necesitaba.
Daniel · 25/05/2020 a las 12:24 am
Me alegro que te haya servido!
Un saludo!