Si vous n’arrivez pas à faire communiquer deux machines, le plus souvent il s’agira d’un problème de configuration relativement connu tel que le pare-feu activé sur un hôte Windows ou une passerelle manquante dans un LAN routé. Néanmoins, si vous voulez pousser plus loin dans le débuggage réseau entre deux machines, vous pouvez vous servir de la puissance du Fortigate pour sniffer les paquets. Pour cela vous utiliserez la commande diagnose <interface> <’filter’> <verbose> <count>.
- <interface> : le nom d’une interface ou “any” pour toutes
- <’filter’> : ‘host 192.168.0.1‘, ‘tcp port 80‘
- <verbose> : 1 (entêtes), 2 (entêtes et données des IP) ou 3 (entêtes et données des paquets depuis Ethernet)
- <count> : nombre de paquets capturés
Exemple 1
Ma machine source 212.108.81.236 n’arrive pas à joindre la machine cible 92.196.169.1 en SSH (port 22) :
FG200A $ diagnose sniffer packet any 'src host 212.108.81.236 and dst host 92.196.169.1 and tcp port 22' 1 9.796366 212.108.81.236.3238 -> 92.196.169.1.22: syn 3441086616 12.806945 212.108.81.236.3238 -> 92.196.169.1.22: syn 3441086616 18.740938 212.108.81.236.3238 -> 92.196.169.1.22: syn 3441086616
Via le sniff réseau, on observe avec certitude que seul le SYN passe. Vu qu’aucune trace du ACK n’existe, il ne peut pas y avoir de communication.
Exemple 2
J’ai réglé mon problème précédent (exemple : SSH n’était pas installé sur la machine cible) et je veux maintenant monitorer tous les paquets (seulement 3 pour l’exemple) de l’interface wan1 :
FG200A $ diagnose sniffer packet wan1 none 1 3 212.108.81.236.36782 -> 92.196.169.1.22: syn 2171306497 92.196.169.1.22 -> 212.108.81.236.36782: syn 1786514428 ack 2171306498 212.108.81.236.36782 -> 92.196.169.1.22: ack 1786514429
Pour aller plus loin : Using the FortiOS built-in packet sniffer et Packet capture (sniffer) tips.