informatique:fortinet:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatique:fortinet:start [2019/04/18 12:20] – [Métrologie/supervision] pteu | informatique:fortinet:start [2022/10/03 13:01] – [Métrologie/supervision] pteu | ||
---|---|---|---|
Line 7: | Line 7: | ||
======Système====== | ======Système====== | ||
- | En sortie d' | + | En sortie d' |
+ | |||
+ | On peut lister toutes les commandes disponibles avec la commande '' | ||
<code bash> | <code bash> | ||
# afficher les informations du système | # afficher les informations du système | ||
get system status | get system status | ||
+ | # d' | ||
+ | get mgmt-data status | ||
- | # récupérer la charge du sytème | + | # récupérer la charge du système |
get system performance status | get system performance status | ||
Line 35: | Line 39: | ||
diagnose sys kill 11 <PID> | diagnose sys kill 11 <PID> | ||
</ | </ | ||
+ | |||
+ | =====Redémarrage===== | ||
Pour redémarrer ou éteindre le système : | Pour redémarrer ou éteindre le système : | ||
Line 42: | Line 48: | ||
</ | </ | ||
- | Ordre de traitement d' | + | Il n'est pas possible de planifier |
+ | <code bash> | ||
+ | config global | ||
+ | config sys global | ||
+ | set daily-restart enable | ||
+ | set restart-time 04:13 | ||
+ | end | ||
+ | </ | ||
+ | Attention, il redémarrera donc tous les jours à 4h13 ! | ||
+ | |||
+ | Autre possibilité : configurer une authentification SSH par clé ([[informatique: | ||
+ | <code bash> | ||
+ | ssh admin@firewall " | ||
+ | > execute reboot | ||
+ | > y" | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Ordre de traitement des paquets===== | ||
<code bash> | <code bash> | ||
Step #1 - Ingress | Step #1 - Ingress | ||
Line 96: | Line 121: | ||
# partitionnement du disque dur (au sens Linux, càd bas niveau) | # partitionnement du disque dur (au sens Linux, càd bas niveau) | ||
diagnose hardware deviceinfo disk | diagnose hardware deviceinfo disk | ||
- | # lister les partitions | + | # lister les partitions (gestion des images de fortiOS) |
diagnose sys flash list | diagnose sys flash list | ||
- | # ensuite on peut configurer l' | ||
- | execute set-next-reboot 1/2 | ||
# info sur les CPU (~ / | # info sur les CPU (~ / | ||
Line 138: | Line 161: | ||
set mtu-override enable | set mtu-override enable | ||
set mtu 9000 | set mtu 9000 | ||
+ | </ | ||
+ | |||
+ | Afficher les caractéristiques des modules GBIC/SFP* connectés et reconnus : | ||
+ | <code bash> | ||
+ | get sys interface transceiver port13 | ||
+ | Interface port13 - SFP/SFP+ | ||
+ | Vendor Name : Intel Corp | ||
+ | Part No. : | ||
+ | Serial No. : | ||
+ | Measurement | ||
+ | ------------ ------------ ------------ ------------ ------------ ------------ ------------ | ||
+ | Temperature | ||
+ | Voltage | ||
+ | Tx Bias (mA) 8.07 13.20 12.60 | ||
+ | Tx Power | ||
+ | Rx Power | ||
+ | ++ : high alarm, + : high warning, - : low warning, -- : low alarm, ? : suspect. | ||
+ | </ | ||
+ | |||
+ | ===Port d' | ||
+ | |||
+ | Cette fonctionnalité, | ||
+ | |||
+ | Il est conseillé de ne pas router de trafic utilisateur par ces interfaces. | ||
+ | < | ||
+ | config system interface | ||
+ | edit " | ||
+ | set dedicated-to management | ||
+ | end | ||
+ | end | ||
</ | </ | ||
Line 162: | Line 215: | ||
attention les paramètres de l' | attention les paramètres de l' | ||
</ | </ | ||
+ | |||
+ | ===Création d'un switch logique=== | ||
+ | |||
+ | Pour créer un bridge (un switch logique) entre plusieurs ports d'un Fortigate : | ||
+ | <code bash> | ||
+ | config system switch-interface | ||
+ | edit mon-switch-soft | ||
+ | set members port1 port2 port3 port4 | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | NB : | ||
+ | * ces interfaces doivent être vierges de toute configuration ; | ||
+ | * certaines fonctionnalités seront limitées sur ces interfaces | ||
+ | * des performances moindres sont également à prévoir | ||
====Accélération hardware (NP)==== | ====Accélération hardware (NP)==== | ||
Line 243: | Line 311: | ||
edit admin | edit admin | ||
set password < | set password < | ||
- | end | + | |
</ | </ | ||
Line 272: | Line 340: | ||
</ | </ | ||
+ | Pour lister les IPs/logins bloqués : dans la GUI, " | ||
+ | <code bash> | ||
+ | diagnose user quarantine list | ||
+ | </ | ||
======Configuration====== | ======Configuration====== | ||
Line 400: | Line 472: | ||
======Routage====== | ======Routage====== | ||
- | Afficher la table de routage courante : | ||
<code bash> | <code bash> | ||
+ | # lister toutes les adresses IP du firewall | ||
+ | diag ip address list | ||
+ | IP=192.168.1.99-> | ||
+ | [..] | ||
+ | |||
+ | # lister les IPs virtuelles : VIPs et NAT-pools | ||
+ | diag firewall iplist list | ||
+ | |||
+ | # Afficher la table de routage : | ||
get router info routing-table details | get router info routing-table details | ||
Line 426: | Line 506: | ||
diagnose ip arp list | diagnose ip arp list | ||
- | # afficher les règle | + | # afficher les règles |
diagnose firewall proute list | diagnose firewall proute list | ||
+ | |||
+ | # afficher le cache de routage | ||
+ | diag ip rtcache list | ||
</ | </ | ||
Line 436: | Line 519: | ||
</ | </ | ||
+ | En webUI on peut voir la table de routage dans le " | ||
+ | |||
+ | {{ : | ||
=====Static===== | =====Static===== | ||
Line 454: | Line 540: | ||
>the " | >the " | ||
source : [[http:// | source : [[http:// | ||
+ | |||
=====OSPF===== | =====OSPF===== | ||
Line 493: | Line 580: | ||
set router-id 10.0.0.15 | set router-id 10.0.0.15 | ||
set passive-interface " | set passive-interface " | ||
+ | # annoncer sa route statique par défaut dans l' | ||
+ | set default-information-originate enable | ||
+ | set default-information-metric-type 1 | ||
end | end | ||
</ | </ | ||
Line 524: | Line 614: | ||
# Debug | # Debug | ||
# | # | ||
+ | #diagnose ip router ospf packet hello enable | ||
diagnose ip router ospf all enable | diagnose ip router ospf all enable | ||
diagnose ip router ospf level info | diagnose ip router ospf level info | ||
+ | diagnose debug cli 0 | ||
+ | diagnose debug console timestamp enable | ||
diagnose debug enable | diagnose debug enable | ||
# nettoyage du debug | # nettoyage du debug | ||
diagnose ip router ospf all disable | diagnose ip router ospf all disable | ||
+ | diagnose debug disable | ||
# redémarrer le processus OSPF | # redémarrer le processus OSPF | ||
Line 605: | Line 699: | ||
# préciser l' | # préciser l' | ||
config router route-map | config router route-map | ||
- | edit " | ||
- | next | ||
edit " | edit " | ||
config rule | config rule | ||
Line 670: | Line 762: | ||
diagnose debug enable | diagnose debug enable | ||
- | # ré-établir l' | ||
- | configure bgp neighbor 10.0.200.92 soft-reset in | ||
# clearer toutes les connexions BGP | # clearer toutes les connexions BGP | ||
execute router clear bgp all | execute router clear bgp all | ||
</ | </ | ||
+ | |||
+ | Article plus détaillé : [[informatique: | ||
=====PBR===== | =====PBR===== | ||
Line 990: | Line 1082: | ||
En webUI, la configuration se réalise dans "Log & Report > Log Config > Log Settings" | En webUI, la configuration se réalise dans "Log & Report > Log Config > Log Settings" | ||
+ | <WRAP center round info 80%> | ||
+ | Apparemment depuis les versions FortiOS 5.6, le log sur les disques SSD n'est plus activé/ | ||
+ | </ | ||
Pour consulter les logs en CLI : | Pour consulter les logs en CLI : | ||
Line 1204: | Line 1299: | ||
</ | </ | ||
+ | =====update via webproxy===== | ||
+ | Pour les Fortigate qui n'ont pas un accès direct à Internet, on peut configurer l' | ||
+ | <code bash> | ||
+ | config system autoupdate tunneling | ||
+ | set status enable | ||
+ | set address " | ||
+ | set port 3128 | ||
+ | end | ||
+ | # éventuellement, | ||
+ | config system fortiguard | ||
+ | set source-ip 10.0.178.1 | ||
+ | end | ||
+ | </ | ||
+ | src: https:// | ||
+ | |||
+ | Si le Fortiguard ne se met pas à jour, on peut diagnostiquer avec : | ||
+ | <code bash> | ||
+ | # depuis le VDOM d' | ||
+ | execute ping update.fortiguard.net | ||
+ | |||
+ | diagnose test update info | ||
+ | |||
+ | diagnose debug enable | ||
+ | diagnose debug application update 255 | ||
+ | execute update-ase | ||
+ | execute update-av | ||
+ | execute update-ips | ||
+ | </ | ||
======Diagnostique et debug====== | ======Diagnostique et debug====== | ||
Line 1216: | Line 1339: | ||
# ~get tech : diagnostique complet à envoyer au support aussi | # ~get tech : diagnostique complet à envoyer au support aussi | ||
diagnose debug report | diagnose debug report | ||
+ | execute tac report | ||
# debugguer une fonction (~un process) | # debugguer une fonction (~un process) | ||
Line 1239: | Line 1363: | ||
diagnose debug enable | diagnose debug enable | ||
</ | </ | ||
+ | |||
+ | En cas d' | ||
=====ping et cie===== | =====ping et cie===== | ||
Line 1275: | Line 1401: | ||
diagnose debug cli 0 | diagnose debug cli 0 | ||
diagnose debug flow show console enable | diagnose debug flow show console enable | ||
+ | # bonus: encore plus verbeux | ||
+ | diagnose debug flow show function-name enable | ||
+ | diagnose debug flow show iprope enable | ||
# filtrer sur une adresse (source, dest) | # filtrer sur une adresse (source, dest) | ||
Line 1289: | Line 1418: | ||
diagnose debug flow trace stop | diagnose debug flow trace stop | ||
diagnose debug disable | diagnose debug disable | ||
- | |||
- | # bonus | ||
- | diagnose debug flow show function-name enable | ||
- | diagnose debug flow show iprope enable | ||
</ | </ | ||
Line 1333: | Line 1458: | ||
=====sniffer packet===== | =====sniffer packet===== | ||
- | C'est une implémentation de tcpdump ; la syntaxe basique est : '' | + | C'est une implémentation de tcpdump ; la syntaxe basique est : '' |
<code bash> | <code bash> | ||
diagnose sniffer packet any '' | diagnose sniffer packet any '' | ||
Line 1349: | Line 1474: | ||
<WRAP center round info 80%> | <WRAP center round info 80%> | ||
- | Il est important de noter que les paquets accélérés par les Network Processors (NP1, 2 etc...) | + | Il est important de noter que les paquets accélérés par les Network Processors (NP1, 2 etc...) |
</ | </ | ||
Line 1388: | Line 1513: | ||
diagnose debug app hatalk 255 | diagnose debug app hatalk 255 | ||
+ | |||
+ | # Afficher les paquets ICMP de type 3 code 4 | ||
+ | # (fragmentation nécessaire mais impossible à cause du drapeau (flag) DF) | ||
+ | diagnose sniffer packet any ' | ||
+ | # alternative : | ||
+ | diagnose sniffer packet any ' | ||
</ | </ | ||
Line 1404: | Line 1535: | ||
</ | </ | ||
+ | =====iperf===== | ||
+ | |||
+ | Les fortigates intègrent un client iperf (accessible à partir du mode global), qui permet de réaliser des tests de débit entre 2 interfaces du même forti, ou avec un serveur externe. | ||
+ | <code bash> | ||
+ | conf global | ||
+ | # test avec un serveur iperf externe | ||
+ | diagnose traffictest client-intf wan1 | ||
+ | diagnose traffictest port 5201 | ||
+ | diagnose traffictest run -c 10.0.1.24 | ||
+ | |||
+ | # test entre l' | ||
+ | diagnose traffictest client-intf wan1 | ||
+ | diagnose traffictest server-intf wan2 | ||
+ | diagnose traffictest run | ||
+ | </ | ||
+ | Malheureusement il n'est pas possible de l' | ||
+ | |||
+ | La plupart des options classiques d' | ||
+ | |||
+ | |||
+ | =====Mécanismes de protection===== | ||
+ | |||
+ | ====Conserve mode==== | ||
+ | |||
+ | Le **conserve mode** est un mécanisme de protection qui est enclenché lorsque le système n'a plus assez de mémoire partagée disponible. Cela a pour conséquence de désactiver l'AV et les changements de configuration, | ||
+ | |||
+ | On peut configurer l' | ||
+ | <code bash> | ||
+ | config system global | ||
+ | set av-failopen {off | pass | one-shot | idledrop} | ||
+ | </ | ||
+ | * off : les sessions ouvertes continent mais les nouvelles sont bloquées ; si une session ouverte nécessite l' | ||
+ | * pass : bypass l' | ||
+ | * one-shot : pareil que " | ||
+ | * idledrop : le forti va chercher a libérer de la mémoire en coupant les sessions du host qui en a le plus d' | ||
+ | |||
+ | ====Session removal==== | ||
+ | |||
+ | Le **session removal** est un mode qui s' | ||
+ | |||
+ | Commandes de debug: | ||
+ | <code bash> | ||
+ | diagnose hardware sysinfo shm | ||
+ | SHM counter: | ||
+ | SHM allocated: | ||
+ | SHM total: | ||
+ | conservemode: | ||
+ | shm last entered: | ||
+ | system last entered: | ||
+ | SHM FS total: | ||
+ | SHM FS free: | ||
+ | SHM FS avail: | ||
+ | SHM FS alloc: | ||
+ | |||
+ | get sys perf stat | grep Memory | ||
+ | Memory states: 86% used # <- raison du conserve mode | ||
+ | |||
+ | diag sys top | ||
+ | |||
+ | diag hardware sysinfo memory | ||
+ | </ | ||
+ | |||
+ | Tuning pour optimiser la mémoire : | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | < | ||
+ | config system global | ||
+ | set tcp-halfclose-timer 60 | ||
+ | set tcp-halfopen-timer 5 | ||
+ | set tcp-timewait-timer 0 | ||
+ | set udp-idle-timer 60 --> default 180 s | ||
+ | ! | ||
+ | config ips global | ||
+ | set socket-size 4 --> default 32 MB | ||
+ | set engine count 2 | ||
+ | ! | ||
+ | config system dns | ||
+ | set dns-cache-limit 300 --> default 1800 s | ||
+ | ! | ||
+ | config system session-ttl | ||
+ | set default 300 --> default 3600 s | ||
+ | </ | ||
======MAJ du firmware====== | ======MAJ du firmware====== | ||
Line 1432: | Line 1645: | ||
execute backup config ftp < | execute backup config ftp < | ||
</ | </ | ||
+ | |||
+ | NB : il n'est (à priori) pas/plus possible, dans les dernières versions de firmware (5.x et +), d' | ||
+ | |||
+ | |||
+ | =====Rollback===== | ||
+ | |||
+ | Si une version de firmware ne fonctionne pas comme prévu, on peut faire un rollback c' | ||
+ | <code bash> | ||
+ | # lister les partitions (gestion des images de fortiOS) | ||
+ | diagnose sys flash list | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Image build at Aug 1 2014 02:49:11 for b0689 | ||
+ | |||
+ | # ensuite on peut configurer l' | ||
+ | execute set-next-reboot secondary | ||
+ | | ||
+ | |||
+ | # rebooter | ||
+ | execute reboot | ||
+ | This operation will reboot the system ! | ||
+ | Do you want to continue? (y/n)y | ||
+ | </ | ||
+ | |||
=====USB auto-install===== | =====USB auto-install===== | ||
Une fonctionnalité intéressante des Fortigate est d' | Une fonctionnalité intéressante des Fortigate est d' | ||
- | * un ficheir | + | * un fichier |
* une image **image.out** il chargera ce firmware au boot | * une image **image.out** il chargera ce firmware au boot | ||
- | Ces noms de fichiers sont configurables en webUI dans " | + | Ces noms de fichiers sont configurables en webUI dans " |
+ | <code bash> | ||
+ | config global | ||
+ | config system auto-install | ||
+ | set auto-install-config enable | ||
+ | set auto-install-image enable | ||
+ | set default-config-file " | ||
+ | set default-image-file " | ||
+ | end | ||
+ | end | ||
+ | </ | ||
+ | La clé doit être formatée en FAT pour être lisible par le Fortigate ; pour le vérifier : | ||
+ | <code bash> | ||
+ | diagnose hardware deviceinfo disk | ||
+ | [..] | ||
+ | Disk USB-7(user-usb) ref: 32 28.8GiB | ||
+ | partition ref: 33 28.8GiB, | ||
+ | execute usb-disk list | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Et, si la conf/ | ||
+ | <code bash> | ||
+ | execute restore image usb < | ||
+ | execute restore config usb < | ||
+ | </ | ||
======Métrologie/ | ======Métrologie/ | ||
Line 1464: | Line 1728: | ||
.1.3.6.1.4.1.12356.101.12.1.1.0 nb de tunnel vpn IPSec up | .1.3.6.1.4.1.12356.101.12.1.1.0 nb de tunnel vpn IPSec up | ||
- | // OIDs v4-v5 | + | // OIDs v4-5-6 |
# system .1.3.6.1.2.1.1.1.0 | # system .1.3.6.1.2.1.1.1.0 | ||
.1.3.6.1.4.1.12356.100.1.1.1.0 SN | .1.3.6.1.4.1.12356.100.1.1.1.0 SN | ||
Line 1473: | Line 1737: | ||
.1.3.6.1.4.1.12356.101.4.4.2.1.2.3 % CPU (Core #) 5 min | .1.3.6.1.4.1.12356.101.4.4.2.1.2.3 % CPU (Core #) 5 min | ||
.1.3.6.1.4.1.12356.101.4.1.4.0 memoire (%) ? | .1.3.6.1.4.1.12356.101.4.1.4.0 memoire (%) ? | ||
- | .1.3.6.1.2.1.1.3 uptime | + | .1.3.6.1.2.1.1.1 Description SNMP |
+ | .1.3.6.1.2.1.1.3 sysUpTimeInstance | ||
+ | .1.3.6.1.2.1.1.4 Contact SNMP | ||
+ | .1.3.6.1.2.1.1.5 hostname + local domain name | ||
+ | .1.3.6.1.2.1.1.6 Location SNMP | ||
# sensors | # sensors | ||
.1.3.6.1.4.1.12356.101.4.3.1.0 Hardware Sensor count | .1.3.6.1.4.1.12356.101.4.3.1.0 Hardware Sensor count | ||
Line 1486: | Line 1754: | ||
.1.3.6.1.4.1.12356.101.4.1.13 fgSysSesRate30 | .1.3.6.1.4.1.12356.101.4.1.13 fgSysSesRate30 | ||
.1.3.6.1.4.1.12356.101.4.1.14 fgSysSesRate60 | .1.3.6.1.4.1.12356.101.4.1.14 fgSysSesRate60 | ||
+ | .1.3.6.1.4.1.12356.101.4.1.22.0 uptime | ||
.1.3.6.1.2.1.2.2.1.2 liste des interfaces | .1.3.6.1.2.1.2.2.1.2 liste des interfaces | ||
.1.3.6.1.2.1.2.2.1.10 IF-MIB:: | .1.3.6.1.2.1.2.2.1.10 IF-MIB:: | ||
Line 1650: | Line 1919: | ||
</ | </ | ||
+ | Cela peut également se configurer en webUI dans System > Features Visibility, puis cocher "Allow unnamed policies" | ||
=====Configuration d'une CRL===== | =====Configuration d'une CRL===== | ||
Line 1670: | Line 1940: | ||
execute vpn certificate crl import auto G_CRL_1 | execute vpn certificate crl import auto G_CRL_1 | ||
</ | </ | ||
+ | |||
+ | =====Where used ?===== | ||
+ | |||
+ | Pour pouvoir supprimer un objet (adresse, interface, VDOM, etc...) il faut que toutes ses références, | ||
+ | |||
+ | Par exemple pour supprimer une interface, il faut au préalable supprimer les routes statiques, les tunnels, les objets addresse, etc... qui en font mention. Cela peut se faire en webUI, dans le menu " | ||
+ | {{ : | ||
+ | |||
+ | On peut aussi lister les objets utilisés directement en CLI, avec la (nouvelle) commande : | ||
+ | <code bash> | ||
+ | fgt600e (global) # diagnose sys cmdb refcnt show system.interface: | ||
+ | entry used by table system.interface: | ||
+ | entry used by table system.interface: | ||
+ | </ | ||
+ | |||
+ | Si tout semble propre mais que l' | ||
+ | <code bash> | ||
+ | fgt600e (interface) # delete LAN-centre | ||
+ | Error: IP address 10.41.1.1 is configured as source-ip for communications to NTP server | ||
+ | command_cli_delete: | ||
+ | Command fail. Return code -23 | ||
+ | </ | ||
+ | =====VPN protocols relaying===== | ||
+ | |||
+ | Pour mettre en place un concentrateur VPN on créer une interface virtuelle " | ||
+ | <code bash> | ||
+ | config system interface | ||
+ | edit dialup | ||
+ | # pour le DHCP (dans ce cas, DHCP over IPSec) | ||
+ | set dhcp-relay-service enable | ||
+ | set dhcp-relay-ip " | ||
+ | set dhcp-relay-type ipsec | ||
+ | # pour le NetBIOS | ||
+ | set netbios-forward enable | ||
+ | set wins-ip 10.1.16.253 | ||
+ | next | ||
+ | </ | ||
+ | |||
+ | Pour rappel le DHCP permet la découverte et l' | ||
+ | |||
+ | =====Auto filesystem check===== | ||
+ | |||
+ | Après une coupure électrique les Fortigate affichent un message d' | ||
+ | <code bash> | ||
+ | config system global | ||
+ | set autorun-log-fsck enable | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | C'est toutefois non-recommander car 1) ça prend du temps donc il vaut mieux le planifier en heure non ouvrée et 2) en cas d' | ||
+ | |||
+ | =====SSH sortant impossible===== | ||
+ | |||
+ | Contexte : Utiliser le client SSH de la CLI du Forti pour se connecter sur un autre équipement, | ||
+ | <code bash> | ||
+ | forti (root) # execute ssh admin@10.0.0.1 | ||
+ | Unable to negotiate with 10.0.0.1: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1, | ||
+ | </ | ||
+ | |||
+ | Cela signifie que l’équipement cible propose des paramètres SSH non acceptés par le Forti, et que donc la connexion SSH ne peut s' | ||
+ | |||
+ | Pour modifier les paramètres SSH acceptés par le forti, qui ont été durcis avec certaines versions : | ||
+ | <code bash> | ||
+ | config global | ||
+ | | ||
+ | set strong-crypto disable | ||
+ | append ssh-kex-algo diffie-hellman-group14-sha1 | ||
+ | end | ||
+ | end | ||
+ | </ | ||
+ | Cela permet d' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | NB : tuner ces paramètres impacte les protocoles chiffrés : HTTPS/ | ||
+ | </ | ||
======Liens utiles====== | ======Liens utiles====== | ||
* [[http:// | * [[http:// |
informatique/fortinet/start.txt · Last modified: 2024/08/01 15:38 by pteu