FORTIGATE - Useful CLI commands : Différence entre versions
De PedroWiki
(→Indentify tunnel and filter list) |
(→IPsec tunnel establishment diagnostic) |
||
(6 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
This article will gather some useful CLI commands for Fortigate firewalls configuration and diagnostic. | This article will gather some useful CLI commands for Fortigate firewalls configuration and diagnostic. | ||
+ | |||
+ | = Useful Resources = | ||
+ | |||
+ | * [https://www.youtube.com/watch?v=Tf8FEsq_qNc Tutorial for DHCP relay over an IPSec tunnel]. | ||
= Toolbox = | = Toolbox = | ||
Ligne 15 : | Ligne 19 : | ||
# config <menu> <submenu> | # config <menu> <submenu> | ||
<submenu># show | <submenu># show | ||
+ | |||
+ | To see even default options: | ||
+ | |||
+ | # show fu | ||
+ | |||
+ | (for full-configuration) | ||
== List device interfaces == | == List device interfaces == | ||
Ligne 23 : | Ligne 33 : | ||
See [https://github.com/yuriskinfo/cheat-sheets/blob/master/cheat-sheets/Fortigate-debug-diagnose-complete-cheat-sheet.adoc this debug cheatsheet]. | See [https://github.com/yuriskinfo/cheat-sheets/blob/master/cheat-sheets/Fortigate-debug-diagnose-complete-cheat-sheet.adoc this debug cheatsheet]. | ||
+ | |||
+ | Or [https://community.fortinet.com/t5/FortiGate/Troubleshooting-Tip-IPsec-VPNs-tunnels/ta-p/195955 this one from Fortinet Community]. | ||
+ | |||
+ | # diag vpn tunnel list name <name_of_tunnel> | ||
=== IPsec tunnel establishment diagnostic === | === IPsec tunnel establishment diagnostic === | ||
+ | |||
+ | ==== Phase1 ==== | ||
# diag debug application ike -1 | # diag debug application ike -1 | ||
+ | # diag vpn ike log-filter name <name_of_a_IPSec_tunnel> | ||
+ | |||
+ | or | ||
+ | |||
+ | # diag vpn ike log-filter dst-addr4 <remote_IP> | ||
+ | # diag debug app ike 255 | ||
+ | |||
+ | and then | ||
+ | |||
# diag debug enable | # diag debug enable | ||
− | |||
=== Indentify tunnel and filter list === | === Indentify tunnel and filter list === | ||
Ligne 78 : | Ligne 102 : | ||
=== Policy management === | === Policy management === | ||
+ | |||
+ | # show firewall policy | ||
# config firewall policy | # config firewall policy |
Version actuelle datée du 28 février 2024 à 10:24
Sommaire
Introduction
This article will gather some useful CLI commands for Fortigate firewalls configuration and diagnostic.
Useful Resources
Toolbox
Filter
Any command result can be filtered like in a linux shell, using pipe and grep:
# <command> | grep <pattern>
Show a configuration when configuring
# config <menu> <submenu> <submenu># show
To see even default options:
# show fu
(for full-configuration)
List device interfaces
# show system interface
Debug
Or this one from Fortinet Community.
# diag vpn tunnel list name <name_of_tunnel>
IPsec tunnel establishment diagnostic
Phase1
# diag debug application ike -1 # diag vpn ike log-filter name <name_of_a_IPSec_tunnel>
or
# diag vpn ike log-filter dst-addr4 <remote_IP> # diag debug app ike 255
and then
# diag debug enable
Indentify tunnel and filter list
# get vpn ipsec tunnel summary
# diag vpn ike log-filter list
Debug disable
# diag debug disable
Firewalling
Addresses management
# config firewall address # edit "<name_of_object>" # set subnet <ip> <netmask> # next # end
Address groups management
# config firewall addrgrp # edit "<group_name>" # set member "<address_object_1>" ... "<address_object_n>" # set comment "<your_comment>" # next # end
Custom service management
# config firewall service custom # edit "<name_of_custom_service>" # set comment "<your_comment>" # set tcp-portrange <portStart>[-<portEnd>] # next # end
Service group management
# config firewall service group # edit "<service_group_name>" # set member "<member1>" ... "<membern>" # set comment "<your_comment>" # next # end
Policy management
# show firewall policy
# config firewall policy # edit 0 # set srcintf "<name_of_source_itf>" # set dstintf "<name_of_dest_itf>" # set srcaddr "all"|"<address_or_group>" # set dstaddr "<address_or_group>" # set action accept # set schedule "always" # set service "<service_or_servicegroup>" # set utm-status enable # set logtraffic all # set ips-sensor "<ips_configuration_profile>" # set ssl-ssh-profile "<inspection_configuration_profile>" # set nat enable|disable # next # end
Routing
See all routes (whatever the protocol being used)
# get router info routing-table all
NB: you can replace "all" with "bgp" or "static" or "ospf" to list only those routes.
See all BGP neighbors
# get router info bgp neighbors
or
# get router info bgp summary
See advertised routes from a neighbor
# get router info bgp neighbors <neighbor_IP> advertised-routes
See received routes from a neighbor
# get router info bgp neighbors <neighbor_IP> received-routes
Enable soft reconfiguration
# config router bgp # edit "<neighbor_IP>" # set soft-reconfiguration enable # next # end
Disable network-import-check
See this article for information on the use case.
# config router bgp # set network-import-check disable
NB: this is not a best practice, prefer to announce some network (and network ranges) according to existing routes on the device.
Internet Services
Links
- Fortinet Docs Policy with Internet Service.
- Protocol numbers.
- Community article on how to search ISDB using IP.
- Community article on ISDB.
Identify an Internet Service ID
# diagnose internet-service id | grep <name_of_service>
List IPs and ports allowed by an Internet Service
# diagnose internet-service id <ID>
Check in which Internet Service an IP address or subnet is involved
# diagnose internet-service match root <ip> <netmask>
Check if flow for some protocols are opened to some destination IPs
# diagnose internet-service info root <proto> <port> <IP>
Proto:
- 17: UDP
- 6: TCP
Result if found:
Internet Service: <ID and name of the service>
Result if not found:
Can not find Internet Service ID and name. ret=-1