User Tools

Site Tools


informatique:fortinet:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatique:fortinet:start [2020/10/05 11:45] – [Utilisateurs] lister les logins/IPs bloqués pteuinformatique:fortinet:start [2021/03/22 15:18] – [Mécanismes de protection] pteu
Line 7: Line 7:
 ======Système====== ======Système======
  
-En sortie d'usine, le compte **admin** a un mot de passe vide.+En sortie d'usine, le compte **admin** a un mot de passe vide. La configuration du port CONsole est "9600/8-N-1 hardware flow control disabled" ; on peut se connecter aussi au port mgmt(1) qui a son DHCPd (192.168.99.O/24) activé par défaut, mais attention à ne pas le brancher sur le réseau de prod sous peine de préempter les attributions d'IP du DHCPd légitime ! 
 + 
 +On peut lister toutes les commandes disponibles avec la commande ''tree'', et filtrer l'affichage en CLI avec '' | grep'' comme sur un terminal Linux.
  
 <code bash> <code bash>
Line 37: Line 39:
 diagnose sys kill 11 <PID> diagnose sys kill 11 <PID>
 </code> </code>
 +
 +=====Redémarrage=====
  
 Pour redémarrer ou éteindre le système : Pour redémarrer ou éteindre le système :
Line 44: Line 48:
 </code> </code>
  
