Yearly Archives: 2017

FGSP – FortiGate Session Life Support Protocol

FGSP – FortiGate Session Life Support Protocol

FortiGate Session Life Support Protocol (FGSP) distributes sessions between two FortiGate units and the FGSP performs session synchronization. If one of the peers fails, session failover occurs and active sessions fail over to the peer that is still operating. This failover occurs without any loss of data. Also, the external routers or load balancers will detect the failover and re-distribute all sessions to the peer that is still operating. The two FortiGate units must be the same model and must be running the same firmware.

You can also use the config system cluster-sync command to configure FGSP between two FortiGate units.

The FortiGate’s HA Heartbeat listens on ports TCP/703, TCP/23, or ETH Layer 2/8890.

In previous versions of FortiOS, FGSP was called TCP session synchronization or standalone session synchronization. However, FGSP has been expanded to include both IPv4 and IPv6 TCP, UDP, ICMP, expectation, NAT sessions, and IPsec tunnels.

FGSP – FortiGate Session Life Support

Configuration synchronization

Configuration synchronization can also be performed, allowing you to make configuration changes once for both FortiGate units instead of requiring multiple configuration changes on each FortiGate unit. However interface IP addresses, BGP neighbor settings, and other settings that identify the FortiGate unit on the network are not synchronized. You can enable configuration synchronization by entering the following command:

config system ha set standalone-config-sync enable

end

UDP and ICMP (connectionless) session synchronization

In many configurations, due to their non-stateful nature, UDP and ICMP sessions don’t need to be synchronized to naturally failover. However, if it is required, you can configure the FGSP to also synchronize UDP and ICMP sessions by entering the following command:

config system ha set session-pickup enable

set session-pickup-connectionless enable

end

Expectation (asymmetric) session synchronization

Synchronizing asymmetric traffic can be very useful in situations where multiple Internet connections from different ISPs are spread across two FortiGates.

The FGSP enforces firewall policies for asymmetric traffic, including cases where the TCP 3-way handshake is split between two FortiGates. For example, FGT-A receives the TCP-SYN, FGT-B receives the TCP-SYN-ACK, and FGT-A receives the TCP-ACK. Under normal conditions a firewall will drop this connection since the 3-way handshake was not seen by the same firewall. However two FortiGates with FGSP configured will be able to properly pass this traffic since the firewall sessions are synchronized.

If traffic will be highly asymmetric, as described above, the following command must be enabled on both FortiGates:

config system ha set session-pickup enable set session-pickup-expectation enable

end

Security profile inspection with asymmetric and symmetric traffic

Security profile inspection, flow or proxy based, is not expected to work properly if the traffic in the session is load balanced across more than one FortiGate in either direction. However, flow-based inspection should be used in FGSP deployments.

For symmetric traffic, security profile inspection can be used but with the following limitations:

  • No session synchronization for the sessions inspected using proxy-based inspection. Sessions will drop and need to be reestablished after data path failover.
  • Sessions with flow-based inspection will failover, and inspection of sessions after a failover may not work.

FGSP                  Session Life Support Protocol

Improving session synchronization performance

Two HA configuration options are available to reduce the performance impact of enabling session failover (also known as session pickup): reducing the number of sessions that are synchronized by adding a session pickup delay, and using more FortiGate interfaces for session synchronization.

Reducing the number of sessions that are synchronized

If session pickup is enabled, as soon as new sessions are added to the primary unit session table they are synchronized to the other cluster units. Enable the session-pickup-delay CLI option to reduce the number of sessions that are synchronized by synchronizing sessions only if they remain active for more than 30 seconds. Enabling this option could greatly reduce the number of sessions that are synchronized if a cluster typically processes very many short duration sessions, which is typical of most HTTP traffic for example.

Use the following command to enable a 30 second session pickup delay:

config system ha set session-pickup-delay enable

end

Enabling session pickup delay means that if a failover occurs more sessions may not be resumed after a failover. In most cases short duration sessions can be restarted with only a minor traffic interruption. However, if you notice too many sessions not resuming after a failover you might want to disable this setting.

Using multiple FortiGate interfaces for session synchronization

