Fortinet – Diagnostique du filtrage WEB et du mode Proxy d’un Fortigate

Voici un billet ayant pour thème comment procéder au diagnostique du service de Filtrage WEB d’un Fortigate, puis par la suite les commandes permettant de diagnostiquer le module Proxy du boitier. Comme indiqué plus tôt, la gamme d’UTM Fortigate depuis la version 4.0 MR1 intègre une nouvelle fonctionnalité intéressante permettant de délivrer un service de type Mandataire WEB.

Debug du module de filtrage d’url:

Exemple d’une remontée d’information du module de diagnostic de la navigation WEB. Il s’agit d’une navigation classique n’étant pas classifiée comme illicite.

Vers google:

test (root) # diagnose debug application urlfilter -1

(root) # msg= »received a request/tmp/.thttp.socket, addr_len=21: d=atoto.toto.fr:80,,vfid=1,, client=10.250.0.2, url=/ »msg= »Found it in cache. URL cat=52″ IP cat=0user= »N/A »src=10.250.0.2 sport=4940 dst=172.10.100.100 dport=8080 service= »http »hostname= »toto.toto.fr » status=passthrough url= »/ »matchType=prefixURL / matched prefix http://toto.toto.fr:8080/ (URL rating 52, IP rating 0)msg= »URL belongs to an allowed category in the policy » user= »N/A » src=10.250.0.2sport=4940 dst=172.10.100.100 dport=8080 service= »http » cat=52cat_desc= »Information Technology »hostname= »toto.toto.fr » url= »/ » status=passthroughmsg= »received a request /tmp/.thttp.socket, addr_len=21:d=fr.start3.mozilla.com:80,, vfid=1,, client=10.250.0.2,url=/firefox?client=firefox-a&rls=org.mozilla:fr:official »msg= »Found it in cache. URL cat=52″ IP cat=0user= »N/A »src=10.250.0.2 sport=4859 dst=172.10.100.100 dport=8080 service= »http »hostname= »fr.start3.mozilla.com » status=passthroughurl= »/firefox?client=firefox-a&rls=org.mozilla:fr:official »matchType=prefixmsg= »URL belongs to an allowed category in the policy » user= »N/A »src=10.250.0.2 sport=4859 dst=172.10.100.100 dport=8080 service= »http »cat=52 cat_desc= »Information Technology »hostname= »fr.start3.mozilla.com »url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official »status=passthroughmsg= »received a request /tmp/.thttp.socket, addr_len=21: d=fr.start3.mozilla.com:80,, vfid=1,, client=172.10.100.100, url=/firefox?client=firefox-a&rls=org.mozilla:fr:official »msg= »Found it in cache. URL cat=52″ IP cat=41user= »N/A »src=172.10.100.100 sport=1131 dst=209.85.227.105 dport=80service= »http » hostname= »fr.start3.mozilla.com » status=passthrough url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official » matchType=prefixmsg= »URL belongs to an allowed category in the policy » user= »N/A »src=172.10.100.100 sport=1131 dst=209.85.227.105 dport=80service= »http » cat=52 cat_desc= »Information Technology »hostname= »fr.start3.mozilla.com »url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official »status=passthroughmsg= »received a request /tmp/.thttp.socket, addr_len=21:d=www.google.com:80,, vfid=1,, client=10.250.0.2,url=/firefox?client=firefox-a&rls=org.mozilla:fr:official »msg= »Found it in cache. URL cat=41″ IP cat=0user= »N/A »src=10.250.0.2 sport=4857 dst=172.10.100.100 dport=8080 service= »http »hostname= »www.google.com » status=passthroughurl= »/firefox?client=firefox-a&rls=org.mozilla:fr:official »matchType=exactmsg= »URL belongs to an allowed category in the policy » user= »N/A »src=10.250.0.2 sport=4857 dst=172.10.100.100 dport=8080 service= »http »cat=41 cat_desc= »Search Engines » hostname= »www.google.com »url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official »status=passthrough

Exemple d’un flux identifié comme étant non autorisé :