-Ordre de traitement d'un paquet sur un Fortigate :+Il n'est pas possible de planifier un redémarrage automatique ! La seule possibilité est de programmer un reboot quotidien : 
 +<code bash> 
 +config global 
 +  config sys global 
 +    set daily-restart enable 
 +    set restart-time 04:13 
 +  end 
 +</code> 
 +Attention, il redémarrera donc tous les jours à 4h13 ! 
 + 
 +Autre possibilité : configurer une authentification SSH par clé ([[informatique:fortinet:start#sauvegarde_en_scp|comme indiqué ici]]) puis ajouter une tâche at ou cron qui fait : 
 +<code bash> 
 +ssh admin@firewall "config global 
 +> execute reboot 
 +> y" 
 +</code> 
 + 
 + 
 +=====Ordre de traitement des paquets===== 
 <code bash> <code bash>
 Step #1 - Ingress Step #1 - Ingress
Line 449: 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->192.168.1.99/255.255.255.0 index=4 devname=mgmt1
 +[..]
 +
 +# 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 506: Line 537:
 >the "priority" parameter is used in situation where a static route needs to be present in order to accept incoming traffic and pass the RPF check (anti-spoofing). >the "priority" parameter is used in situation where a static route needs to be present in order to accept incoming traffic and pass the RPF check (anti-spoofing).
 source : [[http://kb.fortinet.com/kb/viewContent.do?externalId=FD32103|Routing behavior depending on distance and priority for static routes, and Policy Based Routes]] chez kb.fortinet.com source : [[http://kb.fortinet.com/kb/viewContent.do?externalId=FD32103|Routing behavior depending on distance and priority for static routes, and Policy Based Routes]] chez kb.fortinet.com
 +
 =====OSPF===== =====OSPF=====
  
Line 1259: Line 1291:
 </code> </code>
  
 +=====update via webproxy=====
  
 +Pour les Fortigate qui n'ont pas un accès direct à Internet, on peut configurer l'usage d'un proxy web :
 +<code bash>
 +config system autoupdate tunneling
 +    set status enable
 +    set address "10.0.178.10"
 +    set port 3128
 +end
 +# éventuellement, spécifier l'IP source à utiliser pour cela :
 +config system fortiguard
 +    set source-ip 10.0.178.1
 +end
 +</code>
 +src: https://kb.fortinet.com/kb/documentLink.do?externalID=FD36587
 ======Diagnostique et debug====== ======Diagnostique et debug======
  
Line 1271: Line 1317:
 # ~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 1332: Line 1379:
 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 1346: Line 1396:
 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 
 </code> </code>
  
Line 1467: Line 1513:
 </WRAP> </WRAP>
  
 +=====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'interfaces wan1 et wan2 du même forti
 +diagnose traffictest client-intf wan1
 +diagnose traffictest server-intf wan2
 +diagnose traffictest run
 +</code>
 +Malheureusement il n'est pas possible de l'utiliser en mode serveur à partir d'autres clients que celui local.
 +
 +La plupart des options classiques d'iperf sont disponibles, on peut les afficher avec ''diagnose traffictest run -h''
 +
 +
 +=====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, afin de consommer moins de ressources. Il peut être invoqué également si la mémoire libre passe en dessous d'un seuil critique (red threshhold=88% par défaut). Si le seuil extrême est atteint (extrem threshold=95%) le firewall bloque les nouvelles sessions. Ce mécanisme se désactive lorsque l'on passe en dessous du seuil vert (green threshold=82%).
 +
 +On peut configurer l'action à faire avec l'antivirus:
 +<code bash>
 +config system global
 +set av-failopen {off | pass | one-shot | idledrop}
 +</code>
 +  * off : les sessions ouvertes continent mais les nouvelles sont bloquées ; si une session ouverte nécessite l'AV-proxy elle sera bloquée car toute nouvelle allocation de ressource est bloquée
 +  * pass : bypass l'AV-proxy (default)
 +  * one-shot : pareil que "pass" mais l'AV-proxy est définitievement désactivé pour les sessions ouvertes PENDANT le conserve mode.
 +  * idledrop : le forti va chercher a libérer de la mémoire en coupant les sessions du host qui en a le plus d'ouvertes, jusqu'à sortir du conserve mode. C'est utile en cas de malware par ex, mais pas si le forti est à genoux par du trafic légitime.
 +
 +====Session removal====
 +
 +Le **session removal** est un mode qui s'enclenche lorsque le kernel ne peut plus allouer de mémoire il va couper les sessions les plus anciennes. Ce mode plus critique arrive après le passage en conserve mode. Le nombre de sessions coupées est visible dans le paramètre "memory_tension".
 +
 +Commandes de debug:
 +<code bash>
 +diagnose hardware sysinfo shm
 +SHM counter:      9237843
 +SHM allocated:   29618182
 +SHM total:     1337155584
 +conservemode:           2 # <- 0=OK ; 1=conserve mode ; 2=kernel session fail mode
 +shm last entered:     n/a
 +system last entered:  Tue Dec  1 11:48:23 2020
 +SHM FS total:  1368051712
 +SHM FS free:   1337192448
 +SHM FS avail:  1337192448
 +SHM FS alloc:    30859264
 +
 +get sys perf stat
 +
 +diag sys top
 +
 +diag hardware sysinfo memory
 +</code>
 +
 +Tuning pour optimiser la mémoire :
 +  * [[https://www.cyrill-gremaud.ch/fortigate-conserve-mode-investigations/|cyrill-gremaud.ch / Conserve mode investigations]]
 +  * [[https://help.fortinet.com/fos50hlp/52data/Content/FortiOS/fortigate-troubleshooting-52/Common_questions.htm?Highlight=Conserve%20mode#How3|Help Fortinet : How to check CPU and memory resources]]
 +<code>
 +config system global
 +set tcp-halfclose-timer 60   --> default 120 s
 +set tcp-halfopen-timer 5     --> default 10 s
 +set tcp-timewait-timer 0     --> default 1 s
 +set udp-idle-timer 60        --> default 180 s
 +!
 +config ips global
 +set socket-size 4            --> default 32 MB
 +set engine count 2           --> default 0 = infinite
 +!
 +config system dns
 +set dns-cache-limit 300      --> default 1800 s
 +!
 +config system session-ttl
 +set default 300              --> default 3600 s
 +</code>
 ======MAJ du firmware====== ======MAJ du firmware======
  
Line 1815: Line 1942:
       set dhcp-relay-ip "10.1.1.24"       set dhcp-relay-ip "10.1.1.24"
       set dhcp-relay-type ipsec       set dhcp-relay-type ipsec
-      # pour le BetBIOS+      # pour le NetBIOS
       set netbios-forward enable       set netbios-forward enable
       set wins-ip 10.1.16.253       set wins-ip 10.1.16.253
Line 1821: Line 1948:
 </code> </code>
  
-Pour rappel le DHCP permet la découverte et l'attribution des paramètres réseau pour le client VPN (son IP, masque réseau, passerelle, DNS, NTP et serveurs WINs) et le NetBIOS permet de faire passer les flux vers les serveurs WINS. Cela permet par exemple un ersatzt de DNS dynamique car les clients Windows s'annoncent auprès des WINS quand ils se connectent en VPN.+Pour rappel le DHCP permet la découverte et l'attribution des paramètres réseau pour le client VPN (son IP, masque réseau, passerelle, DNS, NTP et serveurs WINs) et le NetBIOS permet de faire passer les flux vers les serveurs WINS. Cela permet par exemple un ersatzt de DNS dynamique car les clients Windows s'annoncent auprès des WINS quand ils se connectent en VPN, ou, dans certains cas, de débloquer le changement de mot de passe sur un domaine.
 ======Liens utiles====== ======Liens utiles======
  
   * [[http://docs-legacy.fortinet.com/cb/html/index.html#page/FOS_Cookbook/Install_advanced/cb_enhance_security.html|Enhancing FortiGate Security (fortinet.com)]]   * [[http://docs-legacy.fortinet.com/cb/html/index.html#page/FOS_Cookbook/Install_advanced/cb_enhance_security.html|Enhancing FortiGate Security (fortinet.com)]]
informatique/fortinet/start.txt · Last modified: 2024/02/28 14:55 by pteu