Using the session-sync-dev option, you can select one or more FortiGate interfaces to use for synchronizing sessions as required for session pickup. Normally session synchronization occurs over the HA heartbeat link. Using this HA option means only the selected interfaces are used for session synchronization and not the HA heartbeat link. If you select more than one interface, session synchronization traffic is load balanced among the selected interfaces.

Moving session synchronization from the HA heartbeat interface reduces the bandwidth required for HA heartbeat traffic and may improve the efficiency and performance of the cluster, especially if the cluster is synchronizing a large number of sessions. Load balancing session synchronization among multiple interfaces can further improve performance and efficiency if the cluster is synchronizing a large number of sessions.

Use the following command to perform cluster session synchronization using the port10 and port12 interfaces.

config system ha set session-sync-dev port10 port12

end

Session synchronization packets use Ethertype 0x8892. The interfaces to use for session synchronization must be connected together either directly using the appropriate cable (possible if there are only two units in the cluster) or using switches. If one of the interfaces becomes disconnected the cluster uses the remaining interfaces for session synchronization. If all of the session synchronization interfaces become disconnected, session synchronization reverts back to using the HA heartbeat link. All session synchronization traffic is between the primary unit and each subordinate unit.

Since large amounts of session synchronization traffic can increase network congestion, it is recommended that you keep this traffic off of your network by using dedicated connections for it.

FGSP – FortiGate Session Life Support

NAT session synchronization

NAT sessions are not synchronized by default. You can enable NAT session synchronization by entering the following command:

config system ha set session-pickup enable set session-pickup-nat enable

end

Note that, after a failover with this configuration, all sessions that include the IP addresses of interfaces on the failed FortiGate unit will have nowhere to go since the IP addresses of the failed FortiGate unit will no longer be on the network. If you want NAT sessions to resume after a failover you should not configure NAT to use the destination interface IP address, since the FGSP FortiGate units have different IP addresses. To avoid this issue, you should use IP pools with the type set to overload (which is the default IP pool type), as shown in the example below:

config firewall ippool edit FGSP-pool set type overload set startip 172.20.120.10 set endip 172.20.120.20

end

In NAT/Route mode, only sessions for route mode security policies are synchronized. FGSP HA is also available for FortiGate units or virtual domains operating in Transparent mode. Only sessions for normal Transparent mode policies are synchronized.

IPsec tunnel synchronization

When you use the config system cluster-sync command to enable FGSP, IPsec keys and other runtime data are synchronized between cluster units. This means that if one of the cluster units goes down the cluster unit that is still operating can quickly get IPsec tunnels re-established without re-negotiating them. However, after a failover, all existing tunnel sessions on the failed FortiGate have to be restarted on the still operating FortiGate.

IPsec tunnel sync only supports dialup IPsec. The interfaces on both FortiGates that are tunnel endpoints must have the same IP addresses and external routers must be configured to load balance IPsec tunnel sessions to the FortiGates in the cluster.

Standalone configuration synchronization uses a very similar process as FGCP. There is a similar relationship between the two FortiGates but only in regards to configuration synchronization, not session information. The primary unit is selected by using priority/override. The heartbeat is used to check the primary unit’s health. Once heartbeat loss is detected, a new primary unit is selected.

FGSP                  Session Life Support Protocol

Automatic session synchronization after peer reboot

The following command allows you to configure an automatic session synchronization after a peer FGSP unit has rebooted. FGSP will send out heartbeat signals (every 1 – 10 seconds, as shown below) if one FortiGate is rebooting and the other FortiGate fails.

To configure automatic session synchronization:

config system session-sync edit 1

set down-intfs-before-sess-sync <interfaces> – List of interfaces to be turned down before session synchronization is complete.

set-hb-interval <integer> – (1 – 10 seconds) set hb-lost-threshold <integer> – (1 – 10)

next end

 

FGCP – FortiGate Clustering Protocol

FGCP – FortiGate Clustering Protocol

In an active-passive HA configuration, the FortiGate Clustering Protocol (FGCP) provides failover protection, whereby the cluster can provide FortiGate services even when one of the cluster units loses connection. FGCP is also a Layer 2 heartbeat that specifies how FortiGate units communicate in an HA cluster and keeps the cluster operating.

The FortiGate’s HA Heartbeat listens on ports TCP/703, TCP/23, or ETH Layer 2/8890.

Virtual MAC addresses