Exemple du blocage du site www.sexeautop.com faisant partie d’une catégorie identifiée comme non autorisée:

test (root) # msg= »URL belongs to an allowed categoryin the policy » user= »N/A » src=10.250.0.2 sport=4857 dst=172.10.100.100dport=8080 service= »http » cat=41 cat_desc= »Search Engines »hostname= »www.google.fr » url= »/url?sa=T&source=web&ct=res&cd=5&ved=0CCUQFjAE&url=http%3A%2F%2Fwww.sexeautop.com%2F&ei=2vooS_TQAs2hjAez8YisDQ »status=passthroughmsg= »URL belongs to an allowed category in the policy » user= »N/A »src=172.10.100.100 sport=1136 dst=209.85.229.103 dport=80service= »http » cat=41 cat_desc= »Search Engines »hostname= »www.google.fr »url= »/url?sa=T&source=web&ct=res&cd=5&ved=0CCUQFjAE&url=http%3A%2F%2Fwww.sexeautop.com%2F&ei=2vooS_TQAs2hjAez8YisDQ »status=passthroughmsg= »received a request /tmp/.thttp.socket, addr_len=21: d=www.sexeautop.com:80,, vfid=1,, client=10.250.0.2, url=/ »msg= »Found it in cache. URL cat=14″ IP cat=0user= »N/A »src=10.250.0.2 sport=4859 dst=172.10.100.100 dport=8080 service= »http »hostname= »www.sexeautop.com » status=passthrough url= »/ » matchType=prefixURL / matched prefix http://www.sexeautop.com:8080/ (URL rating 14, IP rating 0)msg= »URL belongs to an allowed category in the policy » user= »N/A »src=10.250.0.2 sport=4859 dst=172.10.100.100 dport=8080 service= »http »cat=14 cat_desc= »Pornography » hostname= »www.sexeautop.com » url= »/ »status=passthroughmsg= »received a request /tmp/.thttp.socket, addr_len=21: d=www.sexeautop.com:80,, vfid=1,, client=172.10.100.100, url=/ »msg= »Found it in cache. URL cat=14″ IP cat=0user= »N/A »src=172.10.100.100 sport=1137 dst=213.251.149.22 dport=80service= »http » hostname= »www.sexeautop.com » status=passthrough url= »/ » matchType=prefixURL / matched prefix http://www.sexeautop.com/ (URL rating 14, IP rating 0)msg= »URL belongs to a denied category in policy » user= »N/A »src=172.10.100.100 sport=1137 dst=213.251.149.22 dport=80service= »http » cat=14 cat_desc= »Pornography »hostname= »www.sexeautop.com » url= »/ » status=blocked

Diagnostiquer un problème de licences:

Symptômes:

Un utilisateur appel en indiquant que les tests suivants sont corrects:

  • Validation des voyants des équipements: OK
  • Raccordement des utilisateurs et équipements de la desserte interne: OK
  • La connectivité entre le Fortigate et les postes utilisateurs: OK
  • Les informations de résolutions de noms (DNS): OK
  • Les informations de connectivités depuis les postes  vers le réseau interne (exemple un VPN IP MPLS) et Internet (ping & traceroute): OK
  • Lors de la tentative de navigation sur internet ou bien l’accès aux applications WEB interne: NOK

Identification du problème:

Initier la commande suivante:

  • diagnose debug application urlfilter -1

Si un message comme celui que vous voyez ci-contre apparaît « error= »invalid license » url= »/ » », il sera donc nécessaire de vérifier la validité des licences sur le boitier.

test (proxy) # diagnose debug application urlfilter -1

msg= »received a request /tmp/.thttp.socket, addr_len=21: d=google.com:80,, vfid=1,, client=192.168.0.15, url=/ »msg= »Policy denies URLs when a rating error occurs » user= »N/A » src=192.168.0.15 sport=13539 dst=172.10.100.100 dport=8080 service= »http » hostname= »google.com » status=block error= »invalid license » url= »/ »msg= »received a request /tmp/.thttp.socket, addr_len=21: d=google.is:80,, vfid=1,, client=192.168.0.15, url=/ »msg= »Policy denies URLs when a rating error occurs » user= »N/A »src=192.168.0.15 sport=1083 dst=172.10.100.100 dport=8080service= »http » hostname= »google.is » status=block error= »invalidlicense » url= »/ »

