Fortinet – diagnostiquer IPSEC sur un UTM Fortigate

Ce document a pour objectif de présenter différentes commandes permettant d’aider au diagnostic d’un UTM Fortigate. Ce billet n’a pas pour vocation de présenter l’implémentation  et  le fonctionnement des différents mécanismes composant le protocole IPSEC. Un article dédié sera mis en ligne prochainement sur ces sujets (je l’espère, le temps est une ressource qui se raréfie).

Ces différentes commandes couvrent:

  • La consultation des paramètres IPSEC (phase 1 et phases 2).
  • Le debug  IPSEC sur un fortinet.
  • Réinitialiser le tunnel où uniquement une association de sécurité.

 

Vérification des paramètres de la phase 1 IPSEC:

La commande permet consulter les paramètres de la phase 1 IPSEC dans la configuration.

Test_1 (root) # show vpn ipsec phase1

config vpn ipsec phase1

edit « nomadeP1 »

set type dynamic                     Lorsqu’une assignation d’IP se fait via PPP ou DHCP

set interface « wan2 »                        Interface d’écoute du processus IPSEC

set dhgrp 2                        Choix du diffie-hellman group (grp 2 = clé de 1024 bits)

set proposal aes128-sha1             Les méthodes de chiffrement et contrôle d’intégrité

set xauthtype auto                      Choix du mode Xauth

set authusrgrp « grpnomade »           Choix du profil d’authentification (voir LDAP)

set psksecret ENC                   ABAnAAOyq0UppnT5e5MP/s4MHpi4rtWw1SMDC4oJpebWsUqgifJrWRbmHH4WFm0Yg/xys+8HjJK14bqcRt/l/HI4sxshSfAeOvL28iE38TmJAvnR à Clé de validation de la phase 1 (IKE)

set keepalive 30              Paramètre utile à la NAT-T actif par défaut.

next

edit « mobileP1 »

set type dynamic

set interface « wan1 »

set dhgrp 2

set proposal aes128-sha1

set xauthtype auto

set authusrgrp « grpnomade »

set psksecret ENC ABAnAAOyq0UppnT5sKrhNON+4yNk5u1yC45X3CJ/6IAbXm0QOCAR1dLIELU8NhrIyuZs+7HzgdAYZzw5MCHiq975uQ736Bc2dFxPUkFRSgAvCwYf

set keepalive 30

next

end

 

Vérification des paramètres de la phase 2 IPSEC:

La commande permet consulter les paramètres de la phase 1 IPSEC dans la configuration.

Test_1 (root) # show vpn ipsec phase2

config vpn ipsec phase2

edit « nomadeP2 »                       Nom de la phase 2

set keepalive enable                  Paramètre utile à la NAT-T actif par défaut.

set phase1name « nomadeP1 »    association de la phase 1 à cette phase 2

set proposal aes128-sha1                 Les méthodes de chiffrement et contrôle d’intégrité

set replay disable                            Anti-rejeu désactivé

set dhcp-ipsec enable           Activation du DHCP over IPSEC

set dhgrp 2               Choix du diffie-hellman group (grp 2 = clé de 1024 bits)

next

edit « mobileP2 »

set keepalive enable

set phase1name « mobileP1 »

set proposal aes128-sha1

set replay disable

set dhcp-ipsec enable

set dhgrp 2

next

end

Vérifier sommairement l’état des tunnels IPSEC:

La commande permet de voir sommairement l’état des sessions IPSEC, elle indique si le tunnel est actif où non ainsi que la durée d’activité de la session.

Test_1 (global) # get ipsec tunnel list

NAME         REMOTE-GW        PROXY-ID-SOURCE          PROXY-ID-DESTINATION     STATUS TIMEOUT

tunnelP1 79.174.193.249:0 172.29.235.254/255.255.255.255 0.0.0.0/0.0.0.0          down

nomadeP1     0.0.0.0:0

mobileP1     0.0.0.0:0

 

Vérifier l’état des sessions VPN:

Afin de consulter ces informations, il est nécessaire de se placer dans le VDOM concerné. Dans notre contexte, il faut se positionner dans le VDOM ROOT.

La commande ci-dessous permet de consulter les paramètres des tunnels IPSEC :