FGCP assigns virtual MAC addresses to each primary unit interface in an HA cluster. Virtual MAC addresses are in place so that, if a failover occurs, the new primary unit interfaces will have the same MAC addresses as the failed primary unit interfaces. If the MAC addresses were to change after a failover, the network would take longer to recover because all attached network devices would have to learn the new MAC addresses before they could communicate with the cluster.

If a cluster is operating in Transparent mode, FGCP assigns a virtual MAC address for the primary unit management IP address. Since you can connect to the management IP address from any interface, all of the FortiGate interfaces appear to have the same virtual MAC address.

When a cluster starts up, after a failover, the primary unit sends gratuitous ARP packets to update the switches connected to the cluster interfaces with the virtual MAC address. The switches update their MAC forwarding tables with this MAC address. As a result, the switches direct all network traffic to the primary unit. Depending on the cluster configuration, the primary unit either processes this network traffic itself or load balances the network traffic among all of the cluster units.

You cannot disable sending gratuitous ARP packets, but you can change the number of packets that are sent (160 ARP packets) by entering the following command:

config system ha set arps <integer>

end

You can change the time between ARP packets (1-20 seconds) by entering the following command:

config system ha set arps-interval <integer>

end

Assigning virtual MAC addresses

Virtual MAC addresses are determined based on the following formula:

00-09-0f-09-<group-id_hex>-<vcluster_integer><idx> where:

  • <group-id_hex>: The HA group ID for the cluster converted to hexadecimal. The table below lists some example virtual MAC addresses set for each group ID:
Integer Group ID Hexadecimal Group ID
0 00
1 01
2 02
3 03
10 0a
11 0b
63 3f
255 ff
  • <vcluster_integer>: This value is 0 for virtual cluster 1 and 2 for virtual cluster 2. If virtual domains are not enabled, HA sets the virtual cluster to 1 and by default all interfaces are in the root virtual domain. Including virtual cluster and virtual domain factors in the virtual MAC address formula means that the same formula can be used whether or not virtual domains and virtual clustering is enabled.
  • <idx>: The index number of the interface. In NAT/Route mode, interfaces are numbered from 0 to x (where x is the number of interfaces). The interfaces are listed in alphabetical order on the web-based manager and CLI. The interface at the top of the interface list is first in alphabetical order by name and has an index of 0. The second interface in the list has an index of 1 and so on. In Transparent mode, the index number foe the management IP address is 0.

Every FortiGate unit physical interface has two MAC addresses: the current hardware address and the permanent hardware address. The permanent hardware address cannot be changed, as it is the actual MAC address of the interface hardware. The current hardware address can be changed, but only when a FortiGate unit is not operating in HA. For an operating cluster, the current hardware address of each cluster unit interface is changed to the HA virtual MAC address by the FGCP.

You cannot change an interface MAC address and you cannot view MAC addresses from the system interface CLI command.

You can use the get hardware nic <interface_name_str> (or diagnose hardware

deviceinfo nic <interface_str>) command to display both MAC addresses for any FortiGate

interface. This command displays hardware information for the specified interface, including the current hardware address (as Current_HWaddr) and the permanent hardware address (as Permanent_HWaddr). For some interfaces, the current hardware address is displayed as MAC.

Failover protection

FGCP supports three kinds of failover protection:

  1. Device failover: Automatically replaces a failed device and restarts traffic flow with minimal impact on the network. All subordinate units in an active-passive HA cluster are constantly waiting to negotiate to become primary units. Only the heartbeat packets sent by the primary unit keep the subordinate units from becoming primary units. Each received heartbeat packet resets negotiation timers in the subordinate units. If this timer is allowed to run out because the subordinate units do not receive heartbeat packets from the primary unit, the subordinate units assume that the primary unit has failed, and negotiate to become primary units themselves. The default time interval between HA heartbeats is 200 ms.
  2. Link failover: Maintains traffic flow if a link fails. In this case, the primary unit does not stop operating, and therefore participates in the negotiation of selecting a new primary unit. The old primary unit then joins the cluster as a subordinate unit. Furthermore, any subordinate units with a link failure are unlikely to become the primary unit in future negotiations.
  3. Session failover: With session failover (also called session pickup) enabled, the primary unit informs the subordinate units of changes to the primary unit connection and state tables, keeping the subordinate units up-todate with the traffic currently being processed by the cluster. This helps new primary units resume communication sessions with minimal loss of data, avoiding the need to restart active sessions.