Se placer dans l’instance globale de l’équipement (si en mode VDOM):

  • get system fortiguard

Pour rappel c’est « config global » et non « config vdom » puis « edit global ».

Si ‘affichage ressemble à ce que vous voyez ci-dessous, il faudra procéder à l’enregistrement de l’équipement (voir l’étape suivante):

test (global) # get system fortiguard

hostname : service.fortiguard.net
srv-ovrd : disableport : 8888
client-override-status: disable
service-account-id : (null)
load-balance-servers: 1
analysis-service : enable
antispam-status : disable
antispam-cache : disable
antispam-cache-ttl : 1800
antispam-cache-mpercent: 2
antispam-license : Expired
antispam-expiration : N/A
antispam-timeout : 7
avquery-status : enable
avquery-cache : enable
avquery-cache-ttl : 1800
avquery-cache-mpercent: 2
avquery-license : Expired
avquery-expiration : N/A
avquery-timeout : 7
webfilter-status : enable
webfilter-cache : enable
webfilter-cache-ttl : 3600
*webfilter-license : Expired
webfilter-expiration: N/A
webfilter-timeout : 15
antispam-score-threshold: 80

Validation du service:

Se placer dans l’instance globale de l’équipement:

  • get system fortiguard

Si ‘affichage ressemble à ce que vous voyez ci-dessous, c’est que l’enregistrement est correct (il est possible de devoir attendre 10 minutes environs avant d’aboutir au résultat ci-dessous):

test (global) # get system fortiguard
hostname : service.fortiguard.net
srv-ovrd : disableport : 8888
client-override-status: disable
service-account-id : (null)
oad-balance-servers: 1
analysis-service : enable
antispam-status : disable
antispam-cache : disable
antispam-cache-ttl : 1800
antispam-cache-mpercent: 2
antispam-license : Contract
antispam-expiration : Thu Dec 13 01:00:00 2012
antispam-timeout : 7
avquery-status : enable
avquery-cache : enable
avquery-cache-ttl : 1800
avquery-cache-mpercent: 2
avquery-license : Contract
avquery-expiration : Thu Dec 13 01:00:00 2012
avquery-timeout : 7
webfilter-status : enable
webfilter-cache : enable
webfilter-cache-ttl : 3600
webfilter-license : Contract
webfilter-expiration: Thu Dec 13 01:00:00 2012
webfilter-timeout : 15
antispam-score-threshold: 80

Executer le mode Debug pour le module de filtrage  les flux:

  • Tests_AAA-S1-U_V~ (root) # diagnose debug application urlfilter -1

Vers google

