informatique:fortinet:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:fortinet:start [2023/09/11 14:18] – [Config de base] NTP, timezone pteu | informatique:fortinet:start [2025/02/10 08:58] (current) – [Reset factory] restauration pteu | ||
---|---|---|---|
Line 18: | Line 18: | ||
# récupérer la charge du système et son uptime | # récupérer la charge du système et son uptime | ||
- | get system performance status | + | (global) |
# affiche les informations des processus les plus consommateurs en CPU/mem | # affiche les informations des processus les plus consommateurs en CPU/mem | ||
Line 184: | Line 184: | ||
set mtu-override enable | set mtu-override enable | ||
set mtu 9000 | set mtu 9000 | ||
+ | next | ||
+ | # modifier la TCP MSS (doit être = MTU - 40 (20 d' | ||
+ | config system interface | ||
+ | edit " | ||
+ | set tcp-mss 8960 | ||
+ | next | ||
+ | </ | ||
+ | <WRAP center round tip 80%> | ||
+ | Rappel: la MTU IP est de 1500 octets par défaut. Pour la vérifier entre 2 machines, il faut lancer un PING en interdisant la fragmentation (bit " | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | # Sous Linux: | ||
+ | ping -M do -s 1473 10.10.10.10 | ||
+ | > ping: local error: Message too long, mtu=1500 | ||
+ | # Sous Windows: | ||
+ | ping -f -l 1473 | ||
+ | > Le paquet doit être fragmenté mais paramétré DF. | ||
+ | # Sous FortiOS : | ||
+ | execute ping-options df-bit yes | ||
+ | execute ping-options data-size 1473 | ||
+ | execute ping 10.10.10.10 | ||
+ | > sendto failed | ||
</ | </ | ||
+ | //A noter que les erreurs affichées ci-dessus sont locales car détectées directement par ma machine cliente, dans la mesure ou l'on dépasse sa propre MTU. En général ce test est réalisé pour détecter la MTU sur le réseau entre 2 machines distantes quand on suspecte une MTU réduite (< 1500).// | ||
Afficher les caractéristiques des modules GBIC/SFP* connectés et reconnus : | Afficher les caractéristiques des modules GBIC/SFP* connectés et reconnus : | ||
Line 525: | Line 549: | ||
</ | </ | ||
- | =====Sauvegarde===== | + | =====Enregistrement de la configuration===== |
- | Il existe 3 modes de sauvegarde | + | Il existe 3 modes d' |
* '' | * '' | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
<code bash> | <code bash> | ||
config global | config global | ||
| | ||
- | set cfg-save revert | + | set cfg-save revert |
- | set cfg-revert-timeout 300 | + | set cfg-revert-timeout 300 |
end | end | ||
</ | </ | ||
- | <WRAP center round important | + | <WRAP center round important |
- | il faut bien penser à désactiver le mode revert après la maintenance sinon il redémarrera à chaque modif (et ne la prendra pas en compte) ! | + | //Ça va sans dire, mais ça va mieux en le disant// : il faut bien désactiver le mode revert après la maintenance sinon le firewall |
</ | </ | ||
+ | =====Sauvegarde de la configuration===== | ||
+ | |||
+ | Les fortis peuvent __sauvegarder__ leur configuration (l' | ||
+ | <code bash> | ||
+ | config global | ||
+ | config system global | ||
+ | set revision-backup-on-logout | ||
+ | set revision-image-auto-backup enable # sauvegarde lors d'une mise à jour | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | </ | ||
+ | On retrouvera toutes les versions dans la webUI en cliquant sur l’icône en haut à droite : < | ||
======Routage====== | ======Routage====== | ||
Line 710: | Line 747: | ||
====Agrégation de routes==== | ====Agrégation de routes==== | ||
- | Pour simplifier les tables de routage, on peut agréger les routes sur les ABR (Area Border Router) ou les routeurs | + | Pour simplifier les tables de routage, on peut agréger les routes sur les ABR (Area Border Router) ou les ASBR (Autonomous System Border Router). Cela consiste, sur ledit routeur, à fusionner plusieurs annonces en une seule, de préfixe plus court (par exemple 10.0.0.0/24 et 10.0.1.0/24 => 10.0.0.0**/ |
- | L' | + | L' |
* sur un ABR, pour agréger des routes apprises de l'aire 1 (c'est un exemple) : | * sur un ABR, pour agréger des routes apprises de l'aire 1 (c'est un exemple) : | ||
<code bash> | <code bash> | ||
config router ospf | config router ospf | ||
- | | + | |
- | edit 0.0.0.1 | + | edit 0.0.0.1 |
- | config range | + | config range |
- | edit 1 | + | edit 0 |
- | set prefix 10.0.0.0 255.255.254.0 | + | set prefix 10.0.0.0 255.255.254.0 |
- | end | + | |
end | end | ||
+ | end | ||
end | end | ||
</ | </ | ||
- | * sur un ASBR, pour agréger des routes | + | * sur un ASBR, pour agréger des routes redistribuées |
<code bash> | <code bash> | ||
config router ospf | config router ospf | ||
- | | + | |
- | edit 1 | + | edit 0 |
- | set prefix 10.0.0.0 255.255.254.0 | + | set prefix 10.0.0.0 255.255.254.0 |
- | end | + | end |
end | end | ||
</ | </ | ||
- | Ces routes sont visibles dans la table de routage sous la forme : | + | Ces routes sont visibles dans la table de routage |
<code bash> | <code bash> | ||
get router info routing-table ospf | get router info routing-table ospf | ||
Line 743: | Line 780: | ||
</ | </ | ||
- | source | + | On voit les réseaux dans la database |
+ | <code bash> | ||
+ | get router info ospf database brief | ||
+ | [..] | ||
+ | Summary Link States (Area 0.0.0.0) | ||
+ | |||
+ | Link ID ADV Router | ||
+ | 10.0.0.0 | ||
+ | [..] | ||
+ | |||
+ | |||
+ | get router info ospf database summary lsa 10.0.0.0 | ||
+ | [..] | ||
+ | Summary Link States (Area 0.0.0.0) | ||
+ | |||
+ | LS age: 309 | ||
+ | Options: 0x2 (*|-|-|-|-|-|E|-) | ||
+ | LS Type: summary-LSA | ||
+ | Link State ID: 10.0.0.0 (summary Network Number) | ||
+ | Advertising Router: 10.0.10.1 | ||
+ | LS Seq Number: 800002df | ||
+ | Checksum: 0x60e2 | ||
+ | Length: 28 | ||
+ | Network Mask: /23 | ||
+ | TOS: 0 Metric: 11 | ||
+ | </ | ||
+ | |||
+ | sources : | ||
+ | * [[http:// | ||
+ | * https:// | ||
====Redistribution de route==== | ====Redistribution de route==== | ||
Line 789: | Line 855: | ||
end | end | ||
</ | </ | ||
+ | |||
+ | ====Tips==== | ||
+ | |||
+ | ===MTU mismatch=== | ||
+ | |||
+ | A partir d'une certaine version de fortiOS (v6 peut-être ?), l’algorithme de calcul des MTUs des tunnels IPSec a changé et ne tombe plus sur les mêmes valeurs que les précédentes versions. De ce fait un upgrade ou l' | ||
+ | <code bash> | ||
+ | config router ospf | ||
+ | config ospf-interface | ||
+ | edit interf_X | ||
+ | set mtu-ignore enable | ||
+ | end | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | Il est aussi possible de forcer la MTU sur l' | ||
+ | <code bash> | ||
+ | config router ospf | ||
+ | config ospf-interface | ||
+ | edit interf_X | ||
+ | set mtu 2000 | ||
+ | end | ||
+ | end | ||
+ | </ | ||
+ | Ref : [[https:// | ||
=====BGP===== | =====BGP===== | ||
Line 1123: | Line 1214: | ||
</ | </ | ||
- | Normalement l'IP de management du master devient l'IP virtuelle d' | + | Normalement l'IP de management du master devient l'IP virtuelle d' |
<code bash> | <code bash> | ||
- | # se connecter sur le membre d'id=1 du HA à partir du master | + | # se connecter sur le membre d'id=1 du HA à partir du master |
- | execute ha manage 1 | + | execute ha manage 1 < |
</ | </ | ||
Line 1151: | Line 1242: | ||
</ | </ | ||
- | ====Vérifications==== | + | ====Diagnostique==== |
+ | Rappel: pour obtenir un prompt sur le membre passif d'un cluster, il faut se connecter en SSH sur le membre actif, puis : | ||
<code bash> | <code bash> | ||
- | # activer/ | + | c g |
+ | execute ha manage <ID> < | ||
+ | # ex: execute ha manage 1 networkadmin | ||
+ | </code> | ||
+ | |||
+ | //à réaliser en mode global si les VDOMs sont activés.// | ||
+ | <code bash> | ||
+ | # état du HA (état de la configuration et status) | ||
+ | get system ha | ||
+ | get system ha status | ||
+ | |||
+ | # sensiblement identique à la commande précédente | ||
+ | diagnose sys ha status | ||
+ | </ | ||
+ | |||
+ | Si désynchro, détermination de la zone non synchro (également visible en GUI en plaçant le curseur sur "Not Synchronized" | ||
+ | <code bash> | ||
+ | # détermination du VDOM (ou global) non synchro | ||
+ | diagnose sys ha checksum cluster | ||
+ | |||
+ | # pour le VDOM non synchro (ex: global), détermination de la portion de conf non synchro | ||
+ | diagnose sys ha checksum show global | ||
+ | [...] | ||
+ | firewall.internet-service-name: | ||
+ | rule.fmwp: 00000000000000000000000000000000 | ||
+ | </ | ||
+ | à comparer avec la conf du membre désynchro; dans mon cas j'ai 2 portions de conf désynchro. | ||
+ | |||
+ | Plus rapidement, si comme dans l' | ||
+ | <code bash> | ||
+ | config system console | ||
+ | set output standard | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | On peut resynchroniser la conf en saisissant manuellement les commandes manquantes sur le bon member ; si cela ne se fait pas tout seul (attendre quelques minutes quand même...), on relance le process de synchro : | ||
+ | < | ||
+ | # désactiver/ | ||
execute ha synchro stop | execute ha synchro stop | ||
execute ha synchro start | execute ha synchro start | ||
- | # reset l'âge des membres d'un cluster (pour palier certains vieux bug..) | + | diagnose sys ha checksum recalculate |
- | diagnose sys ha reset-uptime | + | |
</ | </ | ||
- | Diagnostique | + | Si toujours KO, remonter le cluster from scratch pour resynchroniser le backup sur le primaire (pas de coupure normalement, |
+ | |||
+ | |||
+ | ====Diag avancé / prise de trace==== | ||
<code bash> | <code bash> | ||
- | # état du HA | + | # sur le primaire |
- | get system | + | execute |
- | # informations détaillées | + | diag debug reset |
- | get system | + | diag debug enable |
+ | diag debug console timestamp enable | ||
+ | diag debug application hasync -1 | ||
+ | diag debug application hatalk -1 | ||
+ | execute | ||
- | # cmdes avancées (tshoot) | + | # sur le backup |
- | diagnose sys ha status | + | diag debug reset |
+ | diag debug enable | ||
+ | execute | ||
+ | diag debug console timestamp enable | ||
+ | diag debug application hasync -1 | ||
+ | diag debug application hatalk -1 | ||
+ | execute ha synchronize start | ||
+ | </ | ||
+ | A la fin du process (10m), désactiver le debug : | ||
+ | <code bash> | ||
+ | diag debug disable | ||
+ | diag debug reset | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | # diag avancé | ||
diagnose sys ha dump 1 | diagnose sys ha dump 1 | ||
diagnose sys ha dump 2 | diagnose sys ha dump 2 | ||
Line 1179: | Line 1329: | ||
diagnose sys ha showcsum 2 | diagnose sys ha showcsum 2 | ||
diagnose sys ha showcsum 3 | diagnose sys ha showcsum 3 | ||
+ | |||
+ | # relancer le HA " | ||
+ | fnsysctl killall hasync | ||
+ | fnsysctl killall hatalk | ||
</ | </ | ||
+ | Liens : | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
======Log / Syslog====== | ======Log / Syslog====== | ||
Line 1211: | Line 1369: | ||
# filtrer sur une certaine catégorie | # filtrer sur une certaine catégorie | ||
execute log filter category event | execute log filter category event | ||
+ | |||
# on peut aussi filtrer sur le contenu du message de log : | # on peut aussi filtrer sur le contenu du message de log : | ||
execute log filter field msg Heartbeat | execute log filter field msg Heartbeat | ||
+ | |||
# défini le nb de ligne affichées | # défini le nb de ligne affichées | ||
execute log filter view-lines 50 | execute log filter view-lines 50 | ||
+ | |||
# en fonction de la date | # en fonction de la date | ||
execute log filter field date 2014-05-06 2014-05-07 | execute log filter field date 2014-05-06 2014-05-07 | ||
+ | |||
# voir les filtres | # voir les filtres | ||
execute log filter dump | execute log filter dump | ||
+ | category: traffic | ||
+ | device: memory | ||
+ | start-line: 11 | ||
+ | view-lines: 10 | ||
+ | max-checklines: | ||
+ | HA member: | ||
+ | log search mode: on-demand | ||
+ | pre-fetch-pages: | ||
+ | Oftp search string: | ||
# afficher les logs : | # afficher les logs : | ||
Line 1285: | Line 1456: | ||
</ | </ | ||
+ | =====Docs===== | ||
+ | * [[https:// | ||
======Mail d' | ======Mail d' | ||
Line 1622: | Line 1795: | ||
diagnose debug app hatalk 255 | diagnose debug app hatalk 255 | ||
+ | |||
+ | # Afficher les paquets fragmentés seulement (MF=1 ou avec un offset de fragmentation, | ||
+ | diagnose sniffer packet any ' | ||
# Afficher les paquets ICMP de type 3 code 4 | # Afficher les paquets ICMP de type 3 code 4 | ||
- | # (fragmentation nécessaire mais impossible à cause du drapeau (flag) DF) | + | # (fragmentation nécessaire |
diagnose sniffer packet any ' | diagnose sniffer packet any ' | ||
# alternative : | # alternative : | ||
diagnose sniffer packet any ' | diagnose sniffer packet any ' | ||
</ | </ | ||
- | |||
=====Packet capture===== | =====Packet capture===== | ||
Line 1646: | Line 1821: | ||
=====iperf===== | =====iperf===== | ||
- | Les fortigates | + | Les Fortigates |
<code bash> | <code bash> | ||
conf global | conf global | ||
Line 1659: | Line 1834: | ||
diagnose traffictest run | diagnose traffictest run | ||
</ | </ | ||
- | Malheureusement il n'est pas possible de l' | ||
La plupart des options classiques d' | La plupart des options classiques d' | ||
+ | |||
+ | Depuis les versions 7.0 et 7.2, on peut configurer un Fortigate également en mode serveur : | ||
+ | <code bash> | ||
+ | # activer la fonction en mode global | ||
+ | config system global | ||
+ | set speedtest-server enable | ||
+ | end | ||
+ | # sur l' | ||
+ | config system interface | ||
+ | edit wan1 | ||
+ | append allowaccess speed-test | ||
+ | next | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | Par sécurité il n'est pas recommandé de laisser activé le mode serveur au-delà des tests de qualif/ | ||
+ | |||
Line 1924: | Line 2115: | ||
.1.3.6.1.4.1.12356.101.13.2.1.1.10 fnHaStatsAvCount | .1.3.6.1.4.1.12356.101.13.2.1.1.10 fnHaStatsAvCount | ||
.1.3.6.1.4.1.12356.101.13.2.1.1.11 fnHaStatsHostname | .1.3.6.1.4.1.12356.101.13.2.1.1.11 fnHaStatsHostname | ||
+ | # IPSec tunnels names, counters and status | ||
+ | .1.3.6.1.4.1.12356.101.12.2.2.1.2 fgVpnTunEntPhase1Name | ||
+ | .1.3.6.1.4.1.12356.101.12.2.2.1.3 fgVpnTunEntPhase2Name | ||
+ | .1.3.6.1.4.1.12356.101.12.2.2.1.18 fgVpnTunEntInOctets | ||
+ | .1.3.6.1.4.1.12356.101.12.2.2.1.19 fgVpnTunEntOutOctets | ||
+ | .1.3.6.1.4.1.12356.101.12.2.2.1.20 fgVpnTunEntStatus (1=down ; 2=up) | ||
</ | </ | ||
Line 1929: | Line 2126: | ||
* http:// | * http:// | ||
* http:// | * http:// | ||
+ | * [[https:// | ||
Line 1945: | Line 2143: | ||
=====Reset factory===== | =====Reset factory===== | ||
+ | Pour effectuer un restauration d' | ||
<code bash> | <code bash> | ||
execute factoryreset | execute factoryreset |
informatique/fortinet/start.1694441909.txt.gz · Last modified: 2023/09/11 14:18 by pteu