Synchronization of configurations

The FGCP uses a combination of incremental and periodic synchronization to make sure that the configuration of all cluster units is synchronized to that of the primary unit. However, there are certain settings that are not synchronized between cluster units:

l HA override l HA device priority l The virtual cluster priority l The FortiGate unit host name l The HA priority setting for a ping server (or dead gateway detection) configuration l The system interface settings of the HA reserved management interface l The HA default route for the reserved management interface, set using the ha-mgmt-interface-gateway option of the config system ha command.

You can disable configuration synchronization by entering the following command:

config system ha set sync-config disable

end

The command execute ha synchronize can be used to perform a manual synchronization.

The FGCP heartbeat operates on TCP port 703 with an independent IP address not assigned to any FortiGate interface. You can create an FGCP cluster of up to four FortiGate units. Below is an example of FGCP used to create an HA cluster installed between an internal network and the Internet.

FGCP HA provides a solution for two key requirements of critical enterprise networking: enhanced reliability and increased performance, through device, link, and remote link failover protection. Extended FGCP features include full mesh HA and virtual clustering. You can also fine tune the performance of the FGCP to change how a cluster forms and shares information among cluster units and how the cluster responds to failures.

Before configuring an FGCP HA cluster, make sure your FortiGate interfaces are configured with static IP addresses. If any interface gets its address using DHCP or PPPoE you should temporarily switch it to a static address and enable DHCP or PPPoE after the cluster has been established.

Heartbeat traffic, such as FGCP, uses multicast on port number 6065 and uses linklocal IPv4 addresses in the 169.254.0.x range. HA heartbeat packets have an Ethertype field value of 0x8890.

Synchronization traffic, such as FGSP, uses unicast on port number 6066 and the IP address 239.0.0.2. HA sessions that synchronize the cluster have an Ethertype field value of 0x8893.

The HA IP addresses are hard-coded and cannot be configured.

How to set up FGCP clustering

This example describes how to enhance the reliability of a network protected by a FortiGate unit by adding a second FortiGate unit to create a FortiGate Clustering Protocol (FGCP) HA cluster. The FortiGate already on the network will be configured to become the primary unit by increasing its device priority and enabling override. The new FortiGate will be prepared by setting it to factory defaults to wipe any configuration changes. Then it will be licensed, configured for HA, and then connected to the FortiGate already on the network. The new FortiGate becomes the backup unit and its configuration is overwritten by the primary unit.

If you have not already done so, register the primary FortiGate and apply licenses to it before setting up the cluster. This includes FortiCloud activation and FortiClient licensing, and entering a license key if you purchased more than 10 Virtual Domains (VDOMs). You can also install any third-party certificates on the primary FortiGate before forming the cluster.

The FortiGates should be running the same FortiOS firmware version, and their interfaces should not be configured to get their addresses from DHCP or PPPoE.

Configuring the primary FortiGate

  1. Connect to the primary FortiGate and go to Dashboard > System Information. Change the unit’s Host Name to identify it as the primary FortiGate. You can also enter this CLI command:

config system global set hostname Primary_FortiGate

end

  1. You then need to set the HA mode to active-passive. Enter the following CLI command to set the HA mode to active-passive, set a group name and password, increase the device priority to a higher value (for example, 250) and enable override: config system ha set mode a-p

set group-name My-HA-Cluster set password set priority 250 set override enable

set hbdev ha1 50 ha2 50 end

This command also selects ha1 and ha2 to be the heartbeat interfaces, with their priorities set to 50.

Enabling override and increasing the priority ensures that this FortiGate should become the primary unit.

Configuring the backup FortiGate

  1. Enter the CLI command below to reset the new FortiGate to factory default settings (skip this step if the FortiGate is fresh from the factory). It is recommended to set it back to factory defaults to reduce the chance of synchronization problems.: execute factoryreset
  2. Make sure to change the firmware running on the new FortiGate to the same version running on the primary unit, register, and apply licenses to it before adding it to the cluster.
  3. Then go to Dashboard > System Information. Change the unit’s Host Name to identify it as the backup

FortiGate.

You can also enter this CLI command:

config system global set hostname Backup_FortiGate

end

  1. Duplicate the primary unit’s HA settings, except make sure to set the backup device’s priority to a lower value and do not enable override.

Connecting the cluster

Connect the HA cluster as shown in the initial diagram above. Making these connections will disrupt network traffic as you disconnect and re-connect cables.

When connected, the primary and backup FortiGates find each other and negotiate to form an HA cluster. The primary unit synchronizes its configuration with the backup FortiGate. Forming the cluster happens automatically with minimal or no disruption to network traffic.

Heartbeat packet Ethertypes

Normal IP packets are 802.3 packets that have an Ethernet type (Ethertype) field value of 0x0800. Ethertype values other than 0x0800 are understood as level 2 frames rather than IP packets.

By default, HA heartbeat packets use the following Ethertypes:

  • HA heartbeat packets for NAT/Route mode clusters use Ethertype 0x8890. These packets are used by cluster units to find other cluster units and to verify the status of other cluster units while the cluster is operating. You can change the Ethertype of these packets using the ha-eth-type option of the config system ha command.
  • HA heartbeat packets for Transparent mode clusters use Ethertype 0x8891. These packets are used by cluster units to find other cluster units and to verify the status of other cluster units while the cluster is operating. You can change the Ethertype of these packets using the hc-eth-type option of the config system ha command.
  • HA telnet sessions between cluster units over HA heartbeat links use Ethertype 0x8893. The telnet sessions are used to synchronize the cluster configurations. Telnet sessions are also used when an administrator uses the execute ha manage command to connect from one cluster unit CLI to another. You can change the Ethertype of these packets using the l2ep-eth-type option of the config system ha command.

Because heartbeat packets are recognized as level 2 frames, the switches and routers on your heartbeat network that connect to heartbeat interfaces must be configured to allow them. If level2 frames are dropped by these network devices, heartbeat traffic will not be allowed between the cluster units.

Some third-party network equipment may use packets with these Ethertypes for other purposes. For example,

Cisco N5K/Nexus switches use Ethertype 0x8890 for some functions. When one of these switches receives Ethertype 0x8890 packets from an attached cluster unit, the switch generates CRC errors and the packets are not forwarded. As a result, FortiGate units connected with these switches cannot form a cluster.

In some cases, if the heartbeat interfaces are connected and configured so regular traffic flows but heartbeat traffic is not forwarded, you can change the configuration of the switch that connects the HA heartbeat interfaces to allow level2 frames with Ethertypes 0x8890, 0x8891, and 0x8893 to pass.

Alternatively, you can use the following CLI options to change the Ethertypes of the HA heartbeat packets:

config system ha set ha-eth-type <ha_ethertype_4-digit_hex set hc-eth-type <hc_ethertype_4-digit_ex> set l2ep-eth-type <l2ep_ethertype_4-digit_hex>

end

For example, use the following command to change the Ethertype of the HA heartbeat packets from 0x8890 to 0x8895 and to change the Ethertype of HA Telnet session packets from 0x8891 to 0x889f:

config system ha set ha-eth-type 8895 set l2ep-eth-type 889f

end

Enabling or Disabling HA heartbeat encryption and authentication

You can enable HA heartbeat encryption and authentication to encrypt and authenticate HA heartbeat packets. HA heartbeat packets should be encrypted and authenticated if the cluster interfaces that send HA heartbeat packets are also connected to your networks.

If HA heartbeat packets are not encrypted the cluster password and changes to the cluster configuration could be exposed and an attacker may be able to sniff HA packets to get cluster information. Enabling HA heartbeat message authentication prevents an attacker from creating false HA heartbeat messages. False HA heartbeat messages could affect the stability of the cluster.

HA heartbeat encryption and authentication are disabled by default. Enabling HA encryption and authentication could reduce cluster performance. Use the following CLI command to enable HA heartbeat encryption and authentication.

config system ha set authentication enable set encryption enable

end

HA authentication and encryption uses AES-128 for encryption and SHA1 for authentication.

 

3rd-Party Servers Open Ports

3rd-Party Servers Open Ports

Incoming Ports

Purpose

Protocol/Port
FortiAnalyzer LDAP & PKI Authentication TCP/389, UDP/389
Log & Report TCP/21, TCP/22
Configuration Backups TCP/22
Alert Emails TCP/25
DNS UDP/53
NTP UDP/123
SNMP Traps UDP/162
Report Query TCP/389
Syslog & OFTP TCP or UDP/514
RADIUS UDP/1812

3rd-Party Servers

Incoming Ports

Purpose

Protocol/Port
FortiAuthenticator SMTP, Alerts, Virus Sample TCP/25
DNS UDP/52
Windows AD TCP/88
NTP UDP/123
LDAP TCP or UDP/389
Domain Control TCP/445
LDAPS TCP/636
FSSO & Tiers TCP/8002, TCP/8003
FortiManager DNS UDP/53
NTP UDP/123
SNMP Traps UDP/162
Proxied HTTPS Traffic TCP/443
RADIUS UDP/1812
Outgoing Ports

Purpose

Protocol/Port
FortiAuthenticator FSSO & Tiers TCP/8002, TCP/8003
FortiGate FSSO TCP/8000

FortiSandbox Open Ports

FortiSandbox Open Ports

Incoming Ports

Purpose

Protocol/Port
FortiGate OFTP TCP/514
Others SSH CLI Management TCP/22
Telnet CLI Management TCP/23
Web Admin TCP/80, TCP/443
OFTP Communication with FortiGate & FortiMail TCP/514
Third-party proxy server for ICAP servers ICAP: TCP/1344

ICAPS: TCP/11344

Outgoing Ports

Purpose

Protocol/Port
FortiGuard

(FortiSandbox will use a random port

picked by the kernel)

FortiGuard Distribution Servers TCP/8890
FortiGuard Web Filtering Servers UDP/53, UDP/8888

Services and port numbers required for FortiSandbox                                                           FortiSandbox

Outgoing Ports

Purpose

Protocol/Port
FortiSandbox

Community

Cloud

(FortiSandbox will use a random port

picked by the kernel)

Upload detected malware information TCP/443, UDP/53

Services and port numbers required for FortiSandbox

The tables above show all the services required for FortiSandbox to function correctly. You can use the diagnostic FortiSandbox command test-network to verify that all the services are allowed by the upstream. If the result is Passed, then there is no issue. If there is an issue with a specific service, it will be shown in the command output, and inform you which port needs to be opened.

This command checks:

  • VM Internet access l Internet connection l System DNS resolve speed l VM DNS resolve speed l Ping speed l Wget speed
  • Web Filtering service l FortiSandbox Community Cloud service

FortiManager Open Ports

FortiManager Open Ports

Incoming Ports

Purpose

Protocol/Port
FortiClient FortiGuard Queries UDP/53, UDP/8888
FortiGate Management TCP/541
IPv6 TCP/542
Log & Report TCP or UDP/514
Secure SNMP UDP/161, UDP/162
FortiGuard Queries TCP/8890, UDP/53
FortiGuard AV/IPS UDP/9443
FortiMail Reg, Config Backup, Config/Firmware

Pull

TCP/443
SNMP Traps UDP/162
FortiManager FortiClient Manager TCP/6028

FortiManager Open Ports

Incoming Ports

Purpose

Protocol/Port
Others SSH CLI Management TCP/22
Telnet CLI Management TCP/23
SNMP Traps UDP/162
Web Admin TCP/80, TCP/443
Outgoing Ports

Purpose

Protocol/Port
FortiAnalyzer Syslog & OFTP TCP/514, UDP/514
Registration TCP/541
FortiGate AV/IPS Push UDP/9443
SSH CLI Management TCP/22
Management TCP/541
SNMP Poll UDP/161, UDP/162
FortiGuard Queries TCP/443
FortiGuard AV/IPS Updates, URL/AS Update,

Firmware, SMS, FTM, Licensing, Policy

Override Authentication

TCP/443
Registration TCP/80
FortiMail Config/Firmware Push TCP/22
SNMP Poll UDP/161
FortiManager FortiClient Manager TCP/6028
3rd-Party Servers DNS UDP/53
NTP UDP/123
SNMP Traps UDP/162
Proxied HTTPS Traffic TCP/443
RADIUS UDP/1812

 

FortiManager

FortiMail Open Ports

FortiMail Open Ports

FortiMail Open Ports

Incoming Ports

Purpose

Protocol/Port
Email Client Quarantine View/Retrieve TCP/80 or TCP/443 or TCP/110
SMTP or SMTPS TCP/25 or TCP/465
POP3 or POP3S TCP/110 or TCP/995 (server mode only)
IMAP or IMAPS TCP/143 or TCP/993 (server mode only)
FortiManager Config/Firmware Push TCP/22
SNMP Poll TCP/161
FortiGuard AV Push UDP/9443
External Email Server SMTP or SMTPS TCP/25 or 465
Protected Email Server SMTP or SMTPS TCP/25 or 465
Outgoing Ports

Purpose

Protocol/Port
FortiAnalyzer Syslog UDP/514
FortiManager Reg, Config Backup, Config/Firmware

Pull

TCP/443
SNMP Traps UDP/162
FortiGuard AS Rating UDP/53
AV/AS Update TCP/443
External

Email Server

SMTP or SMTPS TCP/25 or TCP/465
Protected Email Server SMTP or SMTPS TCP/25 or TCP/465
POP3 Auth TCP/110
IMAP Auth TCP/143

FortiMail Open Ports

Outgoing Ports

Purpose

Protocol/Port
Others Dyn DNS TCP/80 etc.
DNS, RBL UDP/53
NTP UDP/123
Alert Email TCP/25
LDAP or LDAPS TCP/389 or TCP/636
RADIUS Auth TCP/1812
NAS TCP/21, TCP/22, TCP/2049

Note that FortiMail uses the following URLs to access the FortiGuard Distribution Network (FDN):

  • fortiguard.net l service.fortiguard.net l support.fortinet.com

Furthermore, FortiMail performs these queries and updates listed below using the following ports and protocols:

  • FortiGuard Antispam rating queries: UDP 53, 8888, 8889 l FortiGuard AntiVirus Push updates: UDP 9443 l FortiGuard Antispam or AntiVirus updates: TCP 443

FortiGuard Open Ports

FortiGuard Open Ports

FortiGuard Open Ports

Incoming Ports

Purpose

Protocol/Port
FortiAuthenticator AV/IPS Updates TCP/443
Virus Sample TCP/25
SMS, FTM, Licensing, Policy Override Authentication, URL/AS Updates TCP/443
Registration TCP/80
FortiClient AV Update & Registration TCP/80
URL/AS Rating, DNS, FDN, FortiGuard Queries UDP/53, UDP/8888
FortiCloud Registration TCP/443
FortiGate AV/IPS Update, Management, Firmware, SMS, FTM, Licensing, Policy Override TCP/443, TCP/8890
Cloud App DB TCP/9582 (flow.fortinet.net)
FortiGuard Queries, DNS UDP/53, UDP/8888
Registration TCP/80
Alert Emails, Virus Sample TCP/25
Central Management, Analysis TCP/541
FortiMail AS Rating UDP/53
AV/AS Update TCP/443
FortiManager AV/IPS Updates, URL/AS Update,

Firmware, SMS, FTM, Licensing, Policy

Override Authentication

TCP/443
Registration TCP/80
FortiSandbox

(FortiSandbox will use a random port

picked by the kernel)

FortiGuard Distribution Servers TCP/8890
FortiGuard Web Filtering Servers UDP/53, UDP/8888

FortiGuard Open Ports

Outgoing Ports

Purpose

Protocol/Port
FortiGate Management TCP/541
AV/IPS UDP/9443
FortiMail AV Push UDP/9443
FortiManager AV/IPS UDP/9443

 

 

Incoming Ports

Purpose

Protocol/Port
Admin by Console or PC TCP/443 or TCP/80 or TCP/22 or TCP/23

 

Outgoing Ports

Purpose

Protocol/Port
FortiGuard Registration TCP/443

FortiDB Open Ports

FortiDB Open Ports

Incoming Ports

Purpose

Protocol/Port
Others SSH CLI Management TCP/22
Telnet CLI Management TCP/23
Web Admin TCP/80, TCP/443
SNMP Traps UDP/161
Agent Communication TCP/9116, TCP/9117
Incoming Ports

Purpose

Protocol/Port
FortiAnalyzer AV/IPS Updates, SMS, FTM, Licensing, Policy Overrides, RVS, URL/AS Update TCP/443
FortiAP-S FortiGuard Queries UDP/53, UDP/8888
Syslog, OFTP, Registration, Quarantine, Log & Report TCP/514
Event Logs UDP/5246