test (root) # diagnose debug application urlfilter -1
test (root) # msg= »received a request /tmp/.thttp.socket, addr_len=21: d=toto.toto.fr:80,, vfid=1,, client=10.250.0.2, url=/ »
msg= »Found it in cache. URL cat=52″ IP cat=0user= »N/A » src=10.250.0.2 sport=4940 dst=172.10.100.100 dport=8080 service= »http » hostname= »toto.toto.fr » status=passthrough url= »/ » matchType=prefix
URL / matched prefix toto.toto.fr:8080/ (URL rating 52, IP rating 0)
msg= »URL belongs to an allowed category in the policy » user= »N/A » src=10.250.0.2 sport=4940 dst=172.10.100.100 dport=8080 service= »http » cat=52 cat_desc= »Information Technology » hostname= »toto.toto.fr » url= »/ » status=passthrough
msg= »received a request /tmp/.thttp.socket, addr_len=21: d=fr.start3.mozilla.com:80,, vfid=1,, client=10.250.0.2, url=/firefox?client=firefox-a&rls=org.mozilla:fr:official »
msg= »Found it in cache. URL cat=52″ IP cat=0user= »N/A » src=10.250.0.2 sport=4859 dst=172.10.100.100 dport=8080 service= »http » hostname= »fr.start3.mozilla.com » status=passthrough url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official » matchType=prefix
msg= »URL belongs to an allowed category in the policy » user= »N/A » src=10.250.0.2 sport=4859 dst=172.10.100.100 dport=8080 service= »http » cat=52 cat_desc= »Information Technology » hostname= »fr.start3.mozilla.com » url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official » status=passthrough
msg= »received a request /tmp/.thttp.socket, addr_len=21: d=fr.start3.mozilla.com:80,client=172.10.100.100, url=/firefox?client=firefox-a&rls=org.mozilla:fr:official », vfid=1,,
msg= »Found it in cache. URL cat=52″ IP cat=41user= »N/A » src=172.10.100.100 sport=1131 dst=209.85.227.105 dport=80 service= »http » hostname= »fr.start3.mozilla.com » status=passthrough url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official » matchType=prefix
msg= »URL belongs to an allowed category in the policy » user= »N/A » src=172.10.100.100 sport=1131 dst=209.85.227.105 dport=80 service= »http » cat=52 cat_desc= »Information Technology » hostname= »fr.start3.mozilla.com » url= »/firefox?client=firefox-a&rls=org.mozilla:fr:official » status=passthrough
msg= »received a request /tmp/.thttp.socket, addr_len=21: d=www.google.com:80,, vfid=1,, client=10.250.0.2, url=/firefox?client=firefox-a&rls=org.mozilla:fr:official »

Diagnostique avancé du proxy:

La commande ci-dessous permet de diagnostiquer les sessions mise en cache par le proxy du boitier Fortigate:

test (global) # diagnose debug application wad -1
test (global) # === *** Wan Optimization Daemon is starting *** ===__wad_sched_task_list_open(53): opne task_list=0x909ad20 called by wad_tcp_open:1484bound proto=TCP 0.0.0.0:7800 to sock=7 vd=0__wad_bank_open(100): opne bank=0x8f4a420 called by wad_app_eng_open:2213__wad_bank_open(100): opne bank=0x8f4a460 called by wad_app_eng_open:2214__wad_bank_open(100): opne bank=0x8f4a4a0 called by wad_app_eng_open:2215__wad_bank_open(100): opne bank=0x8f4a4e0 called by wad_app_eng_open:2216__wad_bank_open(100): opne bank=0x8f4a520 called by wad_app_eng_open:2217vd 0 addwad_web_cache_listener_add(11519): @@@ vd=0 enabled=0 http_incoming_port=0 status=0vd 1 addwad_web_cache_listener_add(11519): @@@ vd=1 enabled=0 http_incoming_port=0 status=0vd 2 addwad_web_cache_listener_add(11519): @@@ vd=2 enabled=1 http_incoming_port=8080 status=1bound proto=TCP 0.0.0.0:8080 to sock=9 vd=2Web cache starts…__wad_bank_open(100): opne bank=0x8f4ad20 called by wad_http_cache_module_open:11611__wad_bank_open(100): opne bank=0x8f4ad80 called by wad_http_cache_module_open:11612__wad_bank_open(100): opne bank=0x8f4adc0 called by wad_http_cache_module_open:11613__wad_bank_open(100): opne bank=0x8f4ae00 called by wad_http_cache_module_open:11614__wad_sched_task_list_open(53): opne task_list=0x8f4ae40 called by wad_http_cache_module_open:11615__wad_sched_task_list_open(53): opne task_list=0x8f4ae60 called by wad_http_cache_module_open:11616__wad_sched_task_list_open(53): opne task_list=0x8f4ae80 called by wad_http_cache_module_open:11617msg= »received a request /tmp/.thttp.socket, addr_len=21: d=clients1.google.fr:80,, vfid=1,, client=192.168.0.50, url=/complete/search?hl=fr&q=TO&cp=2″@@@ wad_tcp_port.c@wad_tcp_port_alloc(702) alloc tcp_port=0x90ba8a8redirect 9 accepted 192.168.0.50:13449 -> 172.10.100.100:8080 on 11@@@ wad_app_eng.c@wad_port_cache_make(966) to make web cache@@@ wad_http_cache.c@wad_http_cache_session_make(11486) make ok session=0x90baa98wad_tcp_port.c@wad_tcp_port_out_write_done(567) tcp_port 0x90ba8a8 fd=11 read_block=1.sock 11 read_block removed, turn on readability.@@@ wad_tcp_port.c@wad_tcp_port_alloc(702) alloc tcp_port=0x90babc0wad_tcp_port_put(289) free tcp_port=0x90babc0wad_tcp_port_on_event(996): start processing tcp event=0x1 fd=11 read_block=0sock 11 read (0,4096)read [(0,682) (47 45 54 20 68 74 74 70 3a 2f 2f 63 6c 69 65 6e 74 73 31 2e 67 6f 6f 67 6c 65 2e 66 72 2f 63 6f 6d 70 6c 65 74 65 2f 73 65 61 72 63 68 3f 68 6c 3d 66 72
………………………………

