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!

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *