Fortinet – Diagnostiquer des firewall policy sur un Fortigate

Ce petit tuto décrit plusieurs commandes permettant de diagnostiquer les firewall policy d’un fortigate. Dans un premier temps les commandes permettant de consulter les firewall policy seront indiquées, suivi des commandes de diagnostiques. Les firewall policy sur les équipements d’un fortigate sont ni plus ni moins que des règles de pare-feu.

Cela n’est pas couvert par ce tuto, mais sont imbriqués à travers les firewall policy l’implémentation des mécanismes de NAT, services de filtrages applicatifs (Antivirus, URL Filtering, IDS/IPS, anti-spam etc …..) et QOS.

Pour infos, même si cela peut paraitre évident, l’ordre dans lequel s’exécute les règles a un impact, les règles de pare-feu sont lus de façon séquentielle par le système.

  • show firewall policy
TEST_LIV_Env1 (root) # show firewall policy
config firewall policy
edit 44                                             –> Indique le numéro de la règle
set srcintf « link1 »                               –> Indique l’interface source
set dstintf « wan1 »                              –> Indique l’interface de destination
set srcaddr « all »                                –> Indique les flux source
set dstaddr « all »                                –> Indique les flux de destination
set action accept                              –> L’action sur les flux (deny ou accept)
set schedule « always »                       –> Tranche horaire d’activité (toujours)
set service « TRAP »                          –> Indique la nature du service associé à la règle
next

Consulter les objets de pare-feu Policy dans la configuration:

  • sh firewall address
TEST_LIV_Env1 (root) # sh firewall address
config firewall address
edit « addrUDP8888_1 »
set subnet 69.9.18.55 255.255.255.255
next
edit « addrTCP3389_1 »
set subnet 88.11.20.199 255.255.255.255
next
edit « addrTCP8314_1 »
set subnet 213.1.12.22 255.255.255.255
next
edit « QOS1h »
set subnet 15.6.21.194 255.255.255.255
next
edit « QOS2h »
set subnet 10.8.254.12 255.255.255.255
next
edit « all »
next
edit « DNS1 »
–More–

Consulter les groupes d’objets de pare-feu dans la configuration

  • sh firewall addrgrp
TEST_LIV_Env1 (root) # sh firewall addrgrp
config firewall addrgrp
edit « addgrpTCP7770 »
set member « addrTCP7770_1 » « addrTCP7770_2 »
next
edit « addgrpTCP16384 »
set member « addrTCP16384_1 » « addrTCP16384_2 » « addrTCP16384_3 » « addrTCP16384_4 » « addrTCP16384_5 » « addrTCP16384_6 » « addrTCP16384_7 » « addrTCP16384_8 » « addrTCP16384_9 » « addrTCP16384_10 »
next
edit « addrMetier »
set member « DNS1 » « DNS2 » « DNS3 » « bloc_rfc1918_A » « bloc_rfc1918_B » « bloc_rfc1918_C » « proxy_hq » « smtp_pop_hq »
next
edit « addrnoAV »
set member « noAV1 » « noAV2 » « noAV3 » « noAV4 » « noAV5 » « noAV6 » « noAV7 » « noAV8 » « noAV9 » « noAV10 » « noAV11 » « noAV12 » « noAV13 » « noAV14 » « noAV15 » « noAV16 » « noAV17 » « noAV18 » « noAV19 » « noAV20 » « noAV21 » « noAV22 »
next
edit « addgrpTCP22 »
set member « addrTCP22_1 » « addrTCP22_2 » « addrTCP22_3 »
next
edit « addgrpTCP3389 »
set member « addrTCP3389_1 » « addrTCP3389_2 »
next
–More—

Diagnostique des règles de pare-feu:

Diagnostique des règles de pare-feu via :

Cette commande permet de connaitre l’association d’un objet à une Policy, l’exemple ci-dessous indique quelles sont les Policy faisant appels à l’objet « addrMetier » :

  • diag sys checkused firewall.addrgrp:name addrMetier
TEST_LIV_Env1 (global) # diag sys checkused firewall.addrgrp:name addrMetier
entry used by child table dstaddr:name ‘addrMetier’ of table firewall.policy:policyid ’36’
entry used by child table dstaddr:name ‘addrMetier’ of table firewall.policy:policyid ’31’
entry used by child table dstaddr:name ‘addrMetier’ of table firewall.policy:policyid ’11’
entry used by child table dstaddr:name ‘addrMetier’ of table firewall.policy:policyid ’30’
entry used by child table dstaddr:name ‘addrMetier’ of table firewall.policy:policyid ’33’
entry used by child table dstaddr:name ‘addrMetier’ of table firewall.policy:policyid ’40’

Diagnostique des règles de pare-feu via :

Cette commande permet de lister les firewall policy et afficher les propriétés de chacune d’elles.

  • diagnose firewall iprope list
TEST_LIV_Env1 (root) # diagnose firewall iprope list
policy flag (10050108): redir nat master use_src pol_stats
flag2 (0): shapers: / per_ip=
imflag: sockport: 0 action: accept index: 53
schedule(always) group=00100004 av=00004e21 au=00000000 host=0 split=00000000 chk_client_info=0x0
misc=20001 grp_info=0 seq=0 hash=1
tunnel=
zone(1): 15 ->zone(1): 3
source(1): 0.0.0.0-255.255.255.255,
dest(5): 21.99.6.0-21.99.6.127, 15.138.197.0-15.138.197.255, 91.12.53.97-91.12.53.97, 91.121.56.12-91.121.56.12, 6.23.13.0-6.23.13.255,
source wildcard(0):
destination wildcard(0):
service(1):
[6:0x0:0/(0,65535)->(443,443)]
nat(0):
mms: 0 0

Diagnostique des règles de pare-feu via un debug flow:

La commande ci-dessous permet de voir quelle est la règle de pare-feu utilisée dans le cadre d’un flux transitant à travers le boitier:

TEST_LIV_Env1 (root) # diagnose debug flow show console enable <–show trace messages on console
TEST_LIV_Env1 (root) # diagnose debug flow show function-name enable <–show function name
TEST_LIV_Env1 (root) # diagnose debug flow trace start 20 <– Enfin, la dernière étape permet d’activer le debug flow.
TEST_LIV_Env1 (root) # 2009-11-12 11:50:38 trace_id=2 func=resolve_ip_tuple_fast line=3239 msg= »vd-office received a packet(proto=6, 10.250.0.4:4620->80.14.186.130:23) from internal. »
2009-11-12 11:50:38 trace_id=2 func=resolve_ip_tuple line=3359 msg= »allocate a new session-000030ad »
2009-11-12 11:50:38 trace_id=2 func=vf_ip4_route_input line=1609 msg=« find a route: gw-192.31.232.198 via link0 »
2009-11-12 11:50:38 trace_id=2 func=get_new_addr line=1566 msg= »find SNAT: IP-192.29.235.254(from IPPOOL), port-37508″
2009-11-12 11:50:38 trace_id=2 func=fw_forward_handler line=440 msg= »Allowed by Policy-25: SNAT »
2009-11-12 11:50:38 trace_id=2 func=__ip_session_run_tuple line=1692 msg= »SNAT 10.250.0.4->192.29.235.254:37508″
2009-11-12 11:50:38 trace_id=3 func=resolve_ip_tuple_fast line=3239 msg= »vd-root received a packet(proto=6, 192.29.235.254:37508->80.184.186.130:23) from link1. »
2009-11-12 11:50:38 trace_id=3 func=resolve_ip_tuple line=3359 msg= »allocate a new session-000030ae »
2009-11-12 11:50:40 trace_id=4 func=resolve_ip_tuple_fast line=3239 msg= »vd-office received a packet(proto=6, 10.250.0.4:4620->80.184.186.130:23) from internal. »

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *