FortiOS 7.4.0 New - Features - Guide751 800
FortiOS 7.4.0 New - Features - Guide751 800
On FortiOS 7.4.2 and FortiOS 7.4.3, automatic firmware upgrade only allows upgrading to a
Mature build. For information about firmware maturity, see Firmware maturity levels.
If Disable automatic patch upgrades is selected, this can be changed later from the
System > Firmware & Registration page by clicking the Disable automatic patch upgrades
notification.
4. The Enable Automatic Patch Upgrades dialog opens. Select I acknowledge and click OK to proceed.
The FortiGate will be updated based on the configured schedule when a new patch is available.
5. An email is sent to alert the administrator that the firmware upgrade schedule has changed.
6. Once a patch is detected, an email is sent to alert the administrator that a new image installation is scheduled.
7. After the image installation is completed, an email is sent to alert the administrator that the federated upgrade is
complete.
A selected availability (SA) version and label identifies special builds that are provided to customers to use for a long
time. The SA version uses an odd number as the minor version and a four digit number for the patch version. The
SA version and label are visible in the GUI and CLI.
SA builds are dual-signed by the Fortinet CA and a third-party CA.
In the following example, special build 0107 is based on FortiOS 7.4.0 build 8016 and is labeled v7.5.0107 build8016
(SA).
1. Go to Dashboard > Status > System Information. The Firmware option displays the SA version and label of
v7.5.0107 build8016 (SA).
2. On the top-right of the banner, click <administrator name>, such as admin. The SA version and label is displayed.
3. On the top-left corner of the banner, click the FortiGate name. A tooltip displays the SA version and label.
The commands of an uncommitted batch transaction can be viewed through the REST API from an API client with the
transaction-show option. Previously administrators could only view commands of a batch transaction through the
CLI.
Example
In this example, use the REST API to change the admin timeout of the FortiGate. Before committing the change, check
the cached commands to view the pending changes. After committing the change, you cannot view the commands
because the transaction is complete.
response:
{
"http_method":"POST",
"revision":"df4217a73f57e09b766605b683fb5caf",
"revision_changed":false,
"results":{
"transaction-id":1
},
"vdom":"vdom1",
"action":"transaction-start",
"status":"success",
"http_status":200,
"serial":"<serial number>",
"version":"v7.4.2",
"build":2484
2. Change the admin timeout on the FortiGate for the started transaction.
For transaction ID 1, the admintimeout is set to 123.
user@test:~$ curl -k -X 'PUT' 'https://<ip address>/api/v2/cmdb/system/global?access_
token=j8Gcs836dQsqbrd9637Qs770s0f13Q' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-TRANSACTION-ID: 1' \
-d '{
"admintimeout": 123
}'
response:
{
"http_method":"PUT",
"revision":"c8263664d73eeff0e47db5e142fa5306",
"revision_changed":false,
"status":"success",
"http_status":200,
"vdom":"vdom1",
"path":"system",
"name":"global",
"serial":"<serial number>",
"version":"v7.4.2",
"build":2484
}
response:
{
"http_method":"GET",
"revision":"df4217a73f57e09b766605b683fb5caf",
"results":[
" config global",
" config system global",
4. Commit transaction ID 1:
user@test:~$ curl -k -X 'POST' 'https://<ip address>/api/v2/cmdb?action=transaction-
commit&vdom=vdom1?access_token=j8Gcs836dQsqbrd9637Qs770s0f13Q' -H 'accept:
application/json' -H 'Content-Type: application/json' -d '{
"transaction-id": 1
}'
response:
{
"http_method":"POST",
"revision":"df4217a73f57e09b766605b683fb5caf",
"revision_changed":false,
"status":"success",
"http_status":200,
"vdom":"vdom1",
"action":"transaction-commit",
"serial":"<serial number>",
"version":"v7.4.2",
"build":2484
}
5. Check the commands for transaction 1. An error is returned as expected because transaction 1 is complete. No
cached commands are available to be viewed.
user@test:~$ curl -k -X GET' 'https://<ip address>/api/v2/cmdb?action=transaction-
show&transaction-id=1&access_token=j8Gcs836dQsqbrd9637Qs770s0f13Q' -H 'accept:
application/json'
response:
{
"http_method":"GET",
"revision":"df4217a73f57e09b766605b683fb5caf",
"error":-651,
"status":"error",
"http_status":500,
"vdom":"vdom1",
"action":"transaction-show",
"serial":"<serial number>",
"version":"v7.4.2",
"build":2484
}
Separate the SSHD host key from the administration server certificate - 7.4.2
Separating the SSHD host key from the administration server certificate addresses the issue where the administration
server key tends to overwrite one of the key files, which can lead to complications. This resolves the problem where the
SSH module regenerates the host key files after a factory reset. This action previously prompted a warning message
when an older SSH client attempted to log in to the FortiGate using SSH.
config system global
set ssh-hostkey-override {enable | disable}
set ssh-hostkey-password <password>
set ssh-hostkey <encrypted_private_key>
end
The ssh-hostkey-algo option under config system global supports ECDSA 384 and ECDSA 256, allowing the
SSHD to accommodate the most commonly used host key algorithms.
1. Using the ssh-keygen tool, generate the host key (ecdsa-sha2-nistp384 is used in this example).
2. Configure the SSH host key override settings:
config system global
set ssh-hostkey-override enable
set ssh-hostkey-algo ecdsa-sha2-nistp384
set ssh-hostkey-password **********
set ssh-hostkey <encrypted_private_key>
end
3. On a PC, attempt to log in to the FortiGate with the defined ecdsa-sha2-nistp384 algorithm:
root@PC05:~# ssh [email protected]
The authenticity of host '172.16.200.1 (172.16.200.1)' can't be established.
ECDSA key fingerprint is SHA256:mcrMXSjtN/YjY3zQgZpxk77ezxPVGGGOL/GUOG8Oijs.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.200.1' (ECDSA) to the list of known hosts.
| [email protected]
| ecdh-sha2-nistp256
| ecdh-sha2-nistp384
| ecdh-sha2-nistp521
| server_host_key_algorithms: (1)
| ecdsa-sha2-nistp384
| encryption_algorithms: (3)
The FortiOS REST API enables FortiManager firmware upgrade templates for FortiExtender modems to:
l Query the modem firmware version utilized by FortiExtender.
l Direct FortiExtender to install modem firmware updates from FortiCloud.
This feature enhances the interaction between FortiGate, FortiManager, and FortiExtender to ensure that FortiExtender
firmware is always up-to-date.
The following prerequisites are required to use this feature:
l FortiExtender must be registered in FortiCloud.
l FortiExtender firmware version must be 7.4 on build 231 or later.
l FortiExtender must be connected to the internet.
l FortiExtender is managed by FortiGate, its status is Online, and the FortiExtender IP address is shown in FortiGate
interfaces.
Example
In this example, a FortiManager administrator creates a firmware upgrade template for FortiExtender modem and
assigns the template to the managed FortiGate with attached FortiExtender. When the FortiManager administrator uses
the template to initiate an upgrade to the FortiExtender modem firmware, the template uses the FortiOS REST API to:
l Query the FortiGate for the current modem firmware version of the attached FortiExtender and the firmware
versions available for FortiExtender on FortiCloud
l Direct FortiExtender to install a specific version of firmware from FortiCloud.
1. In FortiManager create a firmware upgrade template for FortiExtender modem and assign it to the managed
FortiGate with attached FortiExtender. For details, see the FortiManager 7.4 New Features.
2. In FortiManager, use the template to initiate a FortiExtender modem firmware upgrade. The template uses the
FortiOS REST API to query FortiExtender for the current modem firmware version.
https://<ip address>/api/v2/monitor/extender-controller/extender/modem-
firmware?serial=<number>
{
"http_method":"GET",
"results":{
"available":[
"FEM_EM06A-22-1-1"
],
"current":"FEM_EM06A-22-1-1"
},
"vdom":"root",
"path":"extender-controller",
"name":"extender",
"action":"modem-firmware",
"status":"success",
"serial":"<number>",
"version":"v7.4.2",
"build":2566
}
After receiving the API call, the following FortiOS command is run to provide the current and available FortiExtender
firmware versions to FortiManager:
execute extender query-forticloud-mdmpkg-image all <serial number>
Versions on Cloud:
FEM_07A-22-2-0-AMERICA
3. After receiving the response from FortiGate, the FortiManager template automatically uses the FortiOS REST API
to direct FortiExtender to download a specific firmware version from FortiCloud and install it.
POST /api/v2/monitor/extender-controller/extender/upgrade-modem-firmware
{
"serial": <fext_serial>,
"firmware-name": <name>
}
After receiving the API call, the following FortiOS command is run to download a specific firmware version from
FortiCloud and install it to FortiExtender.
execute extender install-forticloud-mdm-package FEM_07A-22-2-0-AMERICA <serial number>
After the command is run on FortiGate, you can also use the FortiExtender console to view the progress of
downloading and installing the modem firmware version.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 229M 100 229M 0 0 2575k 0 0:01:31 0:01:31 --:--:-- 2744k
Users now have the capability to exercise more granular control over CLI commands. This feature allows administrators
to customize access to CLI commands based on their role, access level, or seniority, thereby enhancing both security
and efficiency.
This command allows the administrator to configure the administrator profiles by enabling specific CLI commands as
needed. The default setting for all the CLI command options is disable.
To edit an administrator profile, you must be logged in to an account with sufficient privileges,
or as a super_admin user.
By default, the FortiGate has an administrator account that uses the super_admin profile. See
Administrator profiles for more information.
firmware release
In FortiOS 7.4.2 and above, enforcement of an active FortiGate firmware license to allow firmware upgrades has been
improved. Enforcement is based on the expiry date of the current firmware license compared to the release date of the
first GA release of a major version. For example, for FortiOS 7.4.x firmware upgrades, enforcement is based on the
expiry date of the current support contract compared to the release date of FortiOS 7.4.0 GA.
Therefore, upgrades between major, minor, and patch versions are only allowed if the firmware license is valid relative to
the release date of the first GA release of a major version. If the firmware license expiry date is earlier than the firmware
first GA major release date, then the firmware upgrade to that version will not be allowed. See the following Example on
page 763.
In the System > Firmware & Registration page, until the support contract is renewed, FortiGuard upgrades will be
unavailable; namely, the Confirm and Backup Config button will be grayed out. However, you will be able to view the
FortiGate firmware images available on FortiGuard using Latest, All Upgrades, and All Downgrades tabs and this
functionality will be restored upon support contract renewal.
Downgrades from one major version to another are not blocked because the FortiGate should have had a firmware
expiry date that is later than the release date of the older firmware major version.
For example, if the firmware license expiry date was March 25, 2024, the FortiGate is currently running 7.4.2 and you
wanted to downgrade to 7.2.7, since the release date of 7.2.0 GA was March 31, 2022 then this firmware downgrade
would be allowed. The firmware license expiry date is later than the release date of the older firmware major version,
7.2.0 GA.
This new feature is an expansion of 7.4.0 and 7.4.1 new features. See Prevent FortiGates with
an expired support contract from upgrading to a major or minor firmware release on page 747
and Prevent firmware upgrades when the support contract is expired using the GUI 7.4.1 on
page 749 for more information on upgrading to major and minor versions.
Example
This example is using fictitious GA release dates of future versions for illustrative purposes
only. These dates do not indicate the official FortiOS release schedule.
The following table demonstrates whether you can upgrade the target FortiGate firmware version depending on the
current firmware license expiry date.
Firmware license expiry date Is a FortiGate firmware upgrade allowed to the target
version?
May 2, 2023 No No No
The FortiOS default email server has been changed from notification.fortinet.net to fortinet-notifications.com.
The reply-to value for the source email is automatically updated to [email protected] for all
servers, including custom servers. For custom servers, if a username is configured, then MAIL FROM is set to the
username, but if no username is configured, then MAIL FROM is the same as MAIL TO. You cannot customize the
reply-to value when configuring a custom email server in the CLI.
This default server is only available to registered devices with an active FortiCare support contract. If no FortiCare
support contract is recognized, a warning is displayed in System > Settings for SMTP Server.
If you try to apply changes in System > Settings without a registered FortiCare support contract, another warning will
display and require confirmation before you can proceed.
The TCP NPU session delay can be applied globally, eliminating the need to set this command for each firewall policy.
config system global
set delay-tcp-npu-session {enable | disable}
end
For more information about this feature, see Configure TCP NPU session delay globally.
In FortiOS 7.4.5 and later, automatic firmware upgrades are enabled by default on all FortiGate models, including
FortiGate VMs. Previously, automatic firmware upgrades were enabled by default only on entry-level models and
disabled by default on all other models. Now with automatic upgrades enabled by default on all FortiGate models, the
system will automatically upgrade to the latest firmware version, unless you manually disable the feature.
When you log in to the FortiOS GUI for the first time after upgrading to version 7.4.5, you must acknowledge that
automatic firmware upgrades are enabled. You can edit or disable the automatic firmware upgrade settings in the GUI or
CLI.
Automatic firmware upgrades are disabled for FortiGates in the following situations:
l FortiGates centrally managed by FortiManager
1. After upgrading to FortiOS 7.4.5 or later, log in to the GUI. The Enable Automatic Patch Upgrades dialog is
displayed.
1. Go to System > Firmware & Registration. The Automatic patch upgrades enabled button is displayed.
If automatic patch upgrades are disabled, the Automatic patch upgrades disabled button is displayed.
2. Click the Automatic patch upgrades enabled or Automatic patch upgrades disabled button to open the Automatic
Patch Upgrades pane.
High availability
FGCP HA between FortiGates of the same model with different AC and DC PSUs
To improve power redundancy, FGCP HA clusters can support forming HA between units of the same model but with
different AC PSU and DC PSU power supplies. This enables redundancy in a situation where power is completely lost on
the AC grid, but traffic can fail over to a cluster member running on an independent DC grid.
The cluster members must be the same model with the same firmware installed, and must have the same hardware
configuration other than the PSU.
In the following examples, there is an FGCP cluster with AC and DC PSU members: a FortiGate 1800F-DC (primary)
and FortiGate 1800F (secondary).
Basic configuration
Mode Active-Passive
Group ID 0
3. Click OK.
4. On the secondary FortiGate (FG-1800F), go to System > HA.
5. Configure the following settings:
Mode Active-Passive
Group ID 0
6. Click OK.
7. Verify that the cluster status is Synchronized.
tx=0/0/0/0
port6: physical/1000full, up, rx-bytes/packets/dropped/errors=99019/448/0/0,
tx=0/0/0/0
Primary : FortiGate-1800F , FG180FTK*******1, HA cluster index = 1
Secondary : FortiGate-1800F , FG180FTK*******2, HA cluster index = 0
number of vcluster: 1
vcluster 1: work 169.254.0.2
Primary: FG180FTK*******1, HA operating index = 0
Secondary: FG180FTK*******2, HA operating index = 1
Based on the preceding example, the interface and firewall policy configurations are changed on the primary FortiGate.
These configuration changes and sessions are synchronized to the secondary FortiGate. If the switch interface
connected to the primary's port5 is down (port2), this triggers the monitor interface to be down, and the PC1 traffic will fail
over to the secondary FortiGate.
2. On the secondary FortiGate (FG-1800F), verify that the settings were synchronized.
a. Verify the interface settings:
show system interface
config system interface
...
edit "port5"
set vdom "root"
set ip 10.1.100.1 255.255.255.0
set allowaccess ping https ssh http telnet
set type physical
set alias "To_Client_PC"
set snmp-index 9
config ipv6
set ip6-address 2000:10:1:100::1/64
set ip6-allowaccess ping https ssh http
end
next
edit "port6"
set vdom "root"
set ip 172.16.200.1 255.255.255.0
set allowaccess ping https ssh http fgfm
set type physical
checksum
global: 4e 15 af c3 c6 87 32 f5 69 5c b7 33 b1 8b 27 12
root: 4a 52 e4 f1 6a 2b eb 7d 84 7d f1 48 50 93 fe d9
all: 95 4e 92 c3 39 75 8e 0e db 83 8d b7 b2 b1 9f 04
root@pc1:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.100.1 0.0.0.0 UG 0 0 0 eth1
10.1.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.6.30.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
2. Using Wget, initiate a large file download with HTTP that will maintain a long session:
root@pc1:~# wget http://172.16.200.55/big100MB.html --keep-session-cookies --limit-
rate=128k --progress=dot -S -r --delete-after
--2023-05-29 14:55:33-- http://172.16.200.55/big100MB.html
Connecting to 172.16.200.55:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Mon, 29 May 2023 21:55:41 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Thu, 01 Dec 2016 00:17:35 GMT
ETag: "6126784-5428dbf967ad3"
Accept-Ranges: bytes
Content-Length: 101869444
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
Length: 101869444 (97M) [text/html]
Saving to: '172.16.200.55/big100MB.html'
1. On the switch connected to port5 of the primary FortiGate, change port2's status to be down:
config switch physical-port
edit port2
set status down
next
end
2. Check the HA status on the primary FortiGate (FG-1800F-DC), which now becomes the secondary device:
# get system ha status
HA Health Status:
WARNING: FG180FTK*******1 has mondev down;
Model: FortiGate-1800F
Mode: HA A-P
Group Name: Example_cluster
Group ID: 0
Debug: 0
Cluster Uptime: 0 days 1:16:13
Cluster state change time: 2023-05-29 20:08:56
Primary selected using:
<2023/05/29 20:08:56> vcluster-1: FG180FTK*******2 is selected as the primary
because the value 0 of link-failure + pingsvr-failure is less than peer member
FG180FTK*******1.
<2023/05/29 19:11:14> vcluster-1: FG180FTK*******1 is selected as the primary
because its uptime is larger than peer member FG180FTK*******2.
<2023/05/29 18:59:45> vcluster-1: FG180FTK*******2 is selected as the primary
because its uptime is larger than peer member FG180FTK*******1.
<2023/05/29 18:59:45> vcluster-1: FG180FTK*******1 is selected as the primary
The FGCP multi-version cluster (MVC) upgrade mode allows manual control over the cluster member that is being
upgraded. HA members can temporarily run in an MVC while administrators perform tests to confirm traffic can pass
through the upgraded member smoothly.
The syntax of the existing upgrade mode has been updated:
config system ha
set upgrade-mode {simultaneous | uninterruptible | local-only | secondary-only}
end
uploaded.
l secondary-only: only upgrade the secondary members.
The local-only and secondary-only upgrade options are advanced configurations that
should only be used to temporarily put the HA cluster in MVC operation mode. While in this
operation, states and sessions (such as the session table and routing table) are synchronized,
but configuration changes are not synchronized between cluster members in different builds. If
more than two members are in the cluster, the configurations between members in the same
builds will be synchronized. The configurations for the entire cluster will be synchronized once
the upgrade process has completed.
How it works
In local-only and secondary-only modes, the specific cluster member is upgraded and sessions are
synchronized to it. The following tables show which members are upgraded based on the mode and where the upgrade
is initiated.
local-only
Initiate the upload or upgrade on the primary. The primary member is Not recommended.
upgraded.
local-only
Initiate the upload or upgrade on the The secondary member where Recommended when selecting a
secondary member. the image is uploaded is specific HA member to upgrade.
upgraded.
secondary-only
Initiate the upload or upgrade on the primary. All non-primary members are Recommended for scenarios
upgraded. where there is more than one
secondary HA member.
Initiate the upload or upgrade on the The secondary member where Same result as initiating an
secondary member. the image is uploaded is upgrade on a secondary member
upgraded. in local-only mode.
This can apply to any HA clusters with two or more members. Administrators can initiate an upgrade on a secondary
member by using its CLI console or accessing the device's GUI from its HA management interface.
Initially, when you prepare an HA cluster in A-P mode for upgrade, traffic passes through the primary unit (Node-A) as
the secondary unit (Node-B) sits on standby.
After the upgrade is completed on a secondary unit, states and sessions are synchronized. The members are now
operating in MVC mode; however, traffic continues to pass through Node-A.
Administrators can manually trigger failover to make Node-B the new primary when ready. This can be done by resetting
the HA uptime or changing device priorities, whichever method is desired. Traffic now passes through Node-B.
The upgraded system (Node-B) can be tested to verify that traffic can pass smoothly. If verification fails, administrators
can trigger a failover to fail back to Node-A to avoid any downtime.
If verification is successful, administrators can manually trigger an upgrade on Node-A to bring the HA member up to the
same version as Node-B to complete the HA upgrade procedure. This can be performed by accessing Node-A’s GUI
from its HA management interface or using its CLI console.
Example 1: upgrade a single secondary member using the local-only upgrade option
The member FGVM02TM22027808 is acting as the primary and forwarding traffic. The member FGVM02TM22027810
is chosen for upgrade.
The cluster is originally running build 2456. The secondary unit is upgraded to build 2461. Fictitious build numbers are
used in this example to demonstrate functionality of the feature.
config system ha
set group-id 260
set group-name "hagroup"
set mode a-p
set hbdev "port3" 0
set session-pickup enable
set upgrade-mode local-only
end
Please wait...
3. After the upgrade is complete, verify the version running on the secondary member:
FGVM02TM22027810 # get system status
Version: FortiGate-VM64 v7.4.1,build2461,230828 (interim)
…
4. On the primary unit, verify that HA is still formed between the three members:
FGVM02TM22027808 # diagnose sys ha dump-by group
<hatalk> vcluster_1: ha_prio=0(primary), state/chg_time/now=2
(work)/1692750721/1693262149
HA information.
group-id=260, group-name='hagroup'
has_no_aes128_gcm_sha256_member=0
gmember_nr=3
'FGVM02TM22027808': ha_ip_idx=2, hb_packet_version=10, last_hb_jiffies=0, linkfails=0,
weight/o=0/0, support_aes128_gcm_sha256=1
'FGVM02TM22027809': ha_ip_idx=1, hb_packet_version=12, last_hb_jiffies=51142842,
linkfails=3, weight/o=0/0, support_aes128_gcm_sha256=1
hbdev_nr=1: port3(mac=000c..de, last_hb_jiffies=51142842, hb_lost=0),
'FGVM02TM22027810': ha_ip_idx=0, hb_packet_version=4, last_hb_jiffies=51142858,
linkfails=3, weight/o=0/0, support_aes128_gcm_sha256=1
hbdev_nr=1: port3(mac=000c..1a, last_hb_jiffies=51142858, hb_lost=0),
vcluster_nr=1
vcluster-1: start_time=1692750718(2023-08-22 17:31:58), state/o/chg_time=2(work)/2
(work)/1692750721(2023-08-22 17:32:01)
pingsvr_flip_timeout/expire=3600s/0s
mondev: port1(prio=50,is_aggr=0,status=1) port7(prio=50,is_aggr=0,status=1)
port8(prio=50,is_aggr=0,status=1)
'FGVM02TM22027808': ha_prio/o=0/0, link_failure=0, pingsvr_failure=0,
flag=0x00000001, mem_failover=0, uptime/reset_cnt=510868/0
'FGVM02TM22027809': ha_prio/o=1/1, link_failure=0, pingsvr_failure=0,
flag=0x00000000, mem_failover=0, uptime/reset_cnt=510857/0
'FGVM02TM22027810': ha_prio/o=2/2, link_failure=0, pingsvr_failure=0,
flag=0x00000000, mem_failover=0, uptime/reset_cnt=0/0
5. Fail over the HA cluster so that the secondary member, FGVM02TM22027810, becomes the primary. Since
override is not enabled and the HA primary is determined by uptime, you can reset the HA uptime on the units that
were not upgraded:
# diagnose sys ha reset-uptime
6. Once verification on the upgraded member is successful, repeat step 2 to perform upgrades on the remaining units.
Using the same topology as example 1, the three HA cluster members are originally running build 2456. Both secondary
units are upgraded using the secondary-only upgrade option. Fictitious build numbers are used in this example to
demonstrate functionality of the feature.
config system ha
set group-id 260
set group-name "hagroup"
set mode a-p
set hbdev "port3" 0
set session-pickup enable
set upgrade-mode secondary-only
end
3. After the upgrade is complete, verify the version running on the secondary members.
a. Member 1:
FGVM02TM22027809 # get system status
Version: FortiGate-VM64 v7.4.1,build2461,230828 (interim)
…
b. Member 2:
FGVM02TM22027810 # get system status
Version: FortiGate-VM64 v7.4.1,build2461,230828 (interim)
…
4. On the primary unit, verify that HA is still formed between the three members:
FGVM02TM22027808 # diagnose sys ha dump-by group
HA information.
group-id=260, group-name='hagroup'
has_no_aes128_gcm_sha256_member=0
gmember_nr=3
vcluster_nr=1
vcluster-1: start_time=1692750718(2023-08-22 17:31:58), state/o/chg_time=2(work)/2
(work)/1692750721(2023-08-22 17:32:01)
pingsvr_flip_timeout/expire=3600s/0s
mondev: port1(prio=50,is_aggr=0,status=1) port7(prio=50,is_aggr=0,status=1)
port8(prio=50,is_aggr=0,status=1)
'FGVM02TM22027808': ha_prio/o=0/0, link_failure=0, pingsvr_failure=0,
flag=0x00000001, mem_failover=0, uptime/reset_cnt=512775/0
'FGVM02TM22027809': ha_prio/o=2/2, link_failure=0, pingsvr_failure=0,
flag=0x00000000, mem_failover=0, uptime/reset_cnt=0/0
'FGVM02TM22027810': ha_prio/o=1/1, link_failure=0, pingsvr_failure=0,
flag=0x00000000, mem_failover=0, uptime/reset_cnt=1/0
State control for IPv6 Virtual Router Redundancy Protocol (VRRP) is enhanced. Previously, the VRRP state would be
Primary as long as any route, including the default route, could reach the IPv6 VRRP destination. Now administrators
can choose whether to exclude the default route from the calculation of available routes to the IPv6 VRRP destination to
better manage and control the VRRP states.
config system interface
edit < name >
config ipv6
config vrrp6
edit < id >
set ignore-default-route {enable | disable}
next
end
end
end
l disable: Include the default route when checking the VRRP destination.
Example
In this example, the IPv6 VRRP destination (vrdst6) is set with an IPv6 address of 2000:172:22:20::22, and
ignore-default-route is enabled for the destination. As long as non-default routes exist to the VRRP destination,
the VRRP state is Primary. When only the default route to the VRRP destination exists, the VRRP state changes to
Backup.
To ignore the default route when checking the IPv6 VRRP destination:
4. Delete the non-default routes to the IPv6 VRRP destination (vrdst6), and check the routes again.
In the following example, the routing table shows only the default route (::/0) is available to the IPv6
VRRP destination of 2000:172:22:20::22.
# get router info6 routing-table 2000:172:22:20::22
Routing entry for ::/0
Known via "static", distance 10, metric 0, best
Last update 02:02:09 ago
* via 2000:172:16:200::254, port1
FortiGate A-P HA cluster now supports sharing a single FortiGuard service license for both cluster units for the following
models:
l 40F and variants
l 60F and variants
l 70F and variants
l 80F and variants
l 100F and variants
When a customer purchases two units with the HA SKU (such as 2 x FG-40F-HA), they can further purchase a single
order of the following subscriptions:
l Enterprise Protection
l Unified Threat Protection (UTP)
l Advanced Threat Protection (ATP)
The two FortiGate serial numbers will be associated together on FortiCare to create one virtual serial number (vSN). If
multiple pairs of devices are ordered, each pair will be together in its own box to help identify the associated devices. The
aforementioned services will then be registered to the vSN. A la carte SKUs are not supported, and cannot be registered
to the vSN.
This is supported on FortiOS 7.2.9, 7.4.6 and 7.6.1 and above for supported models.
Deploying the FortiGates in HA to support vSN requires two steps:
1. Register the FortiGate and associated service contract
2. Provision the FortiGate HA configurations either through FortiGate Cloud or manually
For information about RMAing the HA cluster, see RMA the FortiGate virtual HA on page 787.
7. Check the HA vSN and the serial number of the second device, then click Next.
8. Review the configuration, then click Done to complete the registration.
The vSN is registered in Asset Management with service entitlement. The individual FortiGates cannot be
managed.
Model HA interface
Some models have 2 HA interfaces. In these cases, both interfaces will be provisioned by FortiGate Cloud as
heartbeat interfaces, but one or both of the interfaces can be connected. It is recommended to connect 2 heartbeat
interfaces whenever possible for redundancy.
3. Connect the WAN interface to an upstream gateway that is providing DHCP service.
4. Connect internal interfaces to an internal switch as required.
5. Power on both FortiGates.
Shortly after, the boxes will receive the vSN and their HA configuration from FortiGate Cloud, as follows:
config system ha
set group-id <id>
set group-name <group-name>
set mode a-p
set password ********
set hbdev <HA interface 1> <priority 1> [HA interface 2] [priority 2]
set override disable
set logical-sn enable
end
1. Unpack the two boxes, and connect to each unit through the CLI or the default management interface.
2. Configure the following basic HA settings on each unit:
config system ha
set mode a-p
set group-id <id>
set group-name <group-name>
set password ********
set hbdev <HA interface 1> <priority 1> [HA interface 2] [priority 2]
set logical-sn enable
end
To verify the HA status and vSN (or Logical Serial) after the HA cluster registration is complete:
3. Furthermore, the service contract will be associated with the vSN and can be viewed on the System > FortiGuard
page.
Do not change the HA mode from A-P to A-A when logical-sn is enabled. This will result in
the FortiGate losing its vSN. Disabling logical-sn will also result in losing the vSN. As a
result, service entitlements will no longer be registered to the HA cluster.
In the event that one of the FortiGate HA units requires an RMA, the RMA transfer can be completed from the FortiCloud
support portal.
SNMP
l Add SNMP trap for memory usage on FortiGates 7.4.2 on page 788
l Add SNMP trap for PSU power restore 7.4.2 on page 790
l Enabling the INDEX extension 7.4.4 on page 791
Both free memory usage and freeable memory of FortiGate devices can be monitored through the Simple Network
Management Protocol (SNMP).
SNMP object identifier (OID) entries are available in Fortinet MIB files to show the percentage of free memory usage and
freeable memory in an SNMP manager:
l 1.3.6.1.4.1.12356.101.4.1.36 .fgSysFreeMemUsage
l 1.3.6.1.4.1.12356.101.4.1.37 .fgSysFreeableMemUsage
The following commands are available to configure memory thresholds to trigger SNMP traps:
config system snmp sysinfo
set trap-free-memory-threshold <integer>
set trap-freeable-memory-threshold <integer>
end
set trap-free-memory- Use an integer from 1 to 100 (default 5) to identify what percentage of free
threshold <integer> memory usage will trigger an SNMP trap.
SNMP traps are sent when the free memory is lower than the specified threshold.
For example, the free memory threshold is set to 5, and SNMP traps are sent
when free memory is lower than 5%.
set trap-freeable-memory- Use an integer from 1 to 100 (default 60) to identify what percentage of freeable
threshold <integer> memory will trigger an SNMP trap.
SNMP traps are sent when the freeable memory is higher than the specified
threshold. For example, the freeable memory threshold is set to 60, and
SNMP traps are sent when freeable memory is higher than 60%.
Example
In this example, the SNMP agent is configured to monitor FortiGate memory and send traps. The trap-free-memory-
threshold is set to 10, and the trap-freeable-memory-threshold is set to 50. SNMP traps are triggered for
both thresholds because:
l The free memory on the FortiGate is 9%, which is lower than the threshold of 10.
l The freeable memory on the FortiGate is 56%, which is higher than the threshold of 50.
This example describes how to use the new commands to configure SNMP agents. It does not
describe how to fully configure SNMP. For information about configuring SNMP, see the
FortiOS 7.4 Administration Guide:
l Basic configuration
1. Configure the SNMP agent to monitor FortiGate memory usage and freeable memory.
In this example, the trap-free-memory-threshold is set to 10, and the trap-freeable-memory-
threshold is set to 50.
config system snmp sysinfo
set status enable
set engine-id <string for local SNMP engine ID>
set description <string>
set contact-info <string>
set location <string>
set trap-high-cpu-threshold 60
set trap-free-memory-threshold 10
set trap-freeable-memory-threshold 50
end
2. Verify that the SNMP manager can successfully query and receive a response on the current memory status of the
FortiGate.
In the following example, the free memory on the FortiGate is reported as 9%, and the freeable memory on the
FortiGate is reported as 56%.
# snmpwalk -v2c -c REGR-SYS 172.16.200.1 1.3.6.1.4.1.12356.101.4.1.36
FORTINET-FORTIGATE-MIB::fgSystemInfo.36.0 = Gauge32: 9
fosqa@pc05:~$ snmpwalk -v2c -c REGR-SYS 172.16.200.1 1.3.6.1.4.1.12356.101.4.1.37
FORTINET-FORTIGATE-MIB::fgSystemInfo.37.0 = Gauge32: 56
An SNMP trap has been added for when power is restored to the power supply unit (PSU) on a FortiGate. When the PSU
regains power after an outage, an SNMP trap should be triggered. This enhances the monitoring capabilities of the
FortiGate.
Example
In this example, the power-supply event is applied in the SNMP community configuration. The SNMP trap messages
are observed when the PSU cable is disconnected and reconnected.
The INDEX extension can be enabled from the CLI to append VDOM or interface indexes in RFC tables.
config system snmp sysinfo
set append-index {enable | disable}
end
For more information about this feature, see Enabling the INDEX extension.
FortiGuard
The FortiGuard DLP service offers a database of predefined DLP patterns such as data types, dictionaries, and sensors.
Example include:
l Drivers licenses for various countries, various states in the USA, and various provinces in Canada
l Tax numbers for various countries
l Credit card numbers
l Bank statements
When enabled, the DLP database (DLDB) is downloaded to the FortiGate and its predefined patterns can be configured
in DLP profiles.
Example
In this example, the administrator wants to look for data leakage of Canadian social insurance number (SIN) information
and block this traffic. A DLP profile is created that uses the predefined dictionary, fg-can-natl_id-sin-dic, to check for
Canadian Social Insurance Numbers (SINs).
To verify that the Canadian SIN data type is added to the list of predefined data types:
1. Configure the DLP sensor using the predefined dictionary from FortiGuard:
a. Go to Security Profiles > Data Leak Prevention, select the Sensors tab, and click Create New.
b. Enter a name (sin).
c. In the Sensor Entries section, click Create New.
d. Set the Dictionary to fg-can-natl_id-sin-dic and click OK.
Name test
Sensors sin
Severity Medium
Action Block
Type File
e. Click OK.
f. Click OK to save the profile.
1. Configure the DLP sensor using the predefined dictionary from FortiGuard:
config dlp sensor
edit "sin"
config entries
edit 1
set dictionary "fg-can-natl_id-sin-dic"
next
end
next
end
The following table provides an overview of changes to the Security Rating service entitlement starting in 7.4.1:
l Running all the built-in free and paid security rating l Displaying CIS compliance information
l IoT Query
l IoT Query
*
The list is not exhaustive and does not include services such as FortiGate Virtual Patch Signatures, Inline-CASB, and
SaaS Application Definitions.
Starting in 7.4.1, PSIRT related packages and functionalities are re-positioned from the Security Rating entitlement into
the Firmware entitlement. This allows more customers with the basic Firmware entitlement to have access to the latest
PSIRT package updates, which can be executed under Security Fabric > Security Rating > Security Posture checks.
Devices with different entitlements can expect the following behaviors:
Entitlement Action
Firmware Attack Download PSIRT Run PSIRT Run built-in paid Run built-in free
(FMWR) Surface package from security rating security rating security rating
Security FortiGuard checks checks checks
Rating
(FGSA)
No No No No No Yes
Example 1: device with Firmware entitlement, but no Attack Surface Security Rating
entitlement
On the System > FortiGuard page, note that Firmware & General Updates is licensed, but Attack Surface Security Rating
is not.
PSIRT-related rules can be executed from the Security Fabric > Security Rating > Security Posture page.
Free built-in security rating rules can be run. Other paid rules cannot be run, which fall under the Unlicensed category.
Example 2: device with both Firmware and Attack Surface Security Rating entitlements
In this scenario, all PSIRT, Outbreak, paid, and free rules can be run. There is no Unlicensed rule category.
In this scenario, only free built-in rules can be run. Other rules are grouped under the Unlicensed category.
Merge the IoT Detection service into the Attack Surface Security Rating service
Starting in 7.4.1, the IoT Detection service, which includes IoT Detection Definitions (APDB) and the IoT Query service
(IOTH), is merged into the Attack Surface Security Rating service (FGSA).
The following table provides a breakdown of the entitlements before and after upgrading:
Security Rating No No
Attack Surface Security
Rating Yes, for IoT Detection
IoT Detection Yes
subcategory
Security Rating No No
Attack Surface Security
Rating No, for IoT Detection
IoT Detection No
subcategory
Example 1: device does not have an Attack Surface Security Rating entitlement
On the System > FortiGuard page, note that Attack Surface Security Rating is not licensed, and IoT Detection Definitions
was not downloaded.
In the Dashboard > Status > Licenses widget, hovering over the Rating icon displays a tooltip that the status of Attack
Surface Security Rating is Not Licensed.
On the System > FortiGuard page, note that Attack Surface Security Rating is licensed, and IoT Detection Definitions is
downloaded.
2. Verify the Attack Surface Security Rating (FGSA) license and IoT detection service object:
# diagnose test update info
…
System contracts:
…
FGSA,Thu Jun 13 17:00:00 2024
…
Object versions:
…
07004000IOTD00105-00025.00600-2307121926
…
The Operational Technology (OT) Security Service is introduced to help consolidate OT services under one license and
to decouple the underlying definitions and packages from IoT ones. New OT-related services such as OT Detection
Definitions and OT Virtual Patching Signatures used in the virtual patching profile are now licensed under the OT
Security Service.
The following table provides an overview of the new Operational Technology (OT) Security Service entitlement: