FortiOS-6.4.0-New Features Guide
FortiOS-6.4.0-New Features Guide
FortiOS-6.4.0-New Features Guide
Version 6.4.0
FORTINET DOCUMENT LIBRARY
https://docs.fortinet.com
FORTINET BLOG
https://blog.fortinet.com
NSE INSTITUTE
https://training.fortinet.com
FORTIGUARD CENTER
https://fortiguard.com/
FEEDBACK
Email: techdoc@fortinet.com
Change Log 6
Security-driven Networking 7
NGFW 7
Log buffer on FortiGates with an SSD disk 7
Route leaking between VRFs 10
WAD and Proxyd SSL logging improvement 12
Support SSL mirroring in proxy mode 17
SSL-based application detection over decrypted traffic in a sandwich topology 20
Consolidated IPv4 and IPv6 policy configuration 20
Allow creation of ISDB objects with regional information 23
Force HA failover for testing and demonstrations 25
IP definitions database merged into the internet service database 28
Security Profiles enhancements 30
AntiVirus uses Extended DB by default 36
Support UTM inspection on asymmetric traffic in FGSP 37
Support UTM inspection on asymmetric traffic on L3 39
Add encryption for L3 on asymmetric traffic in FGSP 41
Use anycast to communicate with FortiGuard servers 42
SD-WAN 44
IBGP and EBGP support in VRF 45
SD-WAN event log subtype 47
SD-WAN logging improvement to identify matched application 51
SD-WAN configuration portability 51
SD-WAN log format improvements 54
SD-WAN monitor on ADVPN shortcuts 59
SD-WAN GUI and monitoring enhancements 60
Enhance ADVPN to support UDP hole punching for spokes behind NAT 65
SD-WAN health check packet enhancement 68
Weighted round robin for IPsec aggregate tunnels 68
Default_DNS performance SLA profile 70
Interface speedtest 71
Support SD-WAN integration with OCVPN 73
Allow FortiClient to join OCVPN 81
Secure access 84
Switch controller - quarantine by redirect 85
Wireless IPv6 support 87
Support for spectrum analysis of FortiAP E models 93
Increase in maximum number of managed FortiAPs 99
VLAN interface templates for FortiSwitch devices 100
Improved FortiSwitch support 104
Even distribution of FortiAP reports 104
View detailed information for individual WiFi connections 107
VLAN probe report 116
FortiAP client load balancing per AP 120
Layer three ACL configurations for Wireless APs 121
2020-04-06 Added Support filtering on AWS autoscaling group for dynamic address objects on page 200
and Support dynamic address objects in real servers under virtual server load balance on page
201.
2020-04-07 Added Allow FortiClient to join OCVPN on page 81, Redesign Fortinet Fabric Connectors and
Fabric setup pages on page 195, Display endpoints in Topology using donut chart on page 198,
and Consolidate Monitor and FortiView pages on page 202 .
2020-04-08 Added Added ability in FortiSwitch to query FortiGuard IoT service for device details on page
130, Redesign Security Rating scorecards on page 193, Using the root FortiGate with disk to
store historic user and device information on page 208, and Support SD-WAN integration with
OCVPN on page 73.
2020-04-13 Added FortiSwitch voice device detection on page 132 and Synchronizing objects across the
Security Fabric on page 208.
This section lists the new features added to FortiOS for security-driven networking:
l NGFW on page 7
l SD-WAN on page 44
l Secure access on page 84
NGFW
FortiGates with an SSD disk have a configurable log buffer. When the connection to FortiAnalyzer is unreachable, the
FortiGate is able to buffer logs on disk if the memory log buffer is full. The logs queued on the disk buffer can be sent
successfully once the connection to FortiAnalyzer is restored.
The number of logs queued on the disk buffer is visible in the Log & Report > Log Settings page:
The queued logs are buffered to the memory first and then disk. Main miglogd handles the disk buffering job, while
miglogd-children handles the memory buffering. Disk buffer statistics only appear under Main miglogd, and
memory buffer statistics only appears under miglogd-children. If the total buffer is full, new logs will overwrite the
old logs.
2. Check the Main miglogd and miglogd-children statistics. The 200 MB disk buffer has been set, and there
are currently no logs buffered in memory or on disk when FortiAnalyzer is reachable:
# diagnose test application miglogd 41 0
cache maximum: 106100940(101MB) objects: 0 used: 0(0MB) allocated: 0(0MB)
VDOM:root
Queue for: global-faz
memory queue:
num:0 size:0(0MB) max:101906636(97MB) logs:0
memory queue:
num:0 size:0(0MB) max:101906636(97MB) logs:0
devid:-1-10-0-1 status:buffering
Total in cache:0 size:0(0MB) max:4MB logs:0
3. Disable the connection between the FortiGate and FortiAnalyzer. For example, delete the FortiGate from the
FortiAnalyzer authorized device list.
Assuming a massive number of logs (~ 300000) are recorded during this downtime, the logs will be queued in the
memory buffer first. If the memory buffer is full, then the remaining logs will be queued on the disk buffer.
4. Check the Main miglogd and miglogd-children statistics again. All 97 MB of the memory buffer is
occupied, and 76 of the 200 MB has been taken from the disk buffer:
# diagnose test application miglogd 41 0
cache maximum: 106100940(101MB) objects: 0 used: 0(0MB) allocated: 0(0MB)
VDOM:root
Queue for: global-faz
memory queue:
num:0 size:0(0MB) max:101906636(97MB) logs:0
memory queue:
num:165718 size:101906500(97MB) max:101906636(97MB) logs:165718
The overall miglogd statistics shows the total cached logs is the sum of the logs buffered in memory and on disk:
# diagnose test application miglogd 6
mem=0, disk=11, alert=0, alarm=0, sys=0, faz=300053, faz-cloud=0, webt=0, fds=0
interface-missed=44
Queues in all miglogds: cur:165718 total-so-far:165718
global log dev statistics:
faz 0: sent=0, failed=0, cached=300053, dropped=0 , relayed=0
Num of REST URLs: 0
interface-missed=44
Queues in all miglogds: cur:4294832957 total-so-far:165726
global log dev statistics:
faz 0: sent=300058, failed=0, cached=0, dropped=0 , relayed=0
Num of REST URLs: 15
memory queue:
num:0 size:0(0MB) max:101906636(97MB) logs:0
memory queue:
num:0 size:0(0MB) max:101906636(97MB) logs:0
This feature provides generic route leaking capabilities between locally defined VRFs (VRF-lite). If VRF leaking is not
configured, VRFs are isolated.
In this example, interface npu0_vlink0 belongs to VRF 10 and is used to leak 1.2.2.2/32 from VRF10 to VRF20, and
interface npu0_vlink1 belongs to VRF 20 and is used to leak 172.28.1.0/24 from VRF20 to VRF10. So, VRF10 can see
172.28.1.0/24, and VRF20 can see 1.2.2.2/32.
1. Configure the prefix list and route map to filter what will be leaked:
config router prefix-list
edit "1"
config rule
edit 1
set prefix 1.2.2.2 255.255.255.255
next
end
next
edit "2"
config rule
edit 1
set prefix 172.28.1.0 255.255.255.0
next
end
next
end
config router route-map
edit "from10"
config rule
edit 1
set match-ip-address "1"
next
end
next
edit "from20"
config rule
edit 1
set match-ip-address "2"
next
end
next
end
2. Configure the VDOM link interfaces for the leaking and routing:
config system interface
edit "npu0_vlink0"
set vdom "root"
set vrf 10
set ip 172.16.201.1 255.255.255.0
set allowaccess ping https ssh snmp http
next
edit "npu0_vlink1"
set vdom "root"
set vrf 20
set ip 172.16.201.2 255.255.255.0
set allowaccess ping https ssh snmp http telnet
next
end
set remote-as 22
set update-source "port3"
next
end
config vrf-leak
edit "10"
config target
edit "20"
set route-map "from10"
set interface "npu0_vlink0"
next
end
next
edit "20"
config target
edit "10"
set route-map "from20"
set interface "npu0_vlink1"
next
end
next
end
end
During deep inspection and certificate inspection, various logs generated from certificate issues now use a consistent
log format. Additional details have also been added to these logs. A new option, ssl-negotiation-log, captures
results of unsupported SSL negotiations.
A new option, set ssl-negotiation-log {enable | disable}, was added to the option set.
config firewall ssl-ssh-profile
edit "deep-inspection"
set ssl-anomalies-log {enable | disable}
set ssl-exemptions-log {enable | disable}
set ssl-negotiation-log {enable | disable}
next
end
FortiGate will generate the ssl anomalies log when traffic triggers ssl certificate anomalies.
In the HTTPS and SMTPS version of the traffic and ssl utm logs:
l The logid and the server certificate CN are the same.
l The msg field in the SSL UTM logs are similar.
In the HTTPS and SMTPS version of the traffic and ssl utm logs:
l The logid and the msg are the same.
l A server certificate CN is added to the log.
FortiGate records the wrong category ID and description in the HTTPS version of the ssl utm
log. This is a known issue.
The logid and msg fields are the same in the HTTPS and IMAPS version of the traffic and ssl utm logs:
SSL mirroring allows the FortiGate to decrypt and mirror traffic to a designated port. Previously, this was supported in
flow mode. Support for proxy mode has been added. A new decrypted traffic mirror profile can be applied to IPv4, IPv6,
and explicit proxy firewall policies. Full SSL inspection must be used in the policy for the traffic mirroring to occur.
1. Go to Policy & Objects and create a new policy, or edit an existing one. This example uses a firewall policy.
2. In the policy settings, ensure the following are configured:
a. The Inspection Mode is set to Proxy-based.
b. The SSL Inspection profile uses Full SSL Inspection (if needed, click the pencil icon next to the dropdown to
view the inspection profile settings).
3. Enable the Decrypted Traffic Mirror toggle. The terms of use will appear in a separate pane.
4. Click Agree.
5. Beside the toggle, click Create to configure a new decrypted traffic mirror and adjust the settings as needed. In this
example, the client is the decryted traffic source and port3 is the interface.
6. Click OK to save the traffic mirror settings.
next
end
THIS IS A LEGALLY BINDING AGREEMENT BETWEEN YOU, THE USER AND ITS ORGANIZATION
("CUSTOMER"), AND FORTINET. BEFORE YOU CONTINUE WITH THE TERMS AND CONDITIONS OF THIS
CONTRACT (THE "FEATURE ENABLEMENT") CAREFULLY READ THE TERMS AND CONDITIONS OF THIS
AGREEMENT. BY ENTERING YES, YOU, AS AN AUTHORIZED REPRESENTATIVE ON BEHALF OF CUSTOMER,
CONSENT TO BE BOUND BY AND BECOME A PARTY TO THIS AGREEMENT ("AGREEMENT") AND YOU REPRESENT
THAT YOU HAVE READ AND UNDERSTAND THIS AGREEMENT AND HAVE HAD SUFFICIENT OPPORTUNITY TO
CONSULT WITH COUNSEL, PRIOR TO AGREEING TO THE TERMS HEREIN AND ENABLING THIS FEATURE. IF
YOU HAVE ANY QUESTIONS OR CONCERNS, OR DESIRE TO SUGGEST ANY MODIFICATIONS TO THIS
AGREEMENT, PLEASE CONTACT YOUR FORTINET SUPPORT REPRESENTATIVE TO BE REFERRED TO FORTINET
LEGAL. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, DO NOT CONTINUE WITH THE
ACCEPTANCE PROCESS. BY ACCEPTING THE TERMS AND CONDITIONS HEREIN, CUSTOMER HEREBY AGREES
THAT:
1. Customer represents and warrants that Customer, not Fortinet, is engaging this
feature.
2. Customer represents and warrants that Customer has provided the requisite notice
(s) and obtained the required consent(s) to utilize this feature.
3. Customer represents and warrants that Customer will only access data as
necessary in a good faith manner to detect malicious traffic and will put in place
processes and controls to ensure this occurs.
4. Customer represents and warrants that Customer has the right to enable and
utilize this feature, and Customer is fully in compliance with all applicable laws in so
doing.
5. Customer shall indemnify Fortinet in full for any of the above certifications
being untrue.
6. Customer shall promptly notify Fortinet Legal in writing of any breach of these
Terms and Conditions and shall indemnify Fortinet in full for any failure by Customer or
any of its employees or representatives to abide in full by the Terms and Conditions above.
7. Customer agrees that these Terms and Conditions shall be governed by the laws of
the State of California, without regards to the choice of laws provisions thereof and
Customer hereby agrees that any dispute related to these Terms and Conditions shall be
resolved in Santa Clara County, California, USA, and Customer hereby consents to personal
jurisdiction in Santa Clara County, California, USA.
When a FortiGate is sandwiched between SSL encryption and decryption devices, the FortiGate can process the
decrypted traffic that passes between those devices. This feature adds support for decrypted traffic in application
control. In some pre-defined signatures, the signature is pre-marked with the require_ssl_di tag. The force-
inclusion-ssl-di-sigs option under application list allows users to control the inspection of dissected
traffic. When this option is enabled, the IPS engine forces the pre-marked SSL-based signatures to be applied to the
decrypted traffic of the respective applications. In the following topology, SSL Proxy 1 handles the client connection and
SSL Proxy 2 handles the server connection, leaving the content unencrypted as traffic passes through the FortiGate.
F-SBID( --vuln_id 15722; --attack_id 42985; --name "Facebook_Chat"; --group im; --protocol tcp; --default_action pass; -
-revision 4446; --app_cat 23; --vendor 3; --technology 1; --behavior 9; --pop 4; --risk 2; --language "Multiple"; --weight 20;
--depend-on 15832; --depend-on 38468; --require_ssl_di "Yes"; --casi 1; --casi 8; --parent 15832; --app_port
"TCP/443"; --severity info; --status hidden; --service http; --flow from_client; --pattern "/pull?"; --context uri; --no_case; --
pattern ".facebook.com"; --context host; --no_case; --tag set,Tag.Facebook.Pull; --tag quiet; --scan-range 10m,all; --
date 20190301; )
All signatures that include the require_ssl_di tag are pre-defined and cannot be customized.
IPv4 and IPv6 policy configuration are consolidated in both NGFW profile-based and NGFW policy-based modes. When
creating a policy, both IPv4 and IPv6 addresses can be added as sources and destinations.
The IP version of the sources and destinations in a policy must match. For example, a policy cannot have only an IPv4
source and an IPv6 destination.
The policy list can be filtered to show policies with IPv4, IPv6, or IPv4 and IPv6 sources and destinations.
When upgrading from FortiOS 6.2.3 to 6.4.0:
l In NGFW profile-based mode, IPv4 and IPv6 policies will all be added to the Firewall Policy list, with IPv6 policies
listed after IPv4 policies. If consolidated policy mode is enabled, consolidated policies will be changed to firewall
policies.
l In NGFW policy-based mode, policies will be changed from consolidated policies to firewall policies in the CLI.
l The config firewall policy6 and config firewall consolidated policy commands, and the
consolidated-firewall-mode variable in the config system settings command, are all removed.
By default, IPv6 options are not visible. See Feature visibility for instructions on making them
visible.
To configure an IPv4 and IPv6 SSL Inspection & Authentication policy in the CLI:
Geographic-based Internet Service Database (ISDB) objects allow users to define a country, region, and city. These
objects can be used in firewall policies for more granular control over the location of the parent ISDB object. ISDB
objects are now referenced in policies by name instead of ID.
c. Click Return.
3. Add the ISDB object to a policy:
a. Go to Policy & Objects > Firewall Policy. Create a new policy or edit an existing policy.
b. For Destination, click Internet Service and select the ISDB object created in step 1.
c. Configure the other settings as needed.
d. Click OK.
HA failover can be forced on an HA master device. The device will stay in a failover state regardless of the conditions.
The only way to remove the failover status is by manually turning it off.
This command should only be used for testing, troubleshooting, and demonstrations.
Do not use it in a production environment.
Syntax
execute ha failover set <custer_id>
execute ha failover unset <custer_id>
Variable Description
<custer_id> The cluster ID is 1 for any cluster that is not is virtual cluster mode, and can be 1
or 2 if virtual cluster mode is enabled.
Example
The IP definitions database (IPDB, previously known as the IRDB) is merged into the internet service database (ISDB,
also known as FFDB). Botnet C&C IP blocking now uses the ISDB as a source.
In the License Information table at System > FortiGuard, Botnet IPs and Internet Service Database Definitions have
the same database version.
When updating object versions in the CLI, Botnet IPs is not listed. Internet-service Database Apps and Internet-service
Database Maps are listed, and show the version for Botnet IPs and Internet Service Database Definitions.
# diagnose autoupdate version
......
In FortiOS 6.4 update debug messages, there is no query for the IBDB object:
6.4.0:
pack_obj[196]-Packing obj=Protocol=3.2|Command=Update|Firmware=FG200E-FW-6.04-1565|Seri-
alNumber=FG200E4Q17900126|UpdateMethod=0|AcceptDelta=1|DataItem=06004000APDB00105-00015.00795-
2003120019*06004000AVDB00201-00075.01892-2003131320*06004000AVDB00701-00075.01892-
2003131320*06004000MMDB00101-00075.01916-2003131321*06004000FLDB00201-00075.01893-
2003131325*06004000DBDB00100-00002.00450-2003131322*06004000NIDS02505-00015.00795-
2003120019*06004000ISDB00105-00000.00000-0101010000*06004000MUDB00103-00002.00581-
2003130417*06004000CIDB00000-00001.00096-
2003131527*06004000IPGO00000030492003122111*00000000FCNI00000-00000.00000-
0000000000*00000000FDNI00000-00000.00000-0000000000*01000000FSCI00100-00000.00000-
0000000000*06004000AVEN02800-00006.00144-2002220146*06004000FLEN06700-00006.00012-
2003110118*06004000FLEN05000-00001.00009-1906061402*06004000FFDB00307-00007.00528-
2003131142*06004000FFDB00407-00007.00528-2003131142*06004000UWDB00100-00002.00709-
2003131105*06004000CRDB00000-00001.00015-1907031016*06004000SFAS00000-00003.00000-
2002130915*06004000MCDB00100-00001.00254-2003091200*02000000FNSD00000-00000.00008-0000000000
6.2.3:
pack_obj[192]-Packing obj=Protocol=3.2|Command=Update|Firmware=FG200E-FW-6.02-1093|Seri-
alNumber=FG200E4Q17904482|UpdateMethod=0|AcceptDelta=1|DataItem=06002000APDB00104-00015.00795-
2003120019*06002000AVDB00201-00075.02861-2003120945*06002000MMDB00101-00075.01920-
2003131421*06002000IBDB00101-00004.00634-2003111709*06002000DBDB00100-00002.00450-
2003131322*06002000NIDS02504-00015.00795-2003120019*06002000ISDB00104-00015.00795-
2003120019*06002000MUDB00103-00002.00581-2003130417*06002000CIDB00000-00001.00097-
2003091749*06002000IPGO00000030492003122111*00000000FCNI00000-00000.00000-
0000000000*00000000FDNI00000-00000.00000-0000000000*01000000FSCI00100-00000.00000-
0000000000*06002000AVEN02800-00006.00144-2002220146*06002000FLEN07300-00005.00203-
2002242346*06002000FLEN05000-00001.00009-1906061402*06002000FFDB00306-00007.00528-
2003131137*06002000FFDB00406-00007.00528-2003131137*06002000UWDB00100-00002.00709-
2003131105*06002000CRDB00000-00001.00015-1907031016*06002000SFAS00000-00002.00033-
1911121935*06002000MCDB00100-0
Command Description
hit Show botnet IP entry hit count data.
list List botnet IP entries.
find <ip> <port> Find botnet IP entries. Enter the IP address, port number, and protocol number to
<protocol> search the entries.
flush Flush botnet IP entry hit count data.
To more clearly show the features specific to proxy-based mode, use the new Feature set option to select Flow-based
or Proxy-based. When you select Flow-based or Proxy-based, only the features for that mode are available.
The following pages have the Feature set option:
l Security Profiles > AntiVirus
l Security Profiles > Web Filter
l Security Profiles > Email Filter
l Security Profiles > Data Leak (CLI only)
l Policy & Objects > Protocol Options
Example of the Feature set option in Security Profiles > AntiVirus:
If you select Proxy-based, a red P icon indicates the proxy-only features. FortiOS.
Upgrade support
Upgrading from 6.2.x to 6.4.0 causes the following changes to security profiles.
Profile was assigned exclusively to flow-base firewall policies in 6.2.x. feature-set = flow
Profile was assigned exclusively to proxy-base firewall policies in 6.2.x. feature-set = proxy
Profile was assigned to both flow-base and proxy-base firewall policies in 6.2.x. feature-set = proxy
Profile was not assigned to any firewall policies in 6.2.x. feature-set = flow
config ftp
set ports 21
set options splice
end
config imap
set ports 143
set options fragmail
end
...
next
end
In flow-based AntiVirus profiles, the scan-mode option is removed. Flow-based AntiVirus profiles use the default hybrid
scanning method to process traffic. Legacy mode is available for diagnostics only.
When upgrading from 6.2.x to 6.4.0, AntiVirus profiles assigned to flow-based firewall policies
only operate in the default hybrid mode regardless of the previous scan-mode setting.
In CLI, scan-mode options are only available for proxy-based AntiVirus profiles. The scan-mode options are not
available for flow-based AntiVirus profiles.
config antivirus profile
edit "new-av-profile"
set comment ''
set replacemsg-group ''
set feature-set proxy
set mobile-malware-db enable
config http
unset options
unset archive-block
unset archive-log
set emulator enable
set outbreak-prevention disabled
end
...
set av-virus-log enable
set av-block-log enable
set extended-log disable
set scan-mode default
next
end
set ?
comment Comment.
replacemsg-group Replacement message group customized for this profile.
feature-set Flow/proxy feature set.
mobile-malware-db Enable/disable using the mobile malware signature database.
av-virus-log Enable/disable AntiVirus logging.
av-block-log Enable/disable logging for AntiVirus file blocking.
extended-log Enable/disable extended logging for antivirus.
scan-mode Choose between default scan mode and legacy scan mode.
Diagnostics
This command does not persist over a reboot. Flow-av hybrid scan is enabled by
default.
To enable hybrid scan for flow-base AV and disable full scan to go back to default:
Starting with this version, FortiGate uses Extended DB as its default AntiVirus DB. The Normal DB option is no longer
supported. For FortiGate models that support Extreme DB, you have the option to choose Extended DB or Extreme DB.
Under config antivirus settings, the default-db parameter has been removed.
FortiGate models that support extreme set database have a new use-extreme-db parameter.
By default, use-extreme-db is disabled so that FortiGate uses its normal and extended set databases. When you
enable use-extreme-db, FortiGate uses the extreme set database.
Upgrade support
On low end models, use-extreme-db is hidden. This example shows the CLI captured on FGT-101E.
FGT_NAT (settings) # show full-configuration
config antivirus settings
set grayware enable
set override-timeout 0
end
On higher end models, use-extreme-db is available. This example shows the CLI captured on FGT-600D.
FGT_NAT (settings) # show full-configuration
config antivirus settings
set use-extreme-db enable
set grayware enable
set override-timeout 0
end
When traffic passes asymmetrically through FGSP peers, UTM inspection can be supported by always forwarding traffic
back to the session owner for processing. The session owner is the FortiGate that receives the first packet of the
session.
In this example, traffic from the internal network first hits FGT_1, but the return traffic is routed to FGT_2.
Consequently, traffic bounces from FGT_2 port1 to FGT_1 port1 using FGT_1’s MAC address. Traffic is then inspected
by FGT_1.
This example requires the following settings:
l Internal and outgoing interfaces of both FortiGates in the FGSP pair are in the same subnet.
l Both peers have layer 2 access with each other.
To configure FTG_1:
To configure FTG_2:
Results
Capture packets on FGT_2 to see that traffic bounced from FGT_2 to FGT_1 over the traffic interface.
FGT_2 # diagnose sniffer packet any 'host 10.1.100.15 and host 172.6.200.55' 4
interfaces=[any]
filters=[host 10.1.100.15 and host 172.16.200.55]
91.803816 port1 in 172.16.200.55.80 -> 10.1.100.15.40008: syn 2572073713 ack 261949279
92.800480 port1 in 172.16.200.55.80 -> 10.1.100.15.40008: syn 2572073713 ack 261949279
92.800486 port1 out 172.16.200.55.80 -> 10.1.100.15.40008: syn 2572073713 ack 261949279
92.800816 port1 in 172.16.200.55.80 -> 10.1.100.15.40008: syn 2572073713 ack 261949279
92.800818 port1 out 172.16.200.55.80 -> 10.1.100.15.40008: syn 2572073713 ack 261949279
When traffic passes asymmetrically through FGSP peers, UTM inspection can be supported by always forwarding traffic
back to the session owner for processing. The session owner is the FortiGate that receives the first packet of the
session.
For networks where L2 connectivity is not available, such as cloud environments, traffic bound for the session owner are
forwarded through the peer interface using a TCP connection.
In this example, traffic from the internal network first hits FGT_1, but the return traffic is routed to FGT_2.
Consequently, return traffic is packed and sent from FGT_2 to FGT_1 using UDP encapsulation between two peer
interfaces (port 3). Traffic is then inspected by FGT_1.
To configure FTG_1:
To configure FTG_2:
In scenarios where asymmetric routing between FGSP members occurs, the return traffic can be routed back to the
session owner in Layer 3 (L3). This L3 traffic can now be encrypted.
Third party certificate verification and OCSP stapling check is implemented for all FortiGuard servers that are connected
to FortiOS. The default FortiGuard access mode is anycast.
FortiGuard represents all cloud based servers, including those for:
Secure DNS
The anycast server has one IP address to match its domain name. The FortiGate connects with a single server address,
regardless of where the FortiGate is located.
Once the SSL handshake is established, the FortiGate can engage the server.
SD-WAN
Support is included for internal and external border gateway protocols (IBGP and EBGP) in virtual routing and forwarding
(VRF).
FortiGate can establish neighbor connections with other FortiGates or routers, and the learned routes are put into
different VRF tables according to the neighbor's settings.
This example uses the following topology:
l BGP routes learned from the Router1 neighbor are put into vrf10.
l BGP routes learned from the Router2 neighbor are put into vrf20.
Results
After VRF is set for BGP, BGP routes are added to the VRF tables along with OSPF and connected routes:
# get router info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default
This feature is also supported in the BGP neighbor groups. For example:
A separate log subtype, SD-WAN , has been added to Event logs. It consists of seven log IDs:
3. Select an entry and click the Details button to view more information about the log.
In SD-WAN rules, users can define destinations based on applications. With this enhancement, the vwlservice field
in the forward traffic log has been updated to include the matched application.
Sample log
1. Go to Log & Report > Forward Traffic. The SD-WAN Internet Service column displays the application.
2. Select a log entry to view the details.
When configuring SD-WAN, adding interfaces to members is optional. This allows a configuration to be copied directly
from one device to another, without requiring the devices to have interfaces with the same names.
After the configuration is pasted to the new device, add the interfaces to the new device to make it fully functional.
Example
config sla
edit "office"
set id 1
next
end
set priority-members 2 1
next
...
end
end
end
end
The member interfaces are not copied over. Already configured interfaces are not unset. The member is disabled
until an interface is configured.
3. Configure the member interfaces on the new spoke:
config system virtual-wan-link
config members
edit 1
set interface "_OCVPN4-0.0"
next
edit 2
set interface "_OCVPN4-0.1"
next
end
end
After the interfaces are configured, the new spoke will function like the other spokes.
The SD-WAN log format has been improved for better reporting and event handler creation on FortiAnalzyer.
Sample logs
The following sample logs identify where the improvements were made to the log format.
Service field
The service field only includes the service name. The service ID was removed from the service field and added to
a new field named serviceid.
Old Format
date=2019-11-05 time=12:11:16 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1569438676644424772 tz="-0700"
logdesc="Virtual WAN Link status" eventtype="Service" service="1(gmail)"
msg="Service prioritized by latency will be redirected in seq-num order 1(lan2) 2
(wan1)"
New format
date=2020-02-04 time=15:24:23 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580858663336645512 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Service" serviceid=1 service="gmail"
metric="latency" seq="2,1" msg="Service prioritized by performance metric will be
redirected in sequence order."
Name field
The name field has been replaced with the more specific healthcheck field to be consistent with other logs and to
reduce confusion.
Old format
date=2019-11-03 time=17:13:28 logid="0113022925" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1569284008246643001 tz="-0700"
logdesc="Virtual WAN Link SLA information" eventtype="SLA" name="test"
interface="lan2" status="down" latency="0.000" jitter="0.000"
packetloss="85.000%" inbandwidth="0kbps" outbandwidth="0kbps" bibandwidth="0kbps"
slamap="0x0" msg="Health Check SLA status. SLA 1 failed due to being over the
packetloss threshold "
New format
date=2020-02-04 time=14:39:08 logid="0113022925" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580855948407682526 tz="-0800"
logdesc="Virtual WAN Link SLA information" eventtype="SLA" healthcheck="ping1"
slatargetid=1 interface="R160" status="up" latency="0.010" jitter="0.000"
packetloss="21.000%" inbandwidth="0kbps" outbandwidth="0kbps" bibandwidth="0kbps"
slamap="0x0" metric="packetloss" msg="Health Check SLA status. SLA failed due to
being over the performance metric threshold."
Old format
date=2019-11-06 time=17:26:12 logid="0113022925" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1569543972762277480 tz="-0700"
logdesc="Virtual WAN Link SLA information" eventtype="Health Check" name="test-1-
VIRTUAL_WAN_LINK-1" interface="lan2" probeproto="ping" oldstate="die"
newstate="alive" msg="SD-WAN health-check member changed state"
New format
date=2020-02-04 time=14:14:42 logid="0113022925" type="event" subtype="sdwan"
level="warning" vd="root" eventtime=1580854483005525076 tz="-0800"
logdesc="Virtual WAN Link SLA information" eventtype="Health Check"
healthcheck="ping1-2-VIRTUAL_WAN_LINK-2" interface="R160" probeproto="ping"
oldvalue="alive" newvalue="die" msg="SD-WAN health-check member changed state."
SLA field
The sla field has been replaced with the more specific slatargetid field.
Old format
date=2019-11-06 time=16:51:05 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1573087865540014616 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Health Check" healthcheck="ping2"
sla="22" oldpassmember="2" newpassmember="1" msg="Number of pass members changed.
Member 2 out-of-sla"
New format
SLA ID
The SLA ID was moved from the msg field and added to the new slatargetid field. The SLA values were also
removed from the msg field. There is now one log for each SLA failure.
Old format
date=2019-12-06 time=10:19:53 logid="0113022925" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1575656393121996604 tz="-0800"
logdesc="Virtual WAN Link SLA information" eventtype="SLA" name="1"
interface="port1" status="up" latency="0.092" jitter="0.006" packetloss="0.000%"
inbandwidth="99.98Mbps" outbandwidth="99.99Mbps" bibandwidth="199.97Mbps"
slamap="0x0" msg="Health Check SLA status. SLA 1 failed due to being over the
latency threshold SLA 2 failed due to being over the jitter threshold"
New format
date=2020-02-05 time=15:56:27 logid="0113022925" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580946987433804652 tz="-0800"
logdesc="Virtual WAN Link SLA information" eventtype="SLA" healthcheck="ping1"
slatargetid=2 interface="R160" status="up" latency="3.012" jitter="1.002"
packetloss="43.000%" inbandwidth="0kbps" outbandwidth="0kbps" bibandwidth="0kbps"
slamap="0x0" metric="latency" msg="Health Check SLA status. SLA failed due to
being over the performance metric threshold." date=2020-02-05 time=15:56:27
logid="0113022925" type="event" subtype="sdwan" level="notice" vd="root"
eventtime=1580946987433799366 tz="-0800" logdesc="Virtual WAN Link SLA
information" eventtype="SLA" healthcheck="ping1" slatargetid=1 interface="R160"
status="up" latency="3.012" jitter="1.002" packetloss="43.000%"
inbandwidth="0kbps" outbandwidth="0kbps" bibandwidth="0kbps" slamap="0x0"
metric="jitter" msg="Health Check SLA status. SLA failed due to being over the
performance metric threshold."
The old and new value field types have been replaced with the oldvalue and newvalue fields since the field values
are meaningful enough to cover different log types.
Old format
New format
date=2020-02-04 time=17:09:57 logid="0113022927" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580864997042080958 tz="-0800"
logdesc="Virtual WAN Link Neighbor standalone" eventtype="Neighbor"
oldvalue="primary" newvalue="standalone" msg="Selected role is changed."
Old format
date=2019-11-06 time=16:51:05 logid="0113022925" type="event" subtype="sdwan"
level="warning" vd="root" eventtime=1573087865315149386 tz="-0800"
logdesc="Virtual WAN Link SLA information" eventtype="Health Check" name="test2-
2-VIRTUAL_WAN_LINK-2" interface="port15" probeproto="ping" oldstate="alive"
newstate="die" msg="SD-WAN health-check member changed state"
New format
date=2020-02-04 time=14:14:42 logid="0113022925" type="event" subtype="sdwan"
level="warning" vd="root" eventtime=1580854483005525076 tz="-0800"
logdesc="Virtual WAN Link SLA information" eventtype="Health Check"
healthcheck="ping1-2-VIRTUAL_WAN_LINK-2" interface="R160" probeproto="ping"
oldvalue="alive" newvalue="die" msg="SD-WAN health-check member changed state."
Old format
date=2019-11-04 time=17:28:11 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1569371291676959641 tz="-0700"
logdesc="Virtual WAN Link status" eventtype="Health Check" healthcheck="test"
sla="1" oldpassmember="1" newpassmember="0" msg="Number of pass members changed.
Member 2 out-of-sla"
New format
date=2020-02-04 time=17:17:34 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580865454841077461 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Health Check" healthcheck="ping1"
slatargetid=1 oldvalue="2" newvalue="1" msg="Number of pass member changed."
date=2020-02-04 time=17:17:34 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580865454841074245 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Health Check" healthcheck="ping1"
slatargetid=1 member="1" msg="Member status changed. Member out-of-sla."
The latency, jitter, and packet loss network performance metrics were removed from the msg field and moved to a new
field named metric. The cause factor has also been removed from the msg field.
Old format
date=2019-11-05 time=16:22:00 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1572999721054428968 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Service" service="2(rule12)"
msg="Service prioritized by latency will be redirected in seq-num order 2(port15)
1(port13)."
New format
date=2020-02-04 time=15:24:23 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580858663336645512 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Service" serviceid=1 service="gmail"
metric="latency" seq="2,1" msg="Service prioritized by performance metric will be
redirected in sequence order."
Old format
date=2019-11-05 time=12:11:16 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1569438676644407292 tz="-0700"
logdesc="Virtual WAN Link status" eventtype="Service" interface="wan1" member="2"
service="1(gmail)" msg="The member link quality latency order changed from 1 to
2."
New format
date=2020-02-04 time=15:40:48 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580859648553624138 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Service" interface="R160" member="2"
serviceid=1 service="gmail" gateway="10.100.1.5" metric="packet-loss"
oldvalue="1" newvalue="2" msg="The member order changed by performance metric."
Gateway address
The gateway address has been removed from the msg field and added to a new field named gateway.
Old format
date=2019-11-07 time=07:49:58 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1569595798367258194 tz="-0700"
logdesc="Virtual WAN Link status" eventtype="Service" interface="wan1" member="2"
service="2(is)" msg="Member link is available. Start forwarding traffic. Service
will be redirected to interface(wan1) gateway(172.18.45.1)"
New format
date=2020-02-04 time=15:39:04 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580859544464985538 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Service" interface="R160" member="2"
serviceid=2 service="google-isdb" gateway="10.100.1.5" msg="Member link is
available. Start forwarding traffic. "
Seq-num order
The seq-num order was removed from the msg field and added to the new field named seq. The order values were
also removed from the msg field.
Old format
date=2019-11-05 time=16:22:00 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1572999721054428968 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Service" service="2(rule12)"
msg="Service prioritized by latency will be redirected in seq-num order 2(port15)
1(port13)"
New format
date=2020-02-04 time=15:39:04 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580859544464944421 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Service" serviceid=1 service="gmail"
metric="latency" seq="2,1" msg="Service prioritized by performance metric will be
redirected in sequence order."
Member value
The member value was removed from the msg field and added to the member field. There is now one log for each
changed member and another log for how the pass member changed.
Old format
date=2019-12-11 time=14:47:40 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1576104460831070527 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Health Check" healthcheck="test"
sla="22" oldpassmember="2" newpassmember="1" msg="Number of pass members changed.
Member 2 out-of-sla"
New format
date=2020-02-04 time=17:17:34 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580865454841077461 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Health Check" healthcheck="ping1"
slatargetid=1 oldvalue="2" newvalue="1" msg="Number of pass member changed."
date=2020-02-04 time=17:17:34 logid="0113022923" type="event" subtype="sdwan"
level="notice" vd="root" eventtime=1580865454841074245 tz="-0800"
logdesc="Virtual WAN Link status" eventtype="Health Check" healthcheck="ping1"
slatargetid=1 member="1" msg="Member status changed. Member out-of-sla."
SD-WAN can monitor ADVPN shortcuts link quality by dynamically creating link monitors for each ADVPN link. The
dynamic link monitor on the spoke will use ICMP probes and the IP address of the gateway as the monitored server.
These ICMP probes will not be counted as actual user traffic that keeps the spoke-to-spoke tunnel alive.
The SD-WAN pages in the GUI are updated to simplify SD-WAN configuration. New charts and monitoring capabilities
are also added. DNS is now a supported protocol in performance SLA.
SD-WAN interfaces
The SD-WAN interface list shows pie charts at the top of the list, and includes more information about each interface in
the table, such as the number of sessions and the bytes sent and received.
The gateway configuration for an SD-WAN interface that is using DHCP is simplified.
SD-WAN rules
In the SD-WAN rules list, the interface that is currently selected by the rule has a checkmark next to its name in the
Members column. Hover the cursor over the checkmark to open a tooltip that gives the reason why that member is
selected, such as has best measured performance. Even if multiple members are selected, only the highest ranked
member is highlighted, unless the mode is Maximize Bandwidth (SLA) (load-balance).
Hit Count and Last Used columns are also added to the table.
Hover over a member name to open the SD-WAN member tooltip. It includes health check and SLA statistics tables.
When editing an SD-WAN rule, the strategies are listed on cards that include a brief description of that strategy. The
gutter on the right side of the page includes the hit count for the rule, when it was last used, and a table showing
statistics for the currently selected interfaces and SLA targets (depending on the selected strategy).
Performance SLA
SLA targets
When configuring a performance SLA, by default, only one SLA target can be configured. Additional targets can be
created in the CLI, after which they will also be available from the GUI.
DNS protocol
The IPv4 DNS protocol can be selected, and the system DNS servers can be used.
In the Performance SLA table, the Detect Server column will show that the system DNS servers are used.
Participants
When adding a new performance SLA, by default, all SD-WAN members are included as participants.
Routing monitor
Hit Count and Last Used columns are added to the Network > Policy Routes page and Policy Routing widget.
Enhance ADVPN to support UDP hole punching for spokes behind NAT
Previously, spokes behind NAT devices could only create shortcuts if DNAT was used on the NAT devices. This feature
adds UDP hole punching capability, which allows ADVPN shortcuts to be established through a UDP hole on a NAT
device. The NAT device must support RFC 4787 Endpoint-Independent Mapping.
In the following example, device 10.1.100.11 behind Spoke1 needs to reach device 192.168.4.33 behind Spoke2.
Spoke1 and Spoke2 are behind NAT devices and have established IPsec tunnels to the Hub. The hole punching creates
a shortcut between Spoke1 and Spoke2 that bypasses the Hub.
To verify the ADVPN shortcut is established between both spokes behind NAT:
id/spi: 35 3c10fb6a76f1e264/6c7b397100dffc63
direction: initiator
status: established 503-503s ago = 0ms
proposal: aes128-sha256
key: 7fca86063ea2e72f-4efea6f1bec23948
lifetime/rekey: 86400/85596
DPD sent/recv: 00000000/00000000
vd: root/0
name: toHub1_0
version: 1
interface: wan2 6
addr: 12.1.1.2:4500 -> 55.1.1.2:64916
created: 208s ago
nat: me peer
auto-discovery: 2 receiver
IKE SA: created 1/1 established 1/1 time 20/20/20 ms
IPsec SA: created 1/1 established 1/1 time 10/10/10 ms
id/spi: 48 d3fdd1bfbc94caee/16a1eb5b0f37ee23
direction: initiator
status: established 208-208s ago = 20ms
proposal: aes128-sha256
key: 9bcac400d8e14e11-fffde33eaa3a8263
lifetime/rekey: 86400/85891
DPD sent/recv: 0000000a/00000000
SD-WAN health check probe packets now support Differentiated Services Code Point (DSCP) markers for accurate
evaluation of the link performance for high priority applications by upstream devices.
When the SD-WAN health check packet is sent out, the DSCP can be set with a CLI command.
A weighted round robin algorithm can be used for IPsec aggregate tunnels to distribute traffic by the weight of each
member tunnel.
In this example, the FortiGate has two IPsec tunnels put into IPsec aggregate. Traffic is distributed among the
members, with one third over tunnel1, and two thirds over tunnel2. To achieve this, the weighted round robin algorithm
is selected, tunnel1 is assigned a weight of 10, and tunnel2 is assigned a weight of 20.
1. Create the tunnel1 and tunnel2 custom IPsec tunnels. Ensure that Aggregate member is Enabled for each tunnel.
2. Go to VPN > IPsec Tunnels and click Create New > IPsec Aggregate.
3. Enter a name for the aggregate, such as agg1, and ensure that Algorithm is Weighted Round Robin.
4. Add tunnel1 as an aggregate members, and set Weight to 10.
5. Add tunnel2 as a second aggregate members, and set its Weight to 20.
6. Click OK.
7. To view and monitor the aggregate tunnel statistics, go to the IPsec widget on the Network dashboard.
1. Create the tunnel1 and tunnel2 custom IPsec tunnels with aggregate-member enabled and aggregate-weight set
for both tunnels:
config vpn ipsec phase1-interface
edit "tunnel1"
...
set aggregate-member enable
set aggregate-weight 10
...
next
edit "tunnel2"
...
set aggregate-member enable
set aggregate-weight 20
...
next
end
Interface speedtest
An interface speedtest can be performed on WAN interfaces in the GUI. The results of the test can be added to the
interface's Estimated bandwidth. An SD-WAN Network Monitor license is required.
The License widget and the System > FortiGuard page display the SD-WAN Network Monitor license status.
The speedtest results are used to populate the Estimated bandwidth fields.
5. Click OK.
The FortiGate must be connected to FortiGuard, and able to reach either the AWS or Google
speedtest servers.
OCVPN now has the capability to enable SD-WAN in order to dynamically add its tunnel interfaces as SD-WAN
members. Users can configure SD-WAN health checks and service rules to direct traffic over the OCVPN tunnels.
The following example uses a dual hub and spoke topology. Each hub and spoke has two WAN link connections to the
ISP. The spokes generate two IPsec tunnels to each hub (four tunnels in total). BGP neighbors are established over
each tunnel and routes from the hubs and other spokes learned from all neighbors, which forms an ECMP scenario. All
tunnels are placed as SD-WAN members, so traffic can be distributed across tunnels based on the configured SD-WAN
service rules.
The WAN interface is position sensitive, meaning a tunnel will be created with the first
position interface on the hub to the first position interface on the spoke, and so on. In
this example, FGT_A (primary hub) will create two tunnels with FGT_C (spoke):
l FGT_A port15 <==> FGT_C internal1
l FGT_A port16 <==> FGT_C internal2
d. Click Apply.
3. Configure the secondary hub with the same settings as the primary hub.
4. Configure the spoke:
a. Go to VPN > Overlay Controller VPN and set the Status to Enable.
b. For Role, select Spoke.
c. Enter the WAN interfaces (internal1 and internal2).
d. Enable Auto-discovery shortcuts.
e. Enable Add OCVPN tunnels to SD-WAN. The IPsec tunnels will be added automatically to the SD-WAN
members if SD-WAN is enabled.
f. Configure the overlays.
The overlay names on the spokes must match the hub for the traffic to be allowed
through the same overlay.
g. Click Apply.
6. On a spoke, go to Network > SD-WAN Interfaces to view the configuration generated by OCVPN.
Firewall policies will be automatically generated by OCVPN between the local interfaces and the SD-WAN
interface. Each policy will define the proper local and remote networks for its source and destination addresses.
2. Configure the secondary hub with the same settings as the primary hub.
3. Configure the spoke:
config vpn ocvpn
set status enable
set sdwan enable
set wan-interface "internal1" "internal2"
config overlays
edit "overlay1"
config subnets
edit 1
set type interface
set interface "wan2"
next
end
next
edit "overlay2"
config subnets
edit 1
set type interface
set interface "loop1"
next
end
next
end
end
Firewall policies will be automatically generated by OCVPN between the local interfaces and the SD-WAN
interface. Each policy will define the proper local and remote networks for its source and destination addresses.
parent=_OCVPN2-1b index=0
proxyid_num=1 child_num=0 refcnt=15 ilast=0 olast=0 ad=r/2
stat: rxp=641 txp=1025 rxb=16436 txb=16446
dpd: mode=on-idle on=1 idle=20000ms retry=3 count=0 seqno=0
natt: mode=none draft=0 interval=0 remote_port=0
proxyid=_OCVPN2-1b proto=0 sa=1 ref=3 serial=1 auto-negotiate adr
src: 0:0.0.0.0/0.0.0.0:0
dst: 0:0.0.0.0/0.0.0.0:0
SA: ref=6 options=1a227 type=00 soft=0 mtu=1438 expire=42650/0B replaywin=1024
seqno=407 esn=0 replaywin_lastseq=00000280 itn=0 qat=0 hash_search_len=1
life: type=01 bytes=0/0 timeout=43186/43200
dec: spi=90f03d9d esp=aes key=16 6cb33685bbc67d5c85488e0176ecf7b0
ah=sha1 key=20 7d11b3babe62c840bf444b7b1f637b4324722a71
enc: spi=7bc94bda esp=aes key=16 b4d8fc731d411eb24448b4077a5872ca
ah=sha1 key=20 b724064d827304a6d80385ed4914461108b7312f
dec:pkts/bytes=641/16368, enc:pkts/bytes=2053/123426
npu_flag=03 npu_rgwy=172.16.15.4 npu_lgwy=172.16.18.3 npu_selid=1f dec_npuid=1 enc_
npuid=1
------------------------------------------------------
name=_OCVPN2-0a ver=2 serial=18 172.16.17.3:0->172.16.13.1:0 dst_mtu=1500
bound_if=8 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/536 options[0218]=npu create_dev
frag-rfc accept_traffic=1 overlay_id=1
------------------------------------------------------
name=_OCVPN2-0b ver=2 serial=19 172.16.18.3:0->172.16.14.1:0 dst_mtu=1500
bound_if=9 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/536 options[0218]=npu create_dev
frag-rfc accept_traffic=1 overlay_id=2
Administrators can configure remote access for FortiClient within an OCVPN hub. This provides simple configurations to
allow a user group access to an overlay network.
1. On the primary hub, configure the users and user groups required for the FortiClient dialup user authentication and
authorization. In this example, there are two user groups (dev_grp and qa_grp).
2. Go to VPN > Overlay Controller VPN and in the Overlays section, click Create New.
3. Enter a name and the local subnet (174.16.101.0/24 for dev and 22.202.2.0/24 for qa).
4. Enable FortiClient Access.
5. In the Access Rules section, click Create New.
6. Enter a name, and select the authentication groups and overlays.
The authentication groups will be used by the IPsec phase 1 interface for authentication, and by firewall policies for
authorization. The overlay allows access to the resource.
7. Click OK.
8. Create more rules if needed.
9. Click Apply.
vd: root/0
name: _OCVPN_FCT0_0
version: 1
interface: mgmt1 4
addr: 172.16.200.4:4500 -> 172.16.200.15:64916
created: 110s ago
xauth-user: usera
groups:
dev_grp 1
assigned IPv4 address: 10.254.128.1/255.255.255.255
nat: peer
IKE SA: created 1/1 established 1/1 time 20/20/20 ms
IPsec SA: created 1/1 established 1/1 time 0/0/0 ms
id/spi: 72 1ccd2abf2d981123/fd8da107f9e4d312
direction: responder
status: established 110-110s ago = 20ms
proposal: aes256-sha256
key: 105a0291b0c05219-3decdf78938a7bea-78943651e1720536-625114d66e46f668
lifetime/rekey: 86400/86019
DPD sent/recv: 00000000/00000af3
The PC can access the dev resource overlay, but not qa:
C:\Users\tester>ping 174.16.101.44
C:\Users\tester>ping 22.202.2.2
Secure access
Quarantine by redirect makes the FortiSwitch redirect traffic from the quarantined host to the FortiGate, keeping the
device on its original network. This is the default quarantine mode.
Quarantine by VLAN, which moves the device from the normal switch VLAN to the quarantine VLAN, can be
complicated for administrators that use DHCP or static IP address assignments. When a device is sent to quarantine, its
IP address is no longer valid for the quarantined VLAN segment, making it difficult to perform remediation on the
device.
In this example, the PC can access the internet when there is an allowed policy from interface vsw.port11 to port1
(called PC to Internet). When the PC is quarantined, a firewall address is automatically created for the PC, which is
added to an automatically created address group called QuarantinedDevices. A policy (called quarantine) is created
that applies to this address group and blocks traffic from the PC to the internet.
The FortiSwitch configuration is done automatically after the FortiGate configured.
To quarantine an active device, based on the device's MAC address, in the GUI:
1. Go to Security Fabric > Physical Topology or Security Fabric > Logical Topology.
2. Mouse over the bubble of an active device, and select Quarantine Host from the right-click menu.
4. Go to Policy & Objects > Firewall Policy and create a policy to block traffic from quarantined devices to the
internet.
To quarantine an active device, based on the device's MAC address, in the CLI:
Firewall addresses are automatically created for the quarantined MAC address, and the addresses are added to the
QuarantinedDevices address group:
# show firewall address | grep -f qtn
config firewall address
edit "qtn.mac_00:00:00:00:00:00" <---
set uuid 9069e73c-3c6e-51ea-28d4-b807167fdcb7
Wireless client IPv6 traffic is supported from both tunnel and local bridge mode SSID:
l Tunnel mode SSID IPv6 traffic on page 88
l Local bridge mode SSID IPv6 traffic on page 90
l CLI commands for IPv6 rules on page 92
In the following example, FortiAP S221E is managed by FortiGate 100D and broadcasts tunnel mode SSID:FOS_QA_
100D-IPv6.
FortiAP-S221E # usta
Total STAs: 1
In the following example, FortiAP S221E is managed by FortiGate 100D through a local NATed switch and broadcasts
local bridge mode SSID:FOS_QA_100D-LB-IPv6.
2. Create an IPv6 DHCP server for the local NATed switch (FortiWiFi 60E is used in this example):
config system interface
edit "internal6"
set vdom "vdom1"
set ip 2.2.3.1 255.255.255.0
set allowaccess ping https http fabric
set type physical
set snmp-index 18
config ipv6
set ip6-address 2001:100:122:130::1/64
set ip6-allowaccess ping https http fabric
FortiAP-S221E # usta
Total STAs: 1
Command Description
drop-icmp6ra Drop ICMPv6 router advertisement (RA) packets that originate from wireless
clients.
drop-icmp6rs Drop ICMPv6 router solicitation (RS) packets to be sent to wireless clients.
drop-dhcp6s Drop DHCPv6 server generated packets that originate from wireless clients.
ndp-proxy Enable IPv6 NDP proxy; send back NA on behalf of the client and drop the NS.
drop-ns-dad Drop ICMPv6 NS DAD when target address is not found in the NDP proxy cache.
drop-ns-nondad Drop ICMPv6 NS non-DAD when target address is not found in the NDP proxy
cache.
The IPv6 rules settings can be pushed to a FortiAP when the VAP is broadcast.
Spectrum analysis is available for FortiAP E models running 6.4.0 and later firmware. The analysis is visible in the GUI
through the Managed FortiAPs page. Spectrum analysis can also be performed in the CLI.
To start or stop the spectrum analysis:
execute wireless-controller spectral-scan <wtp-id> <radio-id > <on | off>
<duration> <channel> <report-interval>
To verify the results:
diagnose wireless-controller wlac -c rf-sa <wtp-id> <radio-id> <channel>
get wireless-controller spectral-info <wtp-id> <radio-id>
The following examples use a FortiAP 421E (radio 1 at 2.4 GHz and radio 2 at 5 GHz) that is managed by a FortiGate
80E-POE.
c. Click OK.
2. Go to WiFi & Switch Controller > Managed FortiAPs.
3. In the table, hover over the AP so the context menu appears and click Details. The summary pane appears.
4. Click Spectrum Analysis.
5. Click a band frequency to view the analysis for: Signal Interference, Signal Interference Spectrogram, Duty Cycle,
Duty Cycle Spectrogram, and Detected Interference (list).
Analysis for 2.4 GHz:
6. Click Close.
The maximum number of managed FortiAPs has increased in some FortiGate E models for added wireless capability
and scalability.
The following comparison table shows the maximum number of FortiAPs supported in FortiGate E models:
You can create configuration templates that define the VLAN interfaces and are applied to new FortiSwitch devices
when they are discovered and managed by the FortiGate.
For each VDOM, you can create templates, and then assign those templates to the automatically created switch VLAN
interfaces for six types of traffic. The network subnet that is reserved for the switch controller can also be customized.
To ensure that switch VLAN interface names are unique for each system, the following naming rules are used:
l root VDOM: the interface names are the same as the template names.
l other VDOMs: the interface name is created from the template name and the SNMP index of the interface. For
example, if the template name is quarantined and the SNMP index is 29, then the interface name is
quarantined.29.
You can also customize the FortiLink management VLAN per FortiLink interface:
The management VLAN can be a number from 1 to 4094. the default value is 4094.
vlanid <integer> The unique VLAN ID for the type of traffic the template is assigned to (1 - 4094,
default = 4094)
ip <ip/netmask> The IP address and subnet mask of the switch VLAN interface. This can only be
configured when auto-ip is disabled.
auto-ip {enable | disable} When enabled, the switch-controller will pick an unused 24 bit subnet from the
switch-controller-reserved-network (configured in config
system global).
dhcp-server {enable | disable} When enabled, the switch-controller will create a DHCP server for the switch
VLAN interface
default-vlan <template> Default VLAN assigned to all switch ports upon discovery.
To configure the network subnet that is reserved for the switch controller:
Example
In this example, six templates are configured with different VLAN IDs. Except for the default template, all of them have
DHCP server enabled. When a FortiSwitch is discovered, VLANs and the corresponding DHCP servers are automatically
created.
next
end
set timezone-option default
next
...
end
The number of managed FortiSwitch devices has increased in some FortiGate E models.
Reporting intervals for FortiAP are now evenly distributed to prevent spikes in CPU usage in FortiGates that manage a
large number of AP devices.
FortiAP sends periodic reports to FortiGate when WIDS profiles, DARRP, or auto-power-level are enabled in WTP
profiles. Before this improvement was implemented, these periodic reports would frequently reach the wireless
controller at the same time, causing spikes in CPU usage.
GUI
The following images compare the CPU usage in a FortiGate that manages 16 FortiAPs before and after the
improvement was implemented.
Before the improvement, CPU usage is above 25%. The spike in usage can go as high as 90% if the FortiGate manages
more than 16 devices.
After the improvement is implemented, CPU usage is approximately 10% in the same FortiGate.
CLI
The following examples show the improvements in the CLI for the same FortiGate device.
In this example, you can see 16 wireless sessions in the CLI.
FG81EP4Q16000344 (root) # diag wire wlac -c ws | grep "WTP session"
WTP session : 0-10.43.1.1:62332 CWAS_RUN
WTP session : 0-10.43.1.1:62350 CWAS_RUN
WTP session : 0-10.43.1.1:62356 CWAS_RUN
WTP session : 0-10.43.1.1:62357 CWAS_RUN
WTP session : 0-10.43.1.1:62325 CWAS_RUN
WTP session : 0-10.43.1.1:15246 CWAS_RUN
WTP session : 0-10.43.1.1:62362 CWAS_RUN
WTP session : 0-10.43.1.1:62364 CWAS_RUN
WTP session : 0-10.43.1.1:62366 CWAS_RUN
WTP session : 0-10.43.1.1:62367 CWAS_RUN
WTP session : 0-10.43.1.1:62319 CWAS_RUN
WTP session : 0-10.43.1.1:62321 CWAS_RUN
WTP session : 0-10.43.1.1:62320 CWAS_RUN
WTP session : 0-10.43.1.1:62370 CWAS_RUN
WTP session : 0-10.43.1.1:62323 CWAS_RUN
WTP session : 0-10.43.1.1:62329 CWAS_RUN
Before the improvement is implemented, the FortiAP WTP reports are not indexed, which can cause spikes in CPU
usage.
FG81EP4Q16000344 (root) # diag wireless-controller wlac -c ws | grep report
FG81EP4Q16000344 (root) #
After the improvement is implemented, the AC assigns a wtp-report-index to each managed FortiAP, preventing spikes
in CPU usage.
FG81EP4Q16000344 (root) # diag wireless-controller wlac -c ws | grep report
wtp-report-index : 1
wtp-report-index : 2
wtp-report-index : 3
wtp-report-index : 4
wtp-report-index : 5
wtp-report-index : 6
wtp-report-index : 7
wtp-report-index : 8
wtp-report-index : 9
wtp-report-index : 10
wtp-report-index : 11
wtp-report-index : 12
wtp-report-index : 13
wtp-report-index : 14
wtp-report-index : 15
wtp-report-index : 16
You can see the value for the wtp-report-index when you filter the data by device. In this example, the report index is 16.
FG81EP4Q16000344 (root) # diag wireless-controller wlac -c ws 10.231.40.15
-------------------------------WTP SESSION 1----------------------------
WTP session : 0-10.43.1.1:62433 CWAS_RUN
Ctrl in_ifIdx : 5/wan1
indev : 5/wan1
Data in_ifIdx : 5/wan1
indev : 0/
mesh uplink : ethernet
id : FP423E3X16000304
mgmt_vlanid : 0
wtp_wanlan_mode : wan-only
refcnt : 10
deleted : no
plain_ctl : disabled
wtp-mode : normal
wtp-report-index : 16
data-chan-sec : clear-text
ctl-msg-offload : ac=01ff/wtp_loc=01ff/wtp_rem=01ff/oper=01ff
session_id : 70386ec03c8bdcd630efda365b3f9ce0
ehapd cfg : done
message queue : 0/128 max 65
tId_10_sec : 3537
Ekahau : disabled
Aeroscout : disabled
FortiPresence : disabled
Radio 1 : AP
wlan cfg : 81ep_ssid1 81ep_ssid2 81ep_ssid4 81ep_wpa3_sae
vap-01(1) : 81ep_ssid1 90:6c:ac:dc:60:b0 lsw FOS-QA-Bruce_81ep1 Config success State RUN
vap-02(2) : 81ep_ssid2 90:6c:ac:dc:60:b1 lsw FOS-QA-Bruce_81ep2 Config success State RUN
vap-03(3) : 81ep_ssid4 90:6c:ac:dc:60:b2 lsw FOS-QA-BRUCE_roaming Config success State
RUN
vap-04(4) : 81ep_wpa3_sae 90:6c:ac:dc:60:b3 lsw 81ep_wpa3_sae Config success State INIT
Radio 2 : AP
wlan cfg : 81ep_ssid1 81ep_ssid2 81ep_ssid4 81ep_wpa3_sae
vap-01(1) : 81ep_ssid1 90:6c:ac:dc:60:b8 lsw FOS-QA-Bruce_81ep1 Config success State RUN
vap-02(2) : 81ep_ssid2 90:6c:ac:dc:60:b9 lsw FOS-QA-Bruce_81ep2 Config success State RUN
vap-03(3) : 81ep_ssid4 90:6c:ac:dc:60:ba lsw FOS-QA-BRUCE_roaming Config success State
RUN
vap-04(4) : 81ep_wpa3_sae 90:6c:ac:dc:60:bb lsw 81ep_wpa3_sae Config success State N/A
Radio 3 : Not Exist
Radio 4 : Not Exist
Radio 5 : Not Exist
You can also see the device's wtp-report-index value when you view the WTP configuration in FortiAP.
FortiAP-423E # cw_diag -c wtp-cfg
WTP Configuration
name : FortiAP-423E
loc : N/A
ap mode : thin AP
fmvap : FG81EP4Q16000344,(12ac979c,5e693999,1),1800,0
Administrators can use the GUI to view detailed information about the health of individual WiFi connections from the
Dashboard or the WiFi Clients console. You can also Quarantine or Disassociate a wireless client. The information in
the FortiView page is now displayed as tabs in the summary window for each wireless client.
Sample topology
1. Go to WiFi & Switch Controller > WiFi Clients, and select a wireless client. Click Diagnostics and Tools to the
right side of the Refresh icon.
3. On the summary page, click Quarantine.The Quarantine Host dialog opens. Click OK to quarantine the selected
wireless client, and close the dialog.
4. On the summary page, click the Disassociate icon. The Confirm dialog opens. Click OK to dissociate the selected
wireless client, and close the dialog.
5. From the summary page, the Health section displays the overall health for the wireless connection. The overall
health of the connection is:
l Good if the value range for all three conditions are Good.
l Fair or Poor if one of the three conditions is Fair or Poor.
7. Go to Dashboard > WiFi. Click the Clients By FortiAP widget to view the drill-down information for the wireless
client.
FortiGates that manage FortiAPs have the ability to probe VLANs and subnets connected to an access point. Use the
VLAN probe wireless tool to help troubleshoot why users cannot connect to the Internet.
GUI
4. After the VLAN probing is complete, the VLAN probing report appears in the summary page.
CLI
You can use the CLI console in FortiGate and FortiAP to perform a VLAN probe and view the report.
FortiGate
Command syntax:
diagnose wireless-controller wlac -c vlan-probe-cmd <FAP Serial Number> <action> <interface
ID> <start Vlan ID> <end Vlan ID> <retry> <timeout>
diagnose wireless-controller wlac -c vlan-probe-rpt <FAP Serial Number> <interface ID>
FortiAP
Command syntax
cw_diag -c vlan-probe-cmd <action> <interface ID> <start Vlan ID> <end Vlan
ID> <retry> <timeout>
cw_diag -c vlan-probe-rpt
Stop VLAN probing.You don't need to run stop command to get the probing report, only use it
when you want to stop probing.
The frequency and AP handoff options are moved from the radio level to the global section of FortiAP profiles. If either
load balancing options are enabled on any radio prior to upgrading, the setting will be enabled after upgrading.
In this example, a new custom profile is created with both client load balancing options are enabled.
config radio-2
set band 802.11ac
end
next
end
For FortiAP devices (6.4.0 and later) that are managed by FortiGate, a layer three (L3) access control list (ACL) can be
applied to a bridge or tunnel mode SSID.
Example
In this example:
l Rule 10 is to block all traffic to 172.16.200.44
l Rule 20 is to block all ICMP traffic
l Rule 30 is to block traffic to destination port 21 (FTP)
To configure L3 ACL:
This section lists the new features added to FortiOS for zero-trust network access:
l NAC on page 124
NAC
Internet of Things (IoT) detection is a subscription service that allows FortiGate to detect unknown devices in
FortiGuard that are not detected by the local Device Database (CIDB). When the service is activated, FortiGate can
send device information to the FortiGuard collection server. When a new device is detected, FortiGate queries the
results from the FortiGuard query for more information about the device.
The IoT detection service requires an IOTH contract, which is part of the Enterprise and 360 Protection bundle, or can
be purchased on its own.
GUI
To view the latest device information in the GUI, go to Dashboard > Users & Devices and expand the Device
Inventory widget.
1. Disable the local device database in order to force all queries to go to FortiGuard.
diagnose src-vic local-sig disable
2. Enable iotd debugs.
diagnose debug application iotd -1
diagnose debug enable
FortiGate sends the device data to the FortiGuard collection server.
FortiWiFi-60E # [iotd] recv request from caller size:61
[iotd] service:collect hostname: ip: fd:-1 request tlv_len:41
[iotd] txt(.....y...w.....Jasons-iPhone6....579=23..)
[iotd] hex
(02010007017903060f77fc0203000e4a61736f6e732d6950686f6e6536020400083537393d32330cff)
[iotd] service:collect hostname:qadevcollect.fortinet.net ip: fd:-1 got server hostname
[iotd] service:collect hostname:qadevcollect.fortinet.net ip:192.168.100.133 fd:-1 got
server ip
[iotd] service:collect hostname:qadevcollect.fortinet.net ip:192.168.100.133 fd:13 socket
created
[iotd] service:collect hostname:qadevcollect.fortinet.net ip:192.168.100.133 fd:13
connecting
[iotd] fd:13 monitor event:pollout
[iotd] service:collect hostname:qadevcollect.fortinet.net ip:192.168.100.133 fd:13 build
req packet
[iotd] service:collect hostname:qadevcollect.fortinet.net ip:192.168.100.133 fd:13 collect
resp:1(pending)
The FortiGuard collection server returns new device data to the FortiGuard query server.
[iotd] service:query hostname:qadevquery.fortinet.net ip:192.168.100.248 fd:17 got query
resp
[iotd] service:query hostname:qadevquery.fortinet.net ip:192.168.100.248 fd:17 id:0 total_
len:48 header_len:16 tlv_len:32 confidence:100 mac:f8:87:f1:1f:ab:95
[iotd] service:query hostname:qadevquery.fortinet.net ip:192.168.100.248 fd:17 remaining_
len:32 type:1 len:6
Network access control (NAC) helps administrators implement policies to control the devices and users that have access
to their networks. A NAC policy can use user or detected device information, such as device type or OS, to put traffic into
a specific VLAN or apply specific port settings.
The NAC function can be enabled on all FortiSwitches, or on specific FortiSwitch ports.
Initially, devices connected to ports with the NAC function enabled are put into an onboarding VLAN. The onboarding
VLAN usually has a restrictive security policy, device identification enabled, a DHCP server, and captive portal enabled.
The device identification feature collects device information. When the device matches the patterns that are defined in
a NAC policy, an action is applied to the device, such as moving it to a specific VLAN or having a security policy applied.
Example
In this example, NAC settings are enabled and configured so that a Linux PC is automatically moved into a VLAN
dedicated to Linux PCs after it comes online and gets identified.
1. Use the wizard to enable the NAC feature and configure basic settings:
a. Go to WiFi & Switch Controller > FortiSwitch NAC Policies. If FortiSwitch options are not visible, see
Feature visibility for instructions on making them visible.
b. Click Configure NAC Settings in the message box.
c. Specify the switch ports that NAC access mode will be enabled on, or enable it on all of them.
d. Select the onboarding VLAN. If no VLAN exists, click Create in the drop down menu to create a new NAC
VLAN interface.
e. Click Next.
f. Create or modify NAC VLANs (also known as FortiSwitch VLANs) that can be used in NAC policies.
g. Create or edit NAC VLANs as needed. See FortiLink Setup for details.
h. Click Submit.
The NAC settings can be edited in WiFi & Switch Controller > FortiLink Interface.
The NAC VLANs can be edited in WiFi & Switch Controller > FortiSwitch VLANs.
The access mode of the switch ports is changed to NAC and the native VLAN is set to the onboarding VLAN.
2. Create a NAC VLAN for all Linux PCs:
a. Go to WiFi & Switch Controller > FortiSwitch VLANs and click Create New.
b. Set Name to vlan_Linux.
e. Click OK.
4. After the Linux PC connects, check that it is matched to the policy:
a. Go to WiFi & Switch Controller > FortiSwitch NAC Policies.
b. Select the Linux_to_VLAN policy and click View Matched Devices.
The Matched Devices pane opens, showing the devices that matched the policy.
3. Configure the NAC policy matching pattern to identify matching NAC devices:
config user nac-policy
edit "Linux_to_VLAN"
set os "Linux*"
set switch-fortilink "fortilink"
set switch-mac-policy "Linux_to_VLAN"
next
end
4. Configure the MAC policy to be applied on the managed FortiSwitch devices through the NAC device:
config switch-controller mac-policy
edit "Linux_to_VLAN"
set fortilink "fortilink"
set vlan "vlan_Linux"
next
end
5. View the NAC devices learned on the managed FortiSwitch ports that match the NAC policy:
show switch-controller nac-device
config switch-controller nac-device
edit 1
set description "auto detected @ 2020-04-01 15:36:24"
set mac 00:0c:29:a9:12:74
set last-known-switch "S124EP5918000276"
set last-known-port "port6"
set matched-nac-policy "Linux_to_VLAN"
set mac-policy "Linux_to_VLAN"
next
end
Added ability in FortiSwitch to query FortiGuard IoT service for device details
Capability was added to FortiSwith to work with FortiGate and the new FortiGuard IoT detection service for the purpose
of device identification.
FortiSwitch devices are now able to assist FortiGates with capturing the most accurate device information, allowing
FortiGate to identify devices for the user device list. When the new FortiGuard IoT detection service is activated,
FortiGate will leverage the IoT detection service to help reduce the workload for device identification.
The following CLI command and parameters were added under switch-controller to control when FortiSwitch
should start and stop collecting device packets for FortiGate:
config switch-controller system
set iot-weight-threshold
set iot-scan-interval
set iot-holdoff
set iot-mac-idle
Example
Example topology
FGT500E-----FSW248EP(port1)-----FortiAP
In this example, FortiSwitch will help FortiGate collect packets from FortiAP every 30 minutes and stop for 30 minutes.
FortiSwitch will stop collecting packets from FortiAP when the weight of the device information reaches a threshold of
80.
FortiSwitch is able to parse LLDP messages from voice devices such as FortiFone, and pass this information to
FortiGate for device detection. You can use FortiSwitch NAC policies to assign a device to an LLDP profile, QoS policy,
and VLAN policy. When a detected device is matched to a NAC policy, the corresponding policy actions will be applied
on the switch port.
Example
In the following example, FortiFone is connected to port11 of FortiSwitch. A NAC policy is created to apply a VLAN
policy, LLDP policy, and QoS policy to Device Family FortiFone.
1. Configure a NAC policy on a switch port. See Support NAC policies on switch ports on page 126.
2. Go to WiFi & Switch Controller > FortiSwitch NAC Policies.
3. Create or edit an NAC policy.
4. Configure the NAC policy settings.
a. Set the Category to Device.
b. Enable Device family, and enter name such as FortiFone.
c. Select Apply Port Specific Settings.
d. Enable LLDP profile, and select a voice profile from the dropdown.
e. Enable QoS policy, and select a voice policy from the dropdown.
f. Enable VLAN policy, and select a voice policy from the dropdown.
The NAC policy is applied after a FortiFone is plugged into port11 of the FortiSwitch:
1. Assign the FortiFone to a VLAN policy, LLDP policy, and QoS Policy.
config user nac-policy
edit "FortiFone"
set family "FortiFone"
set switch-fortilink "fortilink"
set switch-port-policy "FortiFone"
next
end
Capability codes:
R:Router, B:Bridge, T:Telephone, C:DOCSIS Cable Device
W:WLAN Access Point, P:Repeater, S:Station, O:Other
_______________________________________________________________
Neighbor learned on port port11 by LLDP protocol
Last change 20 seconds ago
Last packet received 20 seconds ago
This section lists the new features added to FortiOS for AI-driven security operations:
l ATP on page 137
ATP
This section includes ATP (advanced threat protection) features added to FortiOS:
l Credential phishing prevention on page 137
l Extend ISDB to include well-known MAC address list on page 139
l GeoIP matching by registered and physical location on page 141
When credential phishing prevention is enabled, the FortiGate scans for corporate credentials submitted to external
websites and compares them to sensitive credentials stored in the corporate domain controller. Based on the configured
antiphishing rules in proxy mode web filter profiles, the FortiGate will block the URL or alert the user if the credentials
match ones that are stored on the corporate domain controller.
l The corporate domain controller must be configured on the credential-store. Credentials are matched based on
sAMAccountName. UPN format is not currently supported.
l The antiphishing profile defines the corporate domain controller, antiphishing check option, default action if no
rules match, antiphishing status, and so on.
l Inspection entries in the profile define what action occurs when the submission request matches the specified
FortiGuard categories.
l The profile scans for pre-defined and custom username and password fields in the HTTP request, such as
username, auth, and password. You can evaluate custom fields by configuring custom patterns.
l The URL filter defines individual URLs that the antiphish action (block or log) is applied to when the URL
submission request matches.
Web-based URL filter actions and FortiGuard category-based filtering have higher priority
than antiphishing URL filter actions and FortiGuard filtering:
l If a request is blocked by the web-based URL filter or FortiGuard filter, there is no further
antiphishing scanning. Antiphishing scanning only happens after the web-based URL
filtes and FortiGuard filters allow the traffic.
l If a submission matches an entry in the URL filter table that has an antiphishing action,
the defined action is taken. No further FortiGuard category-based rules are applied.
l Like firewall rules, the URL filter table and Fortiguard category-based antiphishing rules
use a top-down priority. The rule that matches first is the one that is used.
In this example, URLs that match FortiGuard category 37 (social networking) will be blocked and other categories will be
logged.
The domain controller entry name must be the hostname of the DC (win2016 in the
example). Both it and the domain name are case sensitive.
2. Configure the antiphishing profile, which includes the FortiGuard category rule:
config webfilter profile
edit "<profile-name>"
set feature-set proxy
...
config web
...
end
config antiphish
set status enable
set domain-controller "win2016"
set default-action block
set check-uri enable
set check-basic-auth enable
set max-body-len 65536
config inspection-entries
edit "inspect-37"
set fortiguard-category 37
set action block
next
edit "inspect-others"
set fortiguard-category all
set action log
next
end
config custom-patterns
edit "customer-name"
set category username
next
edit "customer-passwd"
set category password
next
end
end
...
set web-antiphishing-log enable
next
end
4. Optionally, define custom patterns to scan fields other than the built-in username and password keywords are
needed:
config webfilter profile
edit "<profile-name>"
config custom-patterns
edit "customer-name"
set category username
next
edit "customer-passwd"
set category password
next
end
end
next
end
ISDB now includes well-known vendor MAC address range lists. The lists can only be used for source MAC addresses in
IPv4 policies, and include the vendor name and the MAC address ranges that the vendor belongs to.
# diagnose vendor-mac id
Please input Vendor MAC ID.
# diagnose vendor-mac id 16
Vendor MAC: 16(Fortinet)
Version: 0000700021
Timestamp: 201908081432
Number of MAC ranges: 6
00:09:0f:00:00:00 - 00:09:0f:ff:ff:ff
04:d5:90:00:00:00 - 04:d5:90:ff:ff:ff
08:5b:0e:00:00:00 - 08:5b:0e:ff:ff:ff
70:4c:a5:00:00:00 - 70:4c:a5:ff:ff:ff
90:6c:ac:00:00:00 - 90:6c:ac:ff:ff:ff
e8:1c:ba:00:00:00 - e8:1c:ba:ff:ff:ff
Only packets whose source MAC address belong to Fortinet or VMware are passed by the policy.
IP addresses have both a physical and registered location in the geography IP database. Sometimes these two
locations are different. The new geoip-match command allows users to match an IP address in an IPv4 policy to its
physical or registered location when a GeoIP is used as a source or destination address.
In the following example, the physical location of 220.243.219.10 is CA (Canada), the registered location is CN (China),
and it is not an anycast IP.
next
end
Since CA is applied as a destination address and registered location IP matching is enabled, if the destination IP of
the traffic is 220.243.219.10, then the traffic will be blocked because the registered location is CN.
2. Verify that the policy is blocking traffic from the IP address:
# diagnose sniffer packet any icmp 4
interfaces=[any]
filters=[icmp]
5.383798 wan2 in 10.1.100.41 -> 220.243.219.10: icmp: echo request
6.381982 wan2 in 10.1.100.41 -> 220.243.219.10: icmp: echo request
7.382608 wan2 in 10.1.100.41 -> 220.243.219.10: icmp: echo request
^C
3 packets received by filter
0 packets dropped by kernel
Since CA is applied as a destination address and physical location IP matching is enabled, if the destination IP of
the traffic is 220.243.219.10, then the traffic will pass through.
2. Verify that the policy is allowing traffic from the IP address:
# diagnose sniffer packet any icmp 4
interfaces=[any]
filters=[icmp]
5.273985 wan2 in 10.1.100.41 -> 220.243.219.10: icmp: echo request
5.274176 wan1 out 172.16.200.10 -> 220.243.219.10: icmp: echo request
6.274426 wan2 in 10.1.100.41 -> 220.243.219.10: icmp: echo request
6.274438 wan1 out 172.16.200.10 -> 220.243.219.10: icmp: echo request
7.273978 wan2 in 10.1.100.41 -> 220.243.219.10: icmp: echo request
7.273987 wan1 out 172.16.200.10 -> 220.243.219.10: icmp: echo request
^C
6 packets received by filter
0 packets dropped by kernel
This section lists the new features added to FortiOS for the Security Fabric management platform:
l Single pane on page 143
l Security Fabric automation on page 153
Single pane
When you configure a FortiGate as a service provider (SP), you can create an authentication profile that uses SAML for
both firewall and SSL VPN web portal authentication. Once the firewall is authenticated, entering SAML credentials is
not required for SSL VPN web portal authentication.
You must use the identity provider's (IdP) remote certificate on the SPs.
The following example uses a FortiGate as an SP and FortiAuthenticator as the IdP server:
2. Add the SAML user to the user group (optionally, you can configure group matching):
config user group
edit "saml_firewall"
set member "fac-firewall"
config match
edit 1
set server-name "fac-firewall"
set group-name "user_group1"
next
end
next
end
5. Run HTTP/HTTPS authentication for a remote user. The SAML login page appears:
2. Add the SAML user to the user group (group matching may also be configured):
config user group
edit "saml_sslvpn"
set member "fac-sslvpn"
next
end
Fortinet service communications statistics are displayed on the FortiGuard page. The statistics correspond with the
output from diagnose system service-communication. The values for traffic volume in the GUI are sums of
data from the last 24 hours.
1. Go to System > FortiGuard.
The Fortinet Service Communications statistics are displayed on the right-side of the screen:
A VDOM confirmation prompt has been added so users do not create new VDOMs accidentally in the CLI. This setting
is disabled by default. Once enabled, when an administrator creates a new VDOM, the FortiGate displays a prompt to
confirm before the VDOM is created.
current vf=vdomtest1:4
next
edit vdomtest2
The input VDOM name doesn't exist.
Do you want to create a new VDOM?
Please press 'y' to continue, or press 'n' to cancel. (y/n)n
end
The system-diagnostics command in an administrator profile can be used to control access to diagnose
commands for global and VDOM level administrators.
3. Log in as the administrator and confirm that they cannot access diagnose commands:
$ ?
config Configure object.
get Get dynamic and system information.
show Show configuration.
execute Execute static commands.
alias Execute alias commands.
exit Exit the CLI.
In an HA cluster, secondary devices can be configured to use different FortiAnalyzer devices and syslog servers than the
primary device. VDOMs can also override global syslog server settings.
2. Set up a VDOM exception to enable setting the global syslog server on the secondary HA device:
config global
config system vdom-exception
edit 1
set object log.syslogd.setting
next
end
end
2. After the primary and secondary device synchronize, generate logs on the secondary device.
To confirm that logs are been sent to the syslog server configured on the secondary device:
1. On the primary device, retrieve the following packet capture from the secondary device's syslog server:
# diagnose sniffer packet any "host 172.16.200.55" 6
interfaces=[any]
filters=[host 172.16.200.55]
2. Set up a VDOM exception to enable syslog-override in the secondary HA device root VDOM:
config global
config system vdom-exception
edit 1
set object log.syslogd.override-setting
set scope inclusive
set vdom root
next
end
end
3. In the VDOM, enable syslog-override in the log settings, and set up the override syslog server:
config root
config log setting
set syslog-override enable
end
config log syslog override-setting
set status enable
set server 172.16.200.44
set facility local6
set format default
end
end
After syslog-override is enabled, an override syslog server must be configured, as logs will not be sent to the
global syslog server.
2. After the primary and secondary device synchronize, generate logs in the root VDOM on the secondary device.
To confirm that logs are been sent to the syslog server configured for the root VDOM on the secondary
device:
1. On the primary device, retrieve the following packet capture from the syslog server configured in the root VDOM on
the secondary device:
# diagnose sniffer packet any "host 172.16.200.55" 6
interfaces=[any]
filters=[host 172.16.200.55]
To activate FortiGate Cloud and register with FortiCloud at the same time:
A new SDN connector type has been added for Cisco ACI (Application Centric Infrastructure) northbound API
integration. Administrators can define a dynamic firewall addresses for Cisco ACI directly. Deploying an SDN connector
through an external VM between the FortiGate and Cisco ACI is no longer required.
The following address filters are supported:
l Tenant
l Application
l Endpoint group
l Tag
e. Click OK.
2. Create a dynamic firewall address for the connector:
a. Go to Policy & Objects > Addresses.
b. Click Create New > Address and enter a name.
c. Configure the following settings:
i. For Type, select Dynamic.
ii. For Sub Type, select Fabric Connector Address.
iii. For SDN Connector, select the connector created in step 1.
iv. For Filter, select an entry from the dropdown list. In this example, Application is selected.
d. Click OK.
3. Confirm that the connector resolves the dynamic firewall IP addresses:
a. Go to Policy & Objects > Addresses.
b. In the address table, hover over the address created in step 2 to view which IPs it resolves to:
next
end
Support multiple SDN connector instances for Cisco ACI and Nuage
Users can configure multiple Cisco ACI (Application Centric Infrastructure) and Nuage SDN connectors, which can be
used in dynamic firewall addresses. The following examples configure two Cisco ACI and two Nuage SDN connectors.
d. Click OK.
c. Click OK.
d. Click OK.
c. Click OK.
To verify the dynamic firewall IPs are resolved by the SDN connector in the GUI:
To verify the dynamic firewall IPs are resolved by the SDN connector in the CLI:
nuage1.nuage.nuage/L3.Subnet20.*: ID(196)
ADDR(192.168.20.92)
ADDR(192.168.20.240)
nuage2.nuage.nuage/L3.Subnet30.*: ID(198)
ADDR(192.168.30.92)
aci2.aci.Fortinet.App.*: ID(218)
ADDR(150.0.0.10)
ADDR(192.168.21.11)
ADDR(192.168.2.100)
Automation stitches
Eight new webhook automation stitches were added to the Automation menu. The additional stitches include a new
Incoming Webhook Quarantine trigger for API calls to the FortiGate, as well as a predefined License Expired
Notification that replaces the existing license expiry alerts.
The automation stitches are available in new FortiGate installations by default. To install the stitches on an existing
device, perform a factory reset.
Performing a factory reset will wipe the existing configurations from the ForttGate.
Before performing a factory reset, backup the existing configuration. Contact Fortinet support
for additional assistance.
GUI
To view the new automation stitches in the GUI, go to Security Fabric > Automation.
After the factory reset, the email alert feature will be removed from the GUI (Log & Report >
Email Alert Settings), and replaced with the Email automation stitches.
You can continue using the email alert feature with the CLI console.
CLI
To configure the new automation stitches in the CLI console, use the following commands:
config system automation-action
config system automation-trigger
config system automation-stitch
To view the configurations for the new automation stitches, see the CLI reference at the
bottom of the page.
d. In the API admin key field, enter the API key you recorded in the previous step. A Sample cURL request is
created.
e. Copy the Sample cURL request.
Encode the spaces in the automation-stitch name with %20. For example,
Incoming%20Webhook%20Quarantine
3. Add parameters in the data field ("mac" and "fctuid"), then execute the request on a device.
root@pc56:~# curl -k -X POST -H 'Authorization: Bearer
cfgtct1mmx0fQxr4khb000p70wdfmk' --data '{ "mac":"0c:0a:00:0c:ce:b0", "fctuid":
"3000BB0B0ABD0D00B0D0A0B0E0F0B00B"}'
https://100.10.100.200/api/v2/monitor/system/automation-
stitch/webhook/Incoming%20Webhook%20Quarantine
{
"http_method":"POST",
"status":"success",
"http_status":200,
"serial":"FGT80E0Q00000000",
"version":"v6.4.0",
"build":1545
Encode the spaces in the automation-stitch name with %20. For example,
Incoming%20Webhook%20Quarantine
The automation rule "Incoming Webhook Quarantine" is triggered. The MAC address is quarantined in FortiGate,
and an event log is created. The FortiClient UUID will be quarantined on the EMS server side.
config user quarantine
config targets
edit "0c:0a:00:0c:ce:b0"
config macs
edit 0c:0a:00:0c:ce:b0
set description "Quarantined by automation stitch: Incoming Webhook
Quarantine"
next
end
next
end
end
date=2020-02-14 time=15:37:48 logid="0100046600" type="event" subtype="system"
level="notice" vd="root" eventtime=1581723468644200712 tz="-0800"
logdesc="Automation stitch triggered" stitch="Incoming Webhook Quarantine"
trigger="Incoming Webhook Quarantine" stitchaction="Compromised Host
Quarantine_quarantine,Compromised Host Quarantine_quarantine-forticlient"
from="log" msg="stitch:Incoming Webhook Quarantine is triggered."
CLI Reference
Network down
HA failover
Reboot
Connection down
next
end
License expired
Compromised host
Quarantine FortiClient
end
Security rating
Automation stitches now include a Slack notification in the Action menu. To configure the automation stitch, create an
Incoming Webhook in Slack, and then enter the Webhook URL in the corresponding field of the notification action in
FortiGate.
Delay Enter the number of seconds to delay the notification after the previous action is
triggered.
URL Enter the Webhook URL you recorded when you created the Incoming Webhook in
Slack.
next
edit "slack2"
set action-type slack-notification
set minimum-interval 0
set delay 90
set required disable
set message "%%log%%"
set uri "hooks.slack.com/services/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"
next
end
2. Create the trigger for the notification.
config system automation-trigger
edit "auto-rating"
set trigger-type event-based
set event-type security-rating-summary
next
end
3. Configure the action for the trigger.
config system automation-stitch
edit "auto-rating"
set status enable
set trigger "auto-rating"
set action "slack1" "slack2"
next
end
4. Trigger the notification.
The notification action is triggered in FortiGate.
The message you entered in the automation stitch is delivered to the Slack channel.
For a FortiGate-VM deployed on Azure, the new Use managed identity setting allows FortiOS to connect to Azure
based on the FortiGate-VM's user-assigned managed identity. Using user-assigned managed identities enables a
FortiGate-VM deployed on Azure to authenticate to cloud services without storing credentials in FortiOS.
When you enable Use managed identity for an Azure Fabric connector, you do not need to configure the Tenant ID,
Client ID, and Client secret fields on the Fabric connector creation page. FortiOS hides these fields when you enable
Use managed identity for an Azure Fabric connector.
This feature only applies for a FortiGate-VM deployed on Azure. For a FortiGate that is not deployed on Azure, you
must still configure the Tenant ID, Client ID, and Client secret fields for an Azure Fabric connector. This feature also
does not apply for a FortiGate-VM deployed on Azure Stack.
This configuration consists of the following steps:
1. Configure a user-managed identity in Azure.
2. Configure an Azure Fabric connector in FortiOS:
a. GUI instructions
b. CLI instructions
2. Go to the FortiGate-VM instance, then go to Identity. Set the managed identity created in step a as the user-
assigned identity.
3. Search for subscriptions to assign the level of scope. Select the subscription, then go to Access control (IAM).
Click Add role assignment. From the Role dropdown list, select Contributor.
d. From the SDN Connector dropdown list, select the Fabric connector that you created in step 1.
e. Configure other settings as desired.
f. Click OK.
3. To confirm that the Fabric connector resolves the dynamic firewall IP addresses with the supported filter, go to
Policy & Objects > Addresses. Hover over the address that you created in step 2.
edit "10.0.2.10"
next
edit "10.0.2.4"
next
edit "10.0.2.5"
next
edit "10.0.3.10"
next
edit "10.0.3.4"
next
edit "10.0.3.5"
next
edit "10.5.0.4"
next
edit "10.5.0.5"
next
edit "10.8.0.5"
next
edit "10.8.1.6"
next
end
next
end
FortiOS 6.4.0 adds tooltips to Fabric connector cards and other areas that reference the Fabric connector. Tooltips
provide information on the connector, associated actions, and policies and objects defined against the connectors,
driven primarily from tooltips throughout FortiOS.
In Security Fabric > External Connectors, when you hover over a Fabric connector, a tooltip appears that shows basic
information on its configuration.
If you click View Connector Objects from this tooltip, the Fabric Connector Objects pane shows this Fabric connector's
dynamic objects, such as filters. For an AWS Fabric connector, this pane also shows instance and CVE information.
If you click View Policies from the tooltip, the Fabric Connector Policies pane shows policies that are using dynamic
addresses from this Fabric connector.
If you click View Automation Rules from the tooltip, the Connector Automation Rules pane shows automation actions
that are using this Fabric connector.
When you edit an existing Fabric connector, the connector status, filter, and instance information displays.
Integrate FortiAnalyzer management into the Security Fabric using SAML SSO
When a FortiGate is configured as the SAML SSO IdP, FortiAnalyzer can register itself as the SP (FortiAnalyzer must be
running version 6.4.0). Once registered, FortiAnalyzer will be added automatically to the Security Fabric navigation in
FortiOS. A similar dropdown navigation is displayed in FortiAnalyzer where users can navigate to the FortiGate using
SAML SSO.
The following example assumes the root FortiGate (FGTA-1, server address 172.17.48.225:4431) has been configured
as the SAML SSO IdP, and FortiAnalyzer logging has been enabled in the Security Fabric settings.
3. Click Apply.
FortiAnalyzer will automatically register itself on the FortiGate as an appliance visible in the list of SPs. Go to
Security Fabric > Fabric Connectors, edit the Security Fabric Setup connector, then click Advanced Options to
view the list of SPs.
FortiAnalyzer will register itself on the FortiGate as an appliance. To view the configuration in FortiOS:
show system saml
config service-providers
edit "appliance_172.17.48.225:4253"
set prefix "csf_p0m9dvltwt28r3gt87runs2nb929mwz"
set sp-entity-id "http://172.17.48.225:4253/metadata/"
set sp-single-sign-on-url "https://172.17.48.225:4253/saml/?acs"
set sp-single-logout-url "https://172.17.48.225:4253/saml/?sls"
set sp-portal-url "https://172.17.48.225:4253/saml/login/"
config assertion-attributes
edit "username"
next
edit "profilename"
set type profile-name
next
end
next
end
5. In the toolbar, click the Security Fabric members dropdown to navigate between other FortiGates.
Address objects from external connectors that are learned by FortiManager are synchronized to FortiGate. These
objects can be grouped together with the FortiGate CLI to simplify selecting connector objects in the FortiGate GUI.
Multiple groups can be created.
This option is only available for objects that are synchronized from FortiManager.
Example
In this example, objects learned by the FortiManager from an Aruba ClearPass device are synchronized to the
FortiGate. Some of the objects are then added to a group called ClearPass to make them easier to find in the object list
when creating a firewall policy.
Prior to being grouped, the synchronized objects are listed under the FortiManager heading in the object lists.
EMS configurations are now centralized under one configuration card on the Fabric Connectors page. Certificates are
the main mode of authentication and authorization. The certificate validity is verified against the issuer CA, and then
presented to the user to authorize. A certificate attribute has been added to endpoint-control fctems, and EMS
certificates can be verified with execute fctems verify.
The following examples presume the EMS certificate has already been configured.
To configure an on-premise FortiClient EMS server to the Security Fabric in the GUI:
6. Click Accept.
The FortiClient EMS Status section displays a Successful connection and an Authorized certificate:
To configure a FortiClient EMS Cloud server to the Security Fabric in the GUI:
To configure an on-premise FortiClient EMS server to the Security Fabric in the CLI:
To configure a FortiClient EMS Cloud server to the Security Fabric in the CLI:
next
end
A new option under the FortiClient EMS settings consolidates the setup of EMS connectors to support EMS tags. EMS
tags are pulled and automatically synced with the EMS server. They are converted into read-only dynamic firewall
addresses that can be used in firewall policies, routing, and so on.
These examples presume the following have been configured in FortiClient EMS:
l Tags have been created on the Compliance Verification > Compliance Verification Rules page.
l There are registered users who match the defined tags that are visible on the Compliance Verification > Host Tag
Monitor page.
FCTEMS0580226579_ems137_winscp_tag: ID(155)
ADDR(100.100.100.141)
FCTEMS0580226579_ems137_win10_tag: ID(182)
ADDR(10.1.100.120)
# diagnose firewall dynamic address FCTEMS0580226579_ems137_vuln_critical_tag
FCTEMS0580226579_ems137_vuln_critical_tag: ID(118)
ADDR(10.1.100.120)
ADDR(10.1.100.198)
3. Configure a firewall policy that uses the EMS tag dynamic firewall address as a source.
A FortiNAC device can be added to the Security Fabric on the root FortiGate. After the device has been added and
authorized, you can log in to the FortiNAC from the FortiGate topology views.
Adding a FortiNAC to the Security Fabric requires a FortiNAC with a license issued in the year
2020 that includes an additional certificate. The device cannot be added if it has an older
license. Use the licensetool in the FortiNAC CLI to determine if your license includes the
additional certificate
1. On the FortNAC, configure telemetry and input the IP address of the root FortiGate.
2. On the root FortiGate, authorize the FortiNAC.
3. Verify the connection status in the topology views.
Optionally, you can also deny authorization to the FortiNAC to remove it from the list.
Joining a FortiNAC to the Security Fabric is not related to FortiNAC Tags FSSO
connectors. See FortiNAC endpoint connector for information about the FSSO
connector.
edit "FNVMCATM20000306"
set action accept
next
end
end
1. After the FortiNAC is authorized, go to Security Fabric > Physical Topology and confirm that it is included in the
topology.
2. Go to Security Fabric > Logical Topology and confirm the FortiNAC is also displayed there.
3. Run the following command in the CLI to view information about the FortiNAC device's status:
# diagnose sys csf downstream-devices fortinac
{
"path":"FG5H1E5818900126:FNVMCATM20000306",
"mgmt_ip_str":"10.1.100.197",
"mgmt_port":0,
"admin_port":8443,
"serial":"FNVMCATM20000306",
"host_name":"adnac",
"device_type":"fortinac",
"upstream_intf":"port2",
"upstream_serial":"FG5H1E5818900126",
"is_discovered":true,
"ip_str":"10.1.100.197",
"downstream_intf":"eth0",
"authorizer":"FG5H1E5818900126",
"idx":1
}
1. On the FortiGate, go to Security Fabric > Physical Topology or Security Fabric > Logical Topology.
2. Click on the FortiNAC and select Login to <serial_number>.
FortiOS takes the domains learned from LDAP user authentication, and uses DNS to discover the IP addresses of
Kerberos KDC servers for those domains.
The Exchange User connector is used to connect to Exchange, and other domain, servers and collect information about
users. The connector can be used in conjunction with an LDAP server. The Kerberos KDC service in the domain server
accepts queries to provide access and information about users in the domain.
By default, KDC discovery is automatic. If auto-discovery is disabled, the KDC IP address must be manually configured.
[NOTE]: If any errors are returned, try manually configuring IPs for the reported errors.
The Security Rating page is separated into three major scorecards: Security Posture, Fabric Coverage, and
Optimization, which provide an executive summary of the three largest areas of security focus in the Security Fabric.
This page is only visible on the root FortiGate or a standalone FortiGate. It is not visible on
downstream FortiGates.
The scorecards show an overall letter grade and breakdown of the performance in sub-categories. Clicking a scorecard
drills down to a detailed report of itemized results and compliance recommendations. The point score represents the net
score for all passed and failed items in that area. The report includes the security controls that were tested against,
linking to specific FSBP or PCI compliance policies. Click the FSBP and PCI buttons to reference the corresponding
standard.
Certain remediations marked with an EZ symbol represent configuration recommendations that support Easy Apply. In
the panel on the right, in the Recommendations section, click Apply to apply the changes to resolve the failed security
control.
The report table can be customized by adding more columns, such as Category, to view, filter, or sort the results based
on scorecard categories. Click the gear icon to customize the table.
Users can also export the reports as CSV or JSON files by clicking the Export dropdown.
To exit the current view, click the icon beside the scorecard title to return to the summary
view.
Security rating checks by default are scheduled to run automatically every four hours.
In FortiOS 6.4.0 there have been several changes to simplify the GUI for the Security Fabric menu.
l The Security Fabric Settings page has been renamed to Fabric Connectors and all the settings under it now show
up as separate cards. The cards that appear by default are: Security Fabric Setup, FortiAnalyzer Logging,
FortiManager, FortiSandbox, and Cloud Logging.
l The new Fabric Connectors menu contains a card view similar to External Connectors for various Fortinet
products (FortiSandbox, FortiManager, Cloud Logging, and so on).
l The Fabric Connectors menu has been renamed to External Connectors where third-party connectors are
configured.
l Each card has a separate page with its own edit dialog view.
l The topology tree, various statistics, and connectivity results have been moved from the main dialog to the gutter.
This page displays all configured Security Fabric Devices with their own card. The card also display the device
connectivity status with a green up arrow or a red down arrow.
The topology tree and notifications are displayed in the gutter. In this example, there is a device that requires
authorization.
This page displays the Security Fabric settings, including SAML SSO. In previous versions these settings were under the
FortiTelemetry section. The topology tree is also displayed in the gutter.
The gutter in this page displays the connection status and usage information.
FortiSandbox page
The gutter in this page displays the connection status, dynamic malware and URL threat detection information, and
FortiSandbox statistics.
4. Click OK.
The FortiGate will attempt to connect to the device to authorize it. Once the device is authorized, the device name
will no longer be displayed as Unknown Fabric Device in the card. The corresponding device name and icon are
displayed in the card.
On the Physical and Logical Topology pages, the Device Traffic and Device Count views now display endpoint groups as
donut charts. Each sector of the donut chart represents a different endpoint operating system. This new donut chart
display allows for faster loading times and provides more stability with zoom operations. This improvement is especially
useful for deployments with a large number of endpoints, while retaining the bubble pack endpoint view from earlier
versions of FortiOS.
To zoom in on a donut chart, click any chart sector. Each sector represents a different endpoint OS. Hovering over
each sector allows you to see the OS that the sector represents and the number of endpoints that have that OS
installed.
In this example, the endpoint group contains a total of nine endpoints, with the following OSes installed:
Orange Linux 2
Green FortiMail 1
Red FortiManager 1
Blue Other 5
To view the endpoint group in a bubble pack display, click the + button in the center of the donut chart. You can
view each individual endpoint in the bubble pack view.
To return to the donut chart display, click the - button at the top of the bubble.
A FortiGate-VM deployed on AWS can create a dynamic address based on an AWS Fabric connector and use an
autoscaling group (ASG) filter to obtain ASG members' primary IP addresses or NICs. You can use this feature for load
balancing to optimize network efficiency.
8. Click OK. Once saved, FortiOS lists the address under Policy & Objects > Addresses.
Support dynamic address objects in real servers under virtual server load
balance
FortiOS supports using dynamic firewall addresses in real servers under a virtual server load balancing configuration.
Combined with support for the autoscaling group filter (see Support filtering on AWS autoscaling group for dynamic
address objects on page 200), this enables you to use the FortiGate as a load balancer in AWS for an autoscaling
deployment. You do not need to manually change each server's IP address whenever a scale in/out action occurs, as
FortiOS dynamically updates the IP addresses following each scale in/out action.
Consider a scenario where the FortiGate-VM is deployed on AWS and load balancing for three servers. The Fabric
connector configured in FortiOS dynamically loads the server IP addresses. If a scale in action occurs, the load balancer
dynamically updates to load balance to the two remaining servers.
The following instructions assume the following:
1. An AWS Fabric connector is configured and up.
2. An AWS dynamic firewall address with a filter is configured.
To configure a dynamic address object in a real server under virtual server load balance:
set id 0
set uuid 0949dfbe-7512-51ea-4671-d3a706b09657
set comment ''
set type server-load-balance
set extip 0.0.0.0
set extintf "port1"
set arp-reply enable
set server-type http
set nat-source-vip disable
set gratuitous-arp-interval 0
set http-ip-header disable
set color 0
set ldb-method static
set http-redirect disable
set persistence none
set extport 80
config realservers
edit 1
set type address
set address "aws addresses"
set port 8080
set status active
set holddown-interval 300
set healthcheck vip
set max-connections 0
unset client-ip
next
end
set http-multiplex disable
set max-embryonic-connections 1000
next
end
The Monitoring & FortiView consoles were removed from the tree menu and now appear as widgets in the Dashboards
menu. The dashboard navigation has been improved for easy access to features such as creating a new dashboard.
New widgets were added to the Add Widget menu to create custom dashboards.
Dashboard options are now located in the dashboard banner for easier access and visibility. Users can use a widget to
create a standalone dashboard.
l The existing WiFi Health Monitor widgets were consolidated into a new default WiFi dashboard in the tree menu.
This dashboard contains the following widgets:
l FortiAP Status
l Channel Utilization
l Clients By FortiAP
l Signal Strength
l Rogue APs
l Historical Clients
l InterfereAPs
l Login Failures
A new Network dashboard was added to the tree menu. This dashboard contains the following widgets:
l Routing Monitor
l DHCP Monitor
l SD-WAN Monitor
l IPsec Monitor
l SSL-VPN Monitor
The FortiView module has been consolidated into dashboard widgets. The sections of the FortiView module that were
not incorporated into widgets were moved to the Log & Reports module in the tree menu. The Threat Map was removed
from the GUI.
The following FortiView widgets were created:
l FortiClient
l Firewall users
l Quarantine
3. Enter a search term in the Search field to find a widget, or scroll through the window.
1. Hover over a widget in the dashboard, and click Expand to Full Screen.
2. Configure the dashboard options, and click OK. The dashboard is added to the tree menu.
3. Click Add Widget and select the widgets you want to add to the new dashboard. Click Close when you are done.
Using the root FortiGate with disk to store historic user and device information
This backend implementation allows the root FortiGate in a Security Fabric to store historic user and device information
in a database on its disk. This will allow administrators to visualize users and devices over a period of time.
A new daemon, user_info_history, stores this data on the disk. The information source for the historical data will be the
user_info daemon, which would be recorded on the disk when user_info notifies user_info_history that a user has
logged out or the device is no longer connected.
When the Security Fabric is enabled, various objects such as addresses, services, and schedules are synced from the
upstream FortiGate to all downstream devices by default. The firewall object synchronization wizard helps identify
objects that are out of sync and resolves any conflicts. Objects that are out of sync are highlighted in yellow in the GUI.
In this example, the notifications icon displays a message that Firewall objects are not synchronized with all the
FortiGates in the Fabric. In the topology tree, Branch_Office_02 is highlighted in yellow because it is out of sync.
In this example, the tooltip displays a caution icon that the device is out of sync.
The FortiGate attempts to automatically resolve the conflicts. In this example, the address table requires manual
intervention.
b. Manual resolve:
i. Click Manual.
ii. Double-click an object and re-name it.
iii. Click OK.
6. Click Next.
An updated list of FortiGates and their synchronization status displays.
7. Click Close.
l The following example shows an object that exists on both upstream (Enterprise_Second_Floor) and
downstream (fshuva-test) FortiGates. On the downstream device, there is an existing gmail.com, and another
object, gmail.com_fshuva-test, that was resolved by adding the suffix of the upstream FortiGate name to the
end.
l In this example, an object created on the upstream FortiGate is synchronized to a downstream FortiGate.
CLI commands
Parameter Description
IPv6
This section lists other new features added to FortiOS related to protocols.
Geography-based IPv6 addresses can be created and applied to IPv6 firewall policies.
8. Click OK.
next
end
IPv4 and IPv6 central SNAT maps are displayed in the same table.
d. Click OK.
The matching SNAT traffic will be handled by the IPv6 central SNAT map.
3.602942 wan1 out 2000:172:16:200::199 -> 2000:172:16:200::55: icmp6: echo request seq 0
3.603236 wan1 in 2000:172:16:200::55 -> 2000:172:16:200::199: icmp6: echo reply seq 0
3.603249 wan2 out 2000:172:16:200::55 -> 2000:10:1:100::41: icmp6: echo reply seq 0
4.602559 wan2 in 2000:10:1:100::41 -> 2000:172:16:200::55: icmp6: echo request seq 1
4.602575 wan1 out 2000:172:16:200::199 -> 2000:172:16:200::55: icmp6: echo request seq 1
4.602956 wan1 in 2000:172:16:200::55 -> 2000:172:16:200::199: icmp6: echo reply seq 1
4.602964 wan2 out 2000:172:16:200::55 -> 2000:10:1:100::41: icmp6: echo reply seq 1
^C
8 packets received by filter
0 packets dropped by kernel
FortiGate supports FQDN when defining an IPsec remote gateway with a dynamically assigned IPv6 address. When
FortiGate attempts to connect to the IPv6 device, FQDN will resolve the IPv6 address even when the address changes.
Using FQDN to configure the remote gateway is useful when the remote end has a dynamic IPv6 address assigned by
their ISP or DHCPv6 server.
------------------------------------------------------
name=ddns6 ver=2 serial=2 2003:33:1:1::1:0->2003:33:1:1::22:0 dst_mtu=1500
bound_if=32 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/520 options[0208]=npu frag-rfc
run_state=0 accept_traffic=1 overlay_id=0
proxyid_num=1 child_num=0 refcnt=10 ilast=9 olast=9 ad=/0
stat: rxp=0 txp=0 rxb=0 txb=0
dpd: mode=on-idle on=1 idle=20000ms retry=3 count=0 seqno=72340
natt: mode=none draft=0 interval=0 remote_port=0
proxyid=ddns6 proto=0 sa=1 ref=2 serial=1
src: 0:2003:1:1:1::/64:0
dst: 0:::/0:0
SA: ref=3 options=10226 type=00 soft=0 mtu=1422 expire=42680/0B replaywin=2048
seqno=1 esn=0 replaywin_lastseq=00000000 itn=0 qat=0 hash_search_len=1
life: type=01 bytes=0/0 timeout=42901/43200
dec: spi=ac7a5718 esp=aes key=16 9976b66280cc49f500d8edca093e03fb
ah=sha1 key=20 4d94d76fc18df5a180c52e0a6cd5f430fde48fe8
enc: spi=7ab888ec esp=aes key=16 841a95d3ee5ea5108a2ba269b74998d1
ah=sha1 key=20 ed0b52d27776e30149ee36af4fd4626681c2a3a1
dec:pkts/bytes=0/0, enc:pkts/bytes=0/0
npu_flag=00 npu_rgwy=2003:33:1:1::22 npu_lgwy=2003:33:1:1::1 npu_selid=0 dec_npuid=0 enc_
npuid=0
run_tally=1
4. The tunnel can still connect to the FQDN address when the IPv6 address changes
.....................................................................................................................
ike 0:ddns6:46933:ddn6:47779: add IPsec SA: SPIs=ac7a5719/7ab888ed
ike 0:ddns6:46933:ddn6:47779: IPsec SA dec spi ac7a5719 key
16:0F27F1D1D02496F90D15A30E2C032678 auth 20:46564E0E86A054374B31E58F95E4458340121BCE
In a proxy-based policy, the TCP connection is proxied by the FortiGate. A TCP 3-way handshake can be established
with the client even though the server did not complete the handshake.
This option uses IPS to handle the initial TCP 3-way handshake. It rebuilds the sockets and redirects the session back to
proxy only when the handshake with the server is established.
No session timeout
To allow clients to permanently connect with legacy medical applications and systems that do not have keepalive or
auto-reconnect features, the session timeout can be set to never for firewall services, policies, and VDOMs.
The options to disable session timeout are hidden in the CLI.
The UUID field has been added to all policy types, including multicast, local-in (IPv4 and IPv6), and central SNAT
policies. UUIDs are automatically generated by FortiOS when the policy is created and can be viewed in the CLI using
the show command.
1. Create a policy:
config firewall multicast-policy
edit 1
set comments "multicast-policy-1"
set logtraffic enable
set srcintf "wan1"
set dstintf "wan2"
set srcaddr "all"
set dstaddr "230-0-0-1" "test-multicast-addr-1"
set snat enable
set snat-ip 10.1.100.188
set dnat 229.1.2.19
set auto-asic-offload disable
next
end
next
end
1. Create a policy:
config firewall local-in-policy
edit 1
set intf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set service "PING"
set schedule "always"
set comments "test-1"
next
end
1. Create a policy:
config firewall central-snat-map
edit 1
set srcintf "wan2"
set dstintf "wan1"
set orig-addr "all"
set dst-addr "all"
set orig-port 11111
set nat-ippool "Overload-ippool-1"
set nat-port 22222
next
end
FortiGate models that use FortiASIC CP9 and SoC3 chips periodically reseed a PRNG (Pseudo-Random Number
Generator) in normal (non-CC/FIPS) mode.
A downstream proxy FortiGate that needs to be authenticated by the upstream web proxy can use the basic
authentication method to send its username and password, in the base64 format, to the upstream web proxy for
authentication. If the authentication succeeds, web traffic that is forwarded from the downstream proxy FortiGate to the
upstream proxy can be accepted and forwarded to its destinations.
In this example, a school has a FortiGate acting as a downstream proxy that is configured with firewall policies for each
user group: students, and staff. In each policy, a forwarding server is configured to forward the web traffic to the
upstream web proxy.
The username and password that the upstream web proxy uses to authenticate the downstream proxy are configured on
the forwarding server, and are sent to the upstream web proxy with the forwarded HTTP requests.
Username Password
On the downstream FortiGate, configure forwarding servers with the usernames and passwords for authentication on
the upstream web proxy, then apply those servers to firewall policies for transparent proxy. For explicit web proxy, the
forwarding servers can be applied to proxy policies.
When the transparent proxy is configured, clients can access websites without configuring a web proxy in their browser.
The downstream proxy sends the username and password to the upstream proxy with forwarded HTTP requests to be
authenticated.
This feature is only available on FortiGate Rugged 30D, which supports 802.1p.
SNMP bridge MIB module support is available on FortiGates with 802.1p to monitor STP activity.
The following OIDs have been added:
dot1dBridge.dot1dBase.dot1dBaseBridgeAddress 1.3.6.1.2.1.17.1.1
dot1dBridge.dot1dBase.dot1dBaseNumPorts 1.3.6.1.2.1.17.1.2
dot1dBridge.dot1dBase.Type 1.3.6.1.2.1.17.1.3
dot1dBridge.dot1dBase.dot1dBasePortEntry.dot1dBasePortIfIndex 1.3.6.1.2.1.17.1.4.1.2
dot1dBridge.dot1dBase.dot1dBasePortEntry.dot1dBasePortCircuit 1.3.6.1.2.1.17.1.4.1.3
dot1dBridge.dot1dBase.dot1dBasePortEntry.dot1dBasePortDelayExceededDiscards 1.3.6.1.2.1.17.1.4.1.5
dot1dBridge.dot1dBase.dot1dBasePortEntry.dot1dBasePortMtuExceededDiscards 1.3.6.1.2.1.17.1.4.1.5
dot1dBridge.dot1dStp.dot1dStpProtocolSpecification 1.3.6.1.2.1.17.2.1
dot1dBridge.dot1dStp.dot1dStpPriority 1.3.6.1.2.1.17.2.2
dot1dBridge.dot1dStp.dot1dStpDesignatedRoot 1.3.6.1.2.1.17.2.5
dot1dBridge.dot1dStp.dot1dStpRootCost 1.3.6.1.2.1.17.2.6
dot1dBridge.dot1dStp.dot1dStpRootPort 1.3.6.1.2.1.17.2.7
dot1dBridge.dot1dStp.dot1dStpMaxAge 1.3.6.1.2.1.17.2.8
dot1dBridge.dot1dStp.dot1dStpHelloTime 1.3.6.1.2.1.17.2.9
dot1dBridge.dot1dStp.dot1dStpForwardDelay 1.3.6.1.2.1.17.2.11
dot1dBridge.dot1dStp.dot1dStpBridgeMaxAge 1.3.6.1.2.1.17.2.12
dot1dBridge.dot1dStp.dot1dStpBridgeHelloTime 1.3.6.1.2.1.17.2.13
dot1dBridge.dot1dStp.dot1dStpBridgeForwardDelay 1.3.6.1.2.1.17.2.14
dot1dBridge.dot1dStp.dot1dStpPortEntry.dot1dStpPortPriority 1.3.6.1.2.1.17.2.15.1.2
dot1dBridge.dot1dStp.dot1dStpPortEntry.dot1dStpPortState 1.3.6.1.2.1.17.2.15.1.3
dot1dBridge.dot1dStp.dot1dStpPortEntry.dot1dStpPortEnable 1.3.6.1.2.1.17.2.15.1.4
dot1dBridge.dot1dStp.dot1dStpPortEntry.dot1dStpPortPathCost 1.3.6.1.2.1.17.2.15.1.5
2. On the SNMP server, run snmpwalk on the OID from the newly added bridge MIB.
The OID is for the bridge hello time. The SNMP server is able to query the bridge hello time from the FortiGate:
root@ControlPC:~# snmpwalk -v1 -c REGR-SWITCH 172.16.200.2 1.3.6.1.2.1.17.2.13
BRIDGE-MIB::dot1dStpBridgeHelloTime.0 = INTEGER: 200 centi-seconds
SNMPv3 supports HMAC-SHA-2 authentication protocols based on the following SHA-2 hash functions: SHA-224, SHA-
256, SHA-384, and SHA-512.
The RIP update timer can be set to a minimum value of 1 second. The previous minimum timer value was 5 seconds.
Dynamic SSO user groups can be used in place of address objects when configuring SSL VPN policies. This allows
dynamic IP addresses to be used in SSL VPN policies. A remote user group can be used for authentication while an
FSSO group is separately used for authorization. Using a dummy policy for remote user authentication and a policy for
FSSO group authorization, FSSO can be used with SSL VPN tunnels
This image shows the authentication and authorization flow:
In this example, FortiAuthenticator is used as a RADIUS server. It uses a remote AD/LDAP server for authentication,
then returns the authentication results to the FortiGate. This allows the client to have a dynamic IP address after
successful authentication.
First, on the LDAP server, create two users each in their own group, user142 in group pc_group1, and user143 in group
pc_group2.
5. Create an SSL VPN portal and assign the RADIUS user group to it:
config vpn ssl web portal
edit "testportal"
set tunnel-mode enable
set ipv6-tunnel-mode enable
set web-mode enable
...
next
end
config vpn ssl settings
...
set default-portal "full-access"
config authentication-rule
edit 1
set groups "rad_group"
set portal "testportal"
next
end
end
7. Create one dummy policy for authentication only, and two normal policies for authorization:
config firewall policy
edit 1
set name "sslvpn_authentication"
set srcintf "ssl.vdom1"
set dstintf "port1"
set srcaddr "all"
set dstaddr "none"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set groups "rad_group"
set nat enable
next
edit 3
set name "sslvpn_authorization1"
set srcintf "ssl.vdom1"
set dstintf "port1"
set srcaddr "all"
set dstaddr "pc4"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set groups "fsso_group1"
set nat enable
next
edit 4
set name "sslvpn_authorization2"
set srcintf "ssl.vdom1"
set dstintf "port1"
set srcaddr "all"
set dstaddr "pc5"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set groups "fsso_group2"
set nat enable
next
end
6. Click OK.
7. Configure an accounting server with the following CLI command:
config user radius
edit rad150
set acct-interim-interval 600
config accounting-server
edit 1
5. Click OK.
To create user groups for each of the FSSO groups in the GUI:
5. Click OK.
6. Add a second user group with PC_GROUP2 as a member:
CN=PC_GROUP1,OU=TESTING,DC=FSSO-QA,DC=COM
7. Click OK.
To create an SSL VPN portal and assign the RADIUS user group to it in the GUI:
Confirmation
On Client 1, log in to FortiClient using user142. Traffic can go to pc4 (172.16.200.44), but cannot go to pc5
(172.16.200.55).
On Client 2, log in to FortiClient using user143. Traffic can go to pc5 (172.16.200.55), but cannot go to pc4
(172.16.200.44).
On the FortiGate, check the authenticated users list and the SSL VPN status:
10.212.134.200, USER142
type: fsso, id: 0, duration: 173, idled: 173
server: AD_CollectAgent
packets: in 0 out 0, bytes: in 0 out 0
user_id: 16777229
group_id: 3 33554434
group_name: fsso_group1 CN=PC_GROUP1,OU=TESTING,DC=FSSO-QA,DC=COM
10.212.134.200, user142
type: fw, id: 0, duration: 174, idled: 174
expire: 259026, allow-idle: 259200
flag(80): sslvpn
server: rad150
packets: in 0 out 0, bytes: in 0 out 0
group_id: 4
group_name: rad_group
10.212.134.201, USER143
type: fsso, id: 0, duration: 78, idled: 78
server: AD_CollectAgent
packets: in 0 out 0, bytes: in 0 out 0
group_id: 1 33554435
group_name: fsso_group2 CN=PC_GROUP2,OU=TESTING,DC=FSSO-QA,DC=COM
10.212.134.201, user143
type: fw, id: 0, duration: 79, idled: 79
expire: 259121, allow-idle: 259200
flag(80): sslvpn
server: rad150
packets: in 0 out 0, bytes: in 0 out 0
group_id: 4
group_name: rad_group
Source NAT (SNAT) support has been added for IPv4 and IPv6 policies with virtual wire pair (VWP) interfaces.
2. Create the IP pool. The IP pool must have a different subnet than the VWP peers:
config firewall ippool
edit "vwp-pool-1"
set startip 172.16.222.99
set endip 172.16.222.100
next
end
The Managed FortiSwitch page includes two new display options: List view and Group view.
Group view:
Except for desktop models, all other platforms' table size of VIP real servers have increased as follows:
l 1U platforms increased from 8 to 16
l 2U platforms increased from 32 to 64
l High-end platforms increased from 32 to 256
In the system performance statistics event log, waninfo (logID 40704) collects WAN interface information for
analyzing purpose by FortiAnalyzer. The log supports up to three interfaces assigned a WAN role and the interfaces are
displayed in alphabetical order.
Sample logs
NetFlow data can be routed over the HA management interface when the ha-direct option is enabled. The
secondary unit does not send out any flow data whether it is running in A-A or A-P.
1. On the master unit (FortiGate A), configure the HA and mgmt1 interface settings:
(global) # config system ha
set group-name "test-ha"
set mode a-p
set password ENC
set hbdev "port6" 50
set hb-interval 4
set hb-lost-threshold 10
set session-pickup enable
set ha-mgmt-status enable
config ha-mgmt-interfaces
edit 1
set interface "mgmt1"
next
end
set override enable
set priority 200
set ha-direct enable
end
(global) # config system interface
edit "mgmt1"
set ip 10.6.30.111 255.255.255.0
set allowaccess ping https ssh http telnet fgfm
set type physical
set dedicated-to management
set role lan
set snmp-index 1
next
end
2. On the secondary unit (FortiGate B), configure the HA and mgmt1 interface settings:
(global) # config system ha
set group-name "test-ha"
set mode a-p
set password ENC
set hbdev "port6" 50
set hb-interval 4
set hb-lost-threshold 10
set session-pickup enable
set ha-mgmt-status enable
config ha-mgmt-interfaces
edit 1
set interface "mgmt1"
next
end
set override enable
set priority 100
set ha-direct enable
end
(global) # config system interface
edit "mgmt1"
set ip 10.6.30.112 255.255.255.0
set allowaccess ping https ssh http telnet fgfm
set type physical
set dedicated-to management
set role lan
set snmp-index 1
next
end
When the ha-direct option is enabled in config system ha, FortiOS is no longer allowed to set
source-ip in config system netflow.
5. Verify that the NetFlow packets are being sent by the mgmt1 IP:
(vdom1) # diagnose sniffer packet any 'udp and port 2055' 4
interfaces=[any]
filters=[udp and port 2055]
8.397265 mgmt1 out 10.6.30.111.1992 -> 10.6.30.59.2055: udp 60
23.392175 mgmt1 out 10.6.30.111.1992 -> 10.6.30.59.2055: udp 188
23.392189 mgmt1 out 10.6.30.111.1992 -> 10.6.30.59.2055: udp 60
^C
3 packets received by filter
0 packets dropped by kernel
6. On the secondary device (FortiGate B), change the priority so that it becomes the master:
(global) # config system ha
set priority 250
end
7. Verify the NetFlow status on FortiGate A, which is using the new master's mgmt1 IP:
(global) # diagnose test application sflowd 3
===== Netflow Vdom Configuration =====
Global collector:10.6.30.59:[2055] source ip: 0.0.0.0 active-timeout(minutes):1 inactive-
timeout(seconds):15
____ vdom: vdom1, index=3, is master, collector: disabled (use global config) HA_direct
|_ coll_ip:10.6.30.59[2055],src_ip:10.6.30.112,seq_num:8,pkts/time to next template:
16/55
|_ exported: Bytes:0, Packets:0, Sessions:0 Flows:0
|____ interface:port1 sample_direction:both device_index:9 snmp_index:3
8. Verify that the NetFlow packets use the new source IP on FortiGate B:
(vdom1) # diagnose sniffer packet any 'udp and port 2055' 4
interfaces=[any]
filters=[udp and port 2055]
7.579574 mgmt1 out 10.6.30.112.3579 -> 10.6.30.59.2055: udp 60
22.581830 mgmt1 out 10.6.30.112.3579 -> 10.6.30.59.2055: udp 60
29.038336 mgmt1 out 10.6.30.112.3579 -> 10.6.30.59.2055: udp 1140
^C
3 packets received by filter
0 packets dropped by kernel
The Managed FortiSwitch page topology view has been improved to illustrate the FortiSwitch link status. The following
changes have been made in the GUI:
l The FortiSwitch faceplate was replaced with a box that displays ports used for FortiLink management.
l Hovering over switch ports and the links between switches displays a tooltip, which shows the port on both sides of
a link.
l The MC-LAG ICL and STP discarding statuses are color coded.
l The MC-LAG cluster is enclosed in a box with an MC-LAG label.
l A dropdown list is available to switch between Managed ForitSwitch pages of downstream Security Fabric
members.
l FortiSwitch names and serial numbers can be used as parameters in the Search function.
In the following example, FG-500E (Building-1) is the Fabric root device and FG-90E (Building-2) is the downstream
device. There are six FortiSwitches managed by FG-500E and two FortiSwitches managed by FG-90E.
1. On the root device, go to WiFi & Switch Controller > Managed FortiSwitch.
2. In the toolbar menu, select Topology from the dropdown list.
The MC-LAG cluster is enclosed in a box, and the MC-LAG ICL and STP discarding statuses are color coded:
4. In the toolbar menu, use the dropdown list to view the Managed ForitSwitch page of the downstream Security
Fabric member.
2. On the FortiGate, go to Network > Interfaces to see all of the available interfaces.
next
edit "port2"
set vdom "root"
set type physical
set snmp-index 3
next
...
edit "port23"
set vdom "root"
set type physical
set snmp-index 24
next
edit "port24"
set vdom "root"
set type physical
set snmp-index 25
next
edit "ssl.root"
set vdom "root"
set type tunnel
set alias "SSL VPN interface"
set snmp-index 2
next
end
WLAN IDs remain the same after a daemon restart or a controller reboot. BSSIDs also remain the same, which keeps
the WiFi service stable. This is confirmed by read-only commands in the downloaded backup FortiOS configuration file
and the iwconfig output from FortiAP.
This feature adds support for RADIUS user group membership information that is returned in the filter-Id (11) and class
(25) attributes in RADIUS Access-Accept messages. The group membership information can be used for group
matching in FortiGate user groups in firewall policies and for FortiGate wildcard administrators with remote RADIUS
authentication.
In this example, a FortiAuthenticator is used as the RADIUS server. A local RADIUS user on the FortiAuthenticator is
configure with two groups in the filter-Id attribute: okta-group1 and okta-group2.
To create the RADIUS user and set the attribute type to override group information:
FortiOS will only use the configured filter-Id attribute, even if the RADIUS server sends group names in both class and
filter-id attributes. To return group membership information from the class attribute instead, set group-override-
attr-type to class.
7. Click OK.
The remote server is added to the Remote Groups table.
8. Click OK.
9. Add the new user group to a firewall policy and generate traffic on the client PC that requires firewall
authentication, such as connecting to an external web server.
10. After authentication, on the FortiGate, verify that traffic is authorized in the traffic log:
a. Go to Log & Report > Forward Traffic.
b. Verify that the traffic was authorized.
To use the remote user group with group match in a system wildcard administrator configuration:
Official FortiOS firmware images are signed by the Fortinet CA. The BIOS checks the validity of an image when it is
uploaded to the device. If the image is not signed by the Fortinet CA, a warning message is shown in the GUI.
Unsigned image:
Signed image:
ICAP HTTP responses can be forwarded or bypassed based on the HTTP header value and status code.
When configuring the ICAP profile, if response is enabled, the respmod-default-action option can be
configured:
l If respmod-default-action is set to forward, FortiGate will treat every HTTP response, and send ICAP
requests to the ICAP server.
l If respmod-default-action is set to bypass, FortiGate will only send ICAP requests if the HTTP response
matches the defined rules, and the rule's action is set to forward.
When configuring a response rule:
l The http-resp-status-code option is configured to specific HTTP response codes. If the HTTP response
has any one of the configured values, then the rule takes effect.
l Multiple header value matching groups can be configured. If the header value matches one of the groups, then the
rule takes effect.
l If both status codes and header values are specified in a rule, the response must match at least one of each.
The UTM ICAP log category is used for logging actions when FortiGate encounters errors with the ICAP server, such as
no service, unreachable, error response code, or timeout. If an error occurs, a traffic log and an associated UTM ICAP
log will be created.
Example
The FortiGate acts as a gateway for the client PC, and connects to a reachable ICAP server. The ICAP server can be in
NAT, transparent, or proxy mode.
In this example, client request HTTP responses will be forwarded to the ICAP server from all hosts if they have an HTTP
status code of 200, 301, or 302, and have content-type: image/jpeg in the their header.
The logs show that, in this case, the ICAP services stopped before the access. When the client tried to access HTTP
and ICAP took effect, the FortiGate sent the ICAP request to the ICAP server and received an error. The client sees a
502 Bad Gateway message, and FortiGate writes the two logs. In the GUI, the logged traffic is displayed as
Result: Deny: UTM Blocked.
FortiOS 6.4 supports FortiAP NPI models FAP431F and FAP433F. You can use the GUI or CLI to create and edit
WTP profiles for platform types 431F and 433F.
1. Go to Wifi & Switch Controller > FortiAP Profiles, and click Create New. The New FortiAP Profile window opens.
2. From the Platform dropdown, select FAP431F or FAP433F. The default profile opens.
l Dedicated scan is enabled by default.
l Radio 1 and Radio 2 display Disabled and Access Point mode.
l Radio 3 displays Disabled and Dedicated Monitor mode.
FortiWiFi-60E (radio-1) # en
FortiWiFi-60E (FAP431F-default) # conf radio-2
FortiWiFi-60E (radio-2) # set band ?
802.11a 802.11a.
802.11n-5G 802.11n/a at 5GHz.
802.11ac 802.11ac/n/a.
802.11ax-5G 802.11ax/ac/n/a at 5GHz.
802.11n-5G-only 802.11n at 5GHz.
802.11ac,n-only 802.11ac/n.
802.11ac-only 802.11ac.
802.11ax,ac-only 802.11ax/ac at 5GHz.
802.11ax,ac,n-only 802.11ax/ac/n at 5GHz.
802.11ax-5G-only 802.11ax at 5GHz.
FortiWiFi-60E (radio-2) # en
FortiWiFi-60E (FAP431F-default) #
ddscan is enabled by default when creating a new profile for FAP43xF models
Radio 3 of FAP43xF models will only support monitor, sniffer, and disable mode when ddscan is enabled
or disabled
This improvement supports the visibility of autoscale VM clusters on FortiManager, and its ability to read cluster
information from new slave members.
When a FortiGate VM slave is added to a cluster, the new slave member can query the cluster about its autoscale
environment. FortiManager can then run this query on the new slave member to update its autoscale record.
From the slave, you can see cluster checksums and the master device.
# diagnose sys ha checksum autoscale-cluster
================== FGTAZ000000000CD ==================
is_autoscale_master()=0
debugzone
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
checksum
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
================== FGVM04TM00000066 ==================
is_autoscale_master()=1
debugzone
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
checksum
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
================== FGVM00000000056 ==================
is_autoscale_master()=0
debugzone
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
checksum
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
================== FGTAZ0000000003D ==================
is_autoscale_master()=0
debugzone
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
checksum
global: 56 49 b3 02 f2 b7 5b 82 ec 2d c2 1a ff 80 8c 79
root: bf 18 cf 83 1e 04 c3 04 4c e4 66 bc 38 fe 3a dc
all: 77 06 d0 89 6e 06 c0 86 17 98 53 72 33 85 ae ff
HA sync information:
autoscale_count=69. current_jiffies=41235125
10.0.0.6, timeo=31430, serial_no=FGVM04TM19001766
10.0.0.7, timeo=31430, serial_no=FGVM04TM19008156
10.0.0.5, timeo=31430, serial_no=FGTAZR7UZRKKNR3D
connections = 0
The SNMP DHCP event contains three traps and one query.
Traps are sent when:
l DHCP server IP pool usage reaches 90%
l DHCP server detect an IP address that is already in use
l DHCP client receives DHCP NAK
SNMP queries are accepted for DHCP lease usage information (OID = 1.3.6.1.4.1.12356.101.23). The query result is
based on the leased out percentage.
5. Click OK.
FortiGates with a firmware upgrade license and that are connected to FortiGuard display upgrade notifications in the
setup window, the banner, and the FortiGate menu. You can use the CLI console to enable or disable the notifications.
1. When you log in to FortiGate, the FortiGate Setup window includes an Upgrade firmware step. Click Begin.
2. Follow the steps in the Setup Progress, then click Review Firmware Upgrade.
3. Notifications also appear next to the Firmware page in the menu, and below the Notification icon in the banner.
The diagnose npu np6 xaui-hash command takes a 6-tuple input of the traffic stream to identify the NP6 XAUI
link that the traffic passes through.
This command is only available on the 38xxD, 39xxD, 34xxE, 36xxE, and 5001E series devices.
Syntax
diagnose npu np6 xaui-hash <interface> <proto> <src_ip> <dst_ip> <src_port> <dst_
port>
Variable Description
<interface> The network interface that the packets are coming from.
Variable Description
<proto> The proto number, 6 for TCP or 17 for UDP.
<src_ip> The source IP address.
<dst_ip> The destination IP address.
<src_port> The source port.
<dst_port> The destination port.
Examples
# diagnose npu np6 xaui-hash port1 6 1.1.1.1 2.2.2.1 4567 80
NP6_ID: 0, XAUI_LINK: 2
# diagnose npu np6 xaui-hash port1 6 1.1.1.1 2.2.2.1 4567 200
NP6_ID: 6, XAUI_LINK: 2
# diagnose npu np6 xaui-hash port1 6 1.1.1.1 2.2.2.1 4567 20
NP6_ID: 1, XAUI_LINK: 2
# diagnose npu np6 xaui-hash port1 6 1.1.1.1 2.2.2.1 4567 23
NP6_ID: 1, XAUI_LINK: 1
The NP6_ID is the NP index of the model that is being used. It can be found with the diagnose npu np6 port-
list command.
When an interface is in DHCP addressing mode, DHCP client options can be configured in the CLI. For example, a
vendor class identifier (usually DCHP client option 60) can be specified so that a request can be matched by a specific
DHCP offer.
Multiple options can be configured, but any options not recognized by the DHCP server are discarded.
Variable Description
code <integer> DHCP client option code (0 - 255, default = 0).
See Dynamic Host Configuration Protocol (DHCP) and Bootstrap Protocol
(BOOTP) Parameters for a list of possible options.
type {hex | string | ip | DHCP client option type (default = hex).
fqdn}
value <string> DHCP client option value.
ip <ip> DHCP client option IP address. This option is only available when type is ip.
For RADIUS authentication and authorization, the RADIUS client (the FortiGate) passes the username, password, and
NAS-IP to the RADIUS server in its access request. The RADIUS server authenticates and authorizes based on this
information. Each RADIUS server can be configured with multiple NAS-IPs for authenticating different groups and NAS
clients.
On the FortiGate, configuring the NAS-IP in the realm settings overrides the RADIUS server setting, allowing multiple
NAS-IPs to be mapped to the same RADIUS server.
In this example, the user wants to present one FortiGate VDOM with different NAS-IPs to a single RADIUS server based
on specific rules.
3. Configure SSL-VPN with an authentication rule that includes the user group and the realm:
config vpn ssl settings
...
config authentication-rule
edit 1
set groupd "radgrp"
set portal "testportal1"
set realm "realm1"
next
end
end
Because the RADIUS server and NAS-IP are specified in realm1, its NAS-IP is used for authentication.
Application control signatures that support parameters (such as SCADA protocols) can have multiple parameters
grouped together and matched at the same time. To match a member, traffic must match all of the parameters. To
match a signature, at least one member must be matched.
5. Click Create New to add parameters. Multiple parameters can be added to a member.
6. Click OK.
8. Click OK.
next
end
next
edit 4
config members
edit 1
set name "application"
set value "next"
next
edit 2
set name "application"
set value "pass"
next
end
next
end
next
edit 2
set category 2 6
next
end
next
end
IEC 61850 is a SCADA protocol whose services are mapped to a number of protocols, including MMS services.
MMS/ICCP detection is supported in IPS. The purpose of the MMS dissectors is to identify every IEC 61850 service to
distinguish different MMS/ICCP messages. IPS engine 6.0.12 and later support MMS dissectors.
The following scenarios are also supported:
l Multiple MMS PDUs are transferred in one TCP payload, and the IPS engine identifies individuals.
l An MMS message is split over multiple TCP segments, where MMS runs over COTP segments.
l ICCP/TASE.2 that also uses MMS transport (ISO transport over TCP for ICCP) is detected.
Industrial signatures must be enabled in the global IPS settings to receive MMS/ICCP signatures. By default, industrial
signatures are excluded.
config ips global
set exclude-signatures none
end
Below are some industrial signatures for MMS/ICCP messages that can be detected by the IPS engine. This is not an
exhaustive list.
l MMS_GetNameList.Request
l MMS_GetNamedVariableListAttributes.Request
l MMS_GetVariableAccessAttributes.Request
l MMS_Identify.Request
l MMS_Initiate.Request
l MMS_Read.Request
l MMS_Reset.Request
l ICCP_Transfer.Reporting
l ICCP_Create.Dataset
l ICCP_Abort
l ICCP_Start.Transfer.DSTransferSet
l ICCP_Get.Dataset.Element.Values
l ICCP_Get.Next.DSTransfer.Set.Value
l ICCP_Delete.Dataset
l ICCP_Start.Transfer.IMTransferSet
Diagnose command
The COTP dissector adds support for identifying every MMS PDU, and let the IPS engine separate them, like the
Modbus and IEC-104 services for example.
Log samples
MMS dissectors can be triggered, and MMS/ICCP signatures can be monitored and logged.
Log samples:
IP address tooltips
Hovering over an IP address on different GUI pages (for example, Dashboard > Top Policies, Log & Report > Forward
Traffic, Security Fabric > External Connectors) displays a tooltip that contains additional information about the IP such
as its country, location, owner, resolved domains, and internet services.
Tooltip examples
Security Fabric > External Connectors page in the Threat Feeds section. Hover over a card and click View Entries:
1. Enable NPU offloading when doing interface-based traffic shaping according to the egress-shaping-profile:
config system npu
set intf-shaping-offload enable
end
set class-id 2
set priority low
set guaranteed-bandwidth-percentage 1
set maximum-bandwidth-percentage 5
next
end
next
end
Some address objects logically belong to the same device, such as two IPs from the same computer. These address
objects can be grouped into an address folder, which is an exclusive list of address objects that do not appear in other
address groups or folders.
In the CLI, the folder type can be set after the member list is already populated. If the member list contains an
incompatible entry, then the setting will be discarded when the next/ end command is issued. If the folder type is set
before the member list is populated, then the possible member entry list will be filtered according to the selected type.
5. Click OK.
6. In the address table, expand the Address Group section to view the folder (dev1-addr-comb). The expandable
folder view shows the address folder's child objects:
notes
For an IPsec tunnel, the gateway IP address (giaddr) can be defined on a DHCP relay agent. Both IPv4 and IPv6
addresses are supported. An IPsec tunnel with mode-config and DHCP relay cannot specify a DHCP subnet range to the
DHCP server.
The DHCP server assigns an IP address based on the giaddr set on the IPSec phase1 interface and sends an offer to
this subnet. The DHCP server must have a route to the specified subnet giaddr.
Example
set dhgrp 5
set assign-ip-from dhcp
set dhcp6-ra-linkaddr 2000:11:11:11::1
set psksecret **********
set dpd-retryinterval 60
next
end