confV3 (root) # diagnose vpn tunnel list

list all ipsec tunnel in vd 0

——————————————————

name=tunnelP1 ver=1 serial=3 79.174.204.231:0->79.174.193.249:0 lgwy=dyn tun=intf mode=auto bound_if=24

proxyid_num=2 child_num=0 refcnt=6 ilast=1 olast=1

stat: rxp=0 txp=0 rxb=0 txb=0

dpd: mode=active on=1 idle=5000ms retry=3 count=0 seqno=257

natt: mode=none draft=0 interval=0 remote_port=0

proxyid=tunnelP12 proto=0 sa=1 ref=2 auto_negotiate=1 serial=1

src: 172.29.235.254/255.255.255.255:0

dst: 0.0.0.0/0.0.0.0:0

SA: ref=3 options=00000029 soft=0 mtu=1372 expire=483 replaywin=0 seqno=1

life: bytes=0/0 timeout=1773/1800

dec: spi=553562be esp=aes key=16 8f84776c410d761d75b1a2a1d7f35371

ah=sha1 key=20 7e5c48599f3c1ea63b1139fce7ae82f6d7619e23

enc: spi=d07c4e80 esp=aes key=16 82902ac998ddf970614f1d429399863c

ah=sha1 key=20 ee58231de6b3d57b225bbed9af5232f354087716

proxyid=tunnelP13 proto=0 sa=1 ref=2 auto_negotiate=1 serial=2

src: 2.1.86.234/255.255.255.255:0

dst: 0.0.0.0/0.0.0.0:0

SA: ref=3 options=00000029 soft=0 mtu=1372 expire=486 replaywin=0 seqno=1

life: bytes=0/0 timeout=1776/1800

dec: spi=553562bf esp=aes key=16 72ac95a6e516d305f8b154ed949b93a0

ah=sha1 key=20                               Q>Ww<               f0a824da73be17bbf1cf89f67b11acd8a37439b3

enc: spi=b294a1c9 esp=aes key=16 0f562fa4d8ff20af25b77f4259ba56e5

ah=sha1 key=20 11bf34dc19509b414a7fa8d91a1a214b63cbc0f3

——————————————————

name=nomadeP1 ver=0 serial=1 0.0.0.0:0->0.0.0.0:0 lgwy=dyn tun=tunnel mode=dialup bound_if=24

proxyid_num=0 child_num=0 refcnt=7 ilast=1314 olast=1314

stat: rxp=0 txp=0 rxb=0 txb=0

dpd: mode=active on=0 idle=5000ms retry=3 count=0 seqno=0

natt: mode=none draft=0 interval=0 remote_port=0

——————————————————

name=mobileP1 ver=0 serial=2 0.0.0.0:0->0.0.0.0:0 lgwy=dyn tun=tunnel mode=dialup bound_if=25

proxyid_num=0 child_num=0 refcnt=7 ilast=1314 olast=1314

stat: rxp=0 txp=0 rxb=0 txb=0

dpd: mode=active on=0 idle=5000ms retry=3 count=0 seqno=0

natt: mode=none draft=0 interval=0 remote_port=0

 

Consulter dans le détail les informations relatives aux tunnels IPSEC:

Test_1 (root) # diagnose vpn ike config

vd: root/0   Le vdom de collecte du tunnel IPSEC.

name: mobileP1 Le nom de la phase 1

serial: 2

version: 1

type: dynamic  Le type d’interface

mode: main    Mode de négociation d’échange de la clé

dpd: enable  retry-count 3  interval 5000ms  Paramètre de dead peer detection.

auth: psk  Mode d’authentification de la phase IKE

dhgrp:  2    Valeur du groupe diffie-Hellman

xauth: server-auto  Paramètre de la phase xauth

xauth-group: grpnomade          On indique le groupe d’authentification

interface: wan1              Interface d’écoute pour ce tunnel

distance: 1

priority: 0

phase2s:

mobileP2 proto 0 src 0.0.0.0/0.0.0.0:0 dst 0.0.0.0/0.0.0.0:0  dhgrp 2     Identifie le trafic intéressant de la phase 2

policies:

IPv4 policy 41 src ‘link1’ dst ‘wan1’      Identifie la source et la destination ainsi que la  Policy analysant ces flux.

IPv4 policy 6 src ‘link1’ dst ‘wan1’

vd: root/0

name: nomadeP1

serial: 1

version: 1

type: dynamic

mode: main

dpd: enable  retry-count 3  interval 5000ms

auth: psk

dhgrp:  2

xauth: server-auto

xauth-group: grpnomade

interface: wan2

distance: 1

priority: 0

phase2s:

nomadeP2 proto 0 src 0.0.0.0/0.0.0.0:0 dst 0.0.0.0/0.0.0.0:0  dhgrp 2

policies:

IPv4 policy 50 src ‘link1’ dst ‘wan2’

IPv4 policy 5 src ‘link1’ dst ‘wan2’

vd: root/0

name: tunnelP1

serial: 3

version: 1

type: static

local: 0.0.0.0

remote: 79.174.193.249

mode: main

dpd: enable  retry-count 3  interval 5000ms

auth: psk

dhgrp:  2

xauth: client

xauth-user: test1@vpn.test1.fr

interface: wan2

phase2s:

tunnelP12 proto 0 src ip_ippool:0 dst all:0

tunnelP13 proto 0 src Supervision:0 dst all:0

policies:

IPv4 policy 46 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 21 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 23 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 25 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 27 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 30 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 33 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 40 src ‘link1’ dst ‘tunnelP1’

IPv4 policy 49 src ‘tunnelP1’ dst ‘LoopMetier’

 

Disposer de statistiques sur les technologies de chiffrement et de méthode de contrôle d’intégrité:

Test_1 (root) # diagnose vpn ipsec status

All ipsec crypto devices in use:

CP6:

null:   0       0

des:    0       0

3des:   0       0

aes:    0       0

null:   0       0

md5:    0       0

sha1:   0       0

sha256: 0       0

SOFTWARE:

null:   0       0

des:    0       0

3des:   0       0

aes:    0       0

null:   0       0

md5:    0       0

sha1:   0       0

sha256: 0       0

 

Procéder à un diagnostic avancé du processus IPSEC:

La commande ci-dessous permet de diagnostiquer les sessions par IPSEC par le biais de l’initiation du mode debug app ike.

Test_1 (root) # diagnose debug enable

Test_1 (root) # diagnose debug app ike -1

……….

Responder: parsed 192.168.17.181 aggressive mode message #2 (DONE)

Initiating Xauth.

Send IKE Packet(xauth):192.168.17.197:500(if3) -> 192.168.17.181:500, len=68

Initiator: sent 192.168.17.181 xauth mode message #1 (OK)

…………………………..

Comes 192.168.17.181:500->192.168.17.197:500,ifindex=3, external, vf_id=0….

Exchange Mode = 32, Message id = 0x57578D79, Len = 348

…………………………..

Received Payloads= HASH PSEUDO_NATD

Xauth received 1st reply

……………………………..

Beginning XAUTH user authentication.

Username = xxxxxxxx.

Password = yyyyyy.

fam_authenticate(): 1 xxxxxxxx yyyyyy

Auth with radius server: 192.16.100.100 for user xxxxxxxx (PAP)

Authentication of user xxxxxxxx on 192.16.100.100 was successful!

IKE: received radius results. Id = 25, status = 1

Send IKE Packet(xauth):192.168.17.197:500(if3) -> 192.168.17.181:500, len=60

Initiator: sent 192.168.17.181 xauth mode message #2 (OK)

……………………………

 

Réinitialiser les paramètres SAs, NAT-T (Nat Traversal) et DPD (Dead peer detection) :

Cette commande permet de réinitialiser les phases 1 et 2 d’IKE.

Test_1 (root) # diagnose vpn tunnel reset

Commande permettant de reconnecter SA (association de sécurité) IPSEC:

La commande ci-dessous permet de réinitialiser les sessions IPSEC au cas où elle serait inactive. Afin de connaitre le nom de la phase 2, il suffit d’effectuer un show vpn ipsec phase2.

Test_1 (root) # diagnose vpn tunnel up <le nom_de_la_phase_2>

 

Laisser une réponse

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