Exécuter des actions sur le module proxy du boitier:

La commande ci-dessous doit être executée en mode global. Elle permet de procéder à divers actions sur le proxy (module WAD) du Fortigate.

test (global) # diagnose test application wad
WAD Test Usage
1: display total memory usage
2: display memory pool stats
3: display proxy status
4: display all stats and connections
5: toggle reading config from kernel
6: turn memory pooling off
7: turn memory pooling on
50: diaplay Web Cache stats
51: flush Web Cache stats
52: flush idle Web cache objects
52: display WAD tunnel stats.
98: gracefully stopping wad proxy
99: restart proxy
test (global) #

Exemple d’utilisation, redémarrer l’instance du proxy:

test (global) # diagnose test application wad 99
restarting wad proxy
C1205-SAA-S1-U_V~ (global) # === *** Wan Optimization Daemon is starting *** ===
__wad_sched_task_list_open(53): opne task_list=0x909ad20 called by wad_tcp_open:1484
bound proto=TCP 0.0.0.0:7800 to sock=7 vd=0
__wad_bank_open(100): opne bank=0x8f4a420 called by wad_app_eng_open:2213
__wad_bank_open(100): opne bank=0x8f4a460 called by wad_app_eng_open:2214
__wad_bank_open(100): opne bank=0x8f4a4a0 called by wad_app_eng_open:2215
__wad_bank_open(100): opne bank=0x8f4a4e0 called by wad_app_eng_open:2216
__wad_bank_open(100): opne bank=0x8f4a520 called by wad_app_eng_open:2217
vd 0 add
wad_web_cache_listener_add(11519): @@@ vd=0 enabled=0 http_incoming_port=0 status=0
vd 1 add
wad_web_cache_listener_add(11519): @@@ vd=1 enabled=0 http_incoming_port=0 status=0
vd 2 add
wad_web_cache_listener_add(11519): @@@ vd=2 enabled=1 http_incoming_port=8080 status=1
bound proto=TCP 0.0.0.0:8080 to sock=9 vd=2
Web cache starts…
__wad_bank_open(100): opne bank=0x8f4ad20 called by wad_http_cache_module_open:11611
__wad_bank_open(100): opne bank=0x8f4ad80 called by wad_http_cache_module_open:11612
__wad_bank_open(100): opne bank=0x8f4adc0 called by wad_http_cache_module_open:11613
__wad_bank_open(100): opne bank=0x8f4ae00 called by wad_http_cache_module_open:11614
__wad_sched_task_list_open(53): opne task_list=0x8f4ae40 called by wad_http_cache_module_open:11615
__wad_sched_task_list_open(53): opne task_list=0x8f4ae60 called by wad_http_cache_module_open:11616
__wad_sched_task_list_open(53): opne task_list=0x8f4ae80 called by wad_http_cache_module_open:11617
test (global) #

Laisser une réponse

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