informatique:fortinet:vpn
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:fortinet:vpn [2016/08/31 10:07] – Offloading pteu | informatique:fortinet:vpn [2025/01/09 15:05] (current) – [Debug/Troubleshoot] pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
======VPN (IPsec)====== | ======VPN (IPsec)====== | ||
- | Un tunnel IPsec ou VPN IPSec est une méthode standardisée permettant d' | + | Un tunnel IPsec ou VPN IPSec est une méthode standardisée permettant d' |
=====Théorie===== | =====Théorie===== | ||
Line 8: | Line 8: | ||
Il existe 2 principes d' | Il existe 2 principes d' | ||
- | * **Route-based VPN** (phase1-interface) aussi appelé interface-based VPN : Il créer une sous-itf réseau virtuelle ; le trafic est orienté dans le tunnel VPN en fonction de la table de routage. Une route statique avec comme nexthop l' | + | * **Route-based VPN** (phase1-interface) aussi appelé |
Ce type de VPN ne montera pas s'il n'y a pas de règle de sécurité acceptant du trafic depuis et vers l' | Ce type de VPN ne montera pas s'il n'y a pas de règle de sécurité acceptant du trafic depuis et vers l' | ||
- | * **Policy Based VPN** : Le trafic est orienté dans le tunnel VPN en fonction des règles de la politique de sécurité. Ces règles auront comme action " | + | * **Policy Based VPN** (ou **tunnel-based**) |
source : http:// | source : http:// | ||
Line 20: | Line 20: | ||
# configuration de la phase1 (IKE) | # configuration de la phase1 (IKE) | ||
config vpn ipsec phase1-interface | config vpn ipsec phase1-interface | ||
- | edit "tun-CC" | + | edit "branch_LAN" |
set interface " | set interface " | ||
+ | set ike-version 2 | ||
+ | set localid " | ||
set keylife 28800 | set keylife 28800 | ||
- | set proposal aes256-sha256 | + | set proposal |
- | set dhgrp 5 | + | set dhgrp 14 19 |
set remote-gw 10.36.1.1 | set remote-gw 10.36.1.1 | ||
set psksecret ENC <hashage PSK> | set psksecret ENC <hashage PSK> | ||
Line 30: | Line 32: | ||
# configuration de la phase2 (IPSec) | # configuration de la phase2 (IPSec) | ||
config vpn ipsec phase2-interface | config vpn ipsec phase2-interface | ||
- | edit "tun-CC-p2" | + | edit "branch_LAN-p2" |
- | set phase1name "tun-CC" | + | set phase1name "branch_LAN" |
- | set proposal aes256-sha256 | + | set proposal |
set pfs enable | set pfs enable | ||
- | set dhgrp 5 | + | set dhgrp 5 14 19 |
set replay enable | set replay enable | ||
set auto-negotiate enable | set auto-negotiate enable | ||
Line 53: | Line 55: | ||
config firewall policy | config firewall policy | ||
edit 1 | edit 1 | ||
- | set srcintf "tun-CC" | + | set srcintf "branch_LAN" |
set dstintf " | set dstintf " | ||
set srcaddr " | set srcaddr " | ||
Line 63: | Line 65: | ||
edit 2 | edit 2 | ||
set srcintf " | set srcintf " | ||
- | set dstintf "tun-CC" | + | set dstintf "branch_LAN" |
set srcaddr " | set srcaddr " | ||
set dstaddr " | set dstaddr " | ||
Line 75: | Line 77: | ||
Normalement un tunnel monte quand il y a du trafic dedans. Pour forcer son établissement, | Normalement un tunnel monte quand il y a du trafic dedans. Pour forcer son établissement, | ||
<code bash> | <code bash> | ||
- | diagnose vpn tunnel up tun-CC-p2 | + | diagnose vpn tunnel up branch_LAN-p2 |
</ | </ | ||
ou, en GUI, aller dans le menu "VPN > Monitoring > IPSec Monitor" | ou, en GUI, aller dans le menu "VPN > Monitoring > IPSec Monitor" | ||
+ | |||
+ | <WRAP center round important 80%> | ||
+ | Il est fortement recommandé d' | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Négociation des protocoles===== | ||
+ | |||
+ | Les protocoles de chiffrement et de hachage, configurés sur chaque équipement d' | ||
+ | |||
+ | L' | ||
+ | |||
=====Vérifications===== | =====Vérifications===== | ||
Line 95: | Line 109: | ||
get vpn ipsec tunnel summary | get vpn ipsec tunnel summary | ||
- | # 2 commande | + | # afficher les drivers de chiffrement utilisés |
+ | diagnose vpn ipsec driver | ||
+ | # afficher la répartition du traitement IPSec sur les CPUs | ||
+ | diagnose vpn ipsec cpu | ||
+ | |||
+ | # 2 commandes | ||
# de chiffrement par mode de traitement (software-CPU / hardware-NPU (offloading)) | # de chiffrement par mode de traitement (software-CPU / hardware-NPU (offloading)) | ||
get vpn ipsec stats crypto | get vpn ipsec stats crypto | ||
Line 114: | Line 133: | ||
diagnose vpn ike errors | diagnose vpn ike errors | ||
+ | </ | ||
+ | |||
+ | ====Exemple de vérifications==== | ||
+ | |||
+ | <code bash> | ||
+ | FORTI (wan) # get vpn ipsec tunnel name tun-marseille | ||
+ | gateway | ||
+ | name: ' | ||
+ | local-gateway: | ||
+ | remote-gateway: | ||
+ | status: up | ||
+ | mode: ike-v2 | ||
+ | interface: ' | ||
+ | rx packets: 643073 | ||
+ | tx packets: 2350605 | ||
+ | dpd: on-idle/ | ||
+ | selectors | ||
+ | name: ' | ||
+ | auto-negotiate: | ||
+ | mode: tunnel | ||
+ | src: 0: | ||
+ | dst: 0: | ||
+ | SA | ||
+ | lifetime/ | ||
+ | mtu: 1934 | ||
+ | tx-esp-seq: 8822 | ||
+ | replay: disabled | ||
+ | qat: 0 | ||
+ | inbound | ||
+ | spi: b00d1e95 | ||
+ | enc: aes-cb | ||
+ | auth: sha256 | ||
+ | outbound | ||
+ | spi: 9bbfbba3 | ||
+ | enc: aes-cb | ||
+ | auth: sha256 | ||
+ | NPU acceleration: | ||
+ | </ | ||
+ | Cela affiche les infos sur le tunnel établi " | ||
+ | * les IPs source/ | ||
+ | * les compteurs de tunnel | ||
+ | * le mode IKE (v2) | ||
+ | * la MTU du tunnel | ||
+ | * les security associations (SA), une par sens, utilisant l' | ||
+ | |||
+ | <code bash> | ||
+ | FORTI (wan) # diagnose vpn tunnel list name tun-marseille | ||
+ | list ipsec tunnel by names in vd 0 | ||
+ | ------------------------------------------------------ | ||
+ | name=tun-marseille ver=2 serial=11 10.31.0.73: | ||
+ | bound_if=78 real_if=78 lgwy=static/ | ||
+ | |||
+ | proxyid_num=1 child_num=0 refcnt=5 ilast=0 olast=1 ad=/0 | ||
+ | stat: rxp=644097 txp=2354856 rxb=67086822 txb=207606200 | ||
+ | dpd: mode=on-idle on=1 status=ok idle=5000ms retry=3 count=0 seqno=4 | ||
+ | natt: mode=none draft=0 interval=0 remote_port=0 | ||
+ | fec: egress=0 ingress=0 | ||
+ | proxyid=tun-marseille proto=0 sa=1 ref=19 serial=1 | ||
+ | src: 0: | ||
+ | dst: 0: | ||
+ | SA: ref=6 options=10225 type=00 soft=0 mtu=1934 expire=3033/ | ||
+ | | ||
+ | life: type=01 bytes=0/0 timeout=28503/ | ||
+ | dec: spi=b00d1e95 esp=aes key=32 4c0b83eea72747c991f3b4cc6113729cd69e327e83b8f77f8a625a2220458b04 | ||
+ | | ||
+ | enc: spi=9bbfbba3 esp=aes key=32 5a269cdbeb8d5e26abb3563f989b46ec8f6d803b37e9dcd5b6ac1a252c80b67e | ||
+ | | ||
+ | dec: | ||
+ | npu_flag=03 npu_rgwy=10.31.12.9 npu_lgwy=10.31.0.73 npu_selid=1e dec_npuid=1 enc_npuid=1 | ||
</ | </ | ||
=====Debug/ | =====Debug/ | ||
+ | NB : ne pas oublier qu'un tunnel ne montera __que__ si au moins une règle de sécurité le matche, sur le firewall du Fortigate. Si ce n'est pas le cas, le Fortigate fautif se trahira en affichant : | ||
+ | <code bash> | ||
+ | 2018-12-03 11:29:25 ike 3: | ||
+ | </ | ||
+ | |||
+ | Mise en place du debug | ||
<code bash> | <code bash> | ||
# état du debug | # état du debug | ||
Line 126: | Line 220: | ||
diagnose debug console timestamp en | diagnose debug console timestamp en | ||
diagnose debug application ike -1 | diagnose debug application ike -1 | ||
- | # filtrage en fonction de la remote-gw (l'IP du peer) | ||
diagnose vpn ike log-filter dst-addr4 10.10.10.1 | diagnose vpn ike log-filter dst-addr4 10.10.10.1 | ||
Line 140: | Line 233: | ||
diagnose vpn ike log-filter clear | diagnose vpn ike log-filter clear | ||
</ | </ | ||
+ | |||
+ | Exemple d'un affichage de debug : | ||
+ | <code bash> | ||
+ | #Phase1: AES128/ | ||
+ | [...] | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | |||
+ | #Phase2 AES256/ | ||
+ | [...] | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | 2025-01-09 11: | ||
+ | </ | ||
+ | |||
+ | Interprétation de mots-clés issus du debug: | ||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | Codes des versions d' | ||
+ | * AES: en P1: **AES_CBC, key-len=x** ; en P2: **ESP_AES_CBC (key_len = x)** | ||
+ | * SHAx: SHA si SHA1 ; sinon SHA2_256, SHA2_384 ou SHA2_512 | ||
+ | * Diffie-Hellman (DH) groups : | ||
+ | * 5: MODP1536 | ||
+ | * 14: MODP2048 | ||
+ | * 15: MODP3072 | ||
+ | * 19: ECP256 | ||
+ | * 20: ECP384 | ||
+ | * 21: ECP521 | ||
Supprimer une SA : | Supprimer une SA : | ||
<code bash> | <code bash> | ||
- | diagnose vpn tunnel flush tun-CT-extra | + | diagnose vpn tunnel flush tun-marseille |
</ | </ | ||
Line 182: | Line 318: | ||
set local-gw IP4 | set local-gw IP4 | ||
next | next | ||
+ | </ | ||
+ | |||
+ | ====Supprimer les logs " | ||
+ | |||
+ | Le FortiAnalyzer utiliser les messages '' | ||
+ | <code bash> | ||
+ | config system settings | ||
+ | set vpn-stats-log l2tp | ||
+ | set vpn-stats-period 86400 | ||
+ | end | ||
</ | </ |
informatique/fortinet/vpn.1472638073.txt.gz · Last modified: 2016/08/31 10:07 by pteu