FortiClient 7.4.2 XML Reference
FortiClient 7.4.2 XML Reference
FortiClient 7.4.2
FORTINET DOCUMENT LIBRARY
https://docs.fortinet.com
FORTINET BLOG
https://blog.fortinet.com
FORTIGUARD LABS
https://www.fortiguard.com
FEEDBACK
Email: [email protected]
Introduction 5
XML configuration file 6
File structure 6
Configuration file sections 6
File extensions 7
Encrypted username and password 7
IP addresses 7
Boolean values 7
Metadata 7
System settings 8
UI settings 8
Log settings 12
Proxy settings 15
Update settings 16
FortiProxy settings 19
Certificate settings 21
User identity settings 22
Installer settings 23
Endpoint control 23
VPN 32
VPN options 32
SSL VPN 38
IPsec VPN 50
Antivirus 69
General options 69
Real-time protection 70
On-demand scans 75
Scheduled scans 78
Email 81
Quarantine 82
Antiransomware 83
SSOMA 85
Web filter 86
Video Filter 98
Application firewall 101
Vulnerability scan 105
Sandboxing 108
Anti-exploit detection 111
Removable media access 112
Cloud-based malware protection 114
ZTNA 116
PAM 118
Apple 119
For information on FortiClient installation and configuration, see the FortiClient Administration
Guide.
FortiClient supports importation and exportation of its configuration via an XML file. The following sections describe the
file's structure, sections, and provide descriptions for the elements you use to configure different FortiClient options:
File structure
This section defines and describes the format of the FortiClient XML configuration file:
Section Description
System settings on General settings not specific to any module listed or that affect more than one module.
page 8
Endpoint control on Endpoint control settings, including: enabling enforcement and off-net updates, skipping
page 23 confirmation, disabling ability to unregister, and silent registration.
VPN on page 32 Global VPN, IPsec VPN, and SSL VPN settings.
Antivirus on page 69 Antivirus (AV) settings, including: FortiGuard Distribution Network (FDN) analytics, real-time
protection (RTP), behavior when a virus is detected, and quarantining.
Web filter on page 86 Web filter settings, including: logging, white list priority, maximum violations, rate IP
addresses, profiles, safe search, and YouTube education filter.
File extensions
You can generate a configuration file on the Settings pane in FortiClient or by using the FCConfig.exe command line
program, which is installed with FortiClient.
Several XML tag elements are named <password>. FortiClient always encrypts all such tags during configuration
exports. For modified and imported configurations, FortiClient accepts encrypted or plain-text passwords.
Here is an example of an encrypted password tag element. The password starts with Enc:
<password>Enc9b4e1aae22c65e638aed4e47fbd225256a3b7a24b53f8370d6bc3b9aa90cecd5086c995f0549
e944b4acc951e4844529c71d81280de2b951</password>
IP addresses
IP address tag elements usually refer to IPv4 addresses. A fully qualified domain name (FQDN) may also be provided.
Here are two examples:
l Single IP address: 74.196.82.243
l FQDN: www.fortinet.com
Boolean values
Elements that determine if you have enabled or disabled a feature use Boolean values. The configuration file accepts 0
for false and 1 for true.
Metadata
The <forticlient_configuration> XML tag contains all of the XML tags and data in a configuration file. An empty
configuration file looks like this:
<?xml version=”1.0” encoding=”utf-8”?>
<forticlient_configuration>
</forticlient_configuration>
The first line of the file includes an XML version number as well as the encoding. This is the standard XML start tag.
FortiClient supports the following metadata:
Metadata Description
<forticlient_version>7.4.2.xxx</forticlient_ FortiClient version number if you exported the file from
version> FortiClient.
<version>7.4.2</version> Configuration file version.
<exported_by_version>7.4.2.xxx</exported_by_ FortiClient version number when the file was exported
version> from FortiClient.
<date>2025/08/30</date> Date the file was generated.
<partial_configuration>0</partial_ Controls whether the configuration is replaced or added
configuration> in import/restore. Possible values are 0 or 1.
<os_version>windows</os_version> Indicates whether this configuration is generated from
Microsoft Windows or macOS. Possible values are
windows or MacOSX.
<os_architecture>x64</os_architecture> Indicates the OS architecture. Possible values are x64 or
x32.
System settings
The <system> </system> XML tags contain system settings. System settings include the following subsections:
UI settings
<title>
<![CDATA[]]>
</title>
</title>
<statement>
<remediation>
<![CDATA[]]>
</remediation>
</statement>
<remediation>
<remediation>
<![CDATA[]]>
</remediation>
</remediation>
</quarantine>
</replacement_messages>
<avatars>
<enabled>[0|1]</enabled>
<providers>
<google>
<clientid>
<![CDATA[]]>
</clientid>
<clientsecret>
<![CDATA[]]>
</clientsecret>
<redirecturl>
<![CDATA[]]>
</redirecturl>
</google>
<linkedin>
<clientid>
<![CDATA[]]>
</clientid>
<clientsecret>
<![CDATA[]]>
</clientsecret>
<redirecturl>
<![CDATA[]]>
</redirecturl>
</linkedin>
<salesforce>
<clientid>
<![CDATA[]]>
</clientid>
<clientsecret>
<![CDATA[]]>
</clientsecret>
<redirecturl>
<![CDATA[]]>
</redirecturl>
</salesforce>
</providers>
</avatars>
</ui>
</system>
</forticlient_configuration>
The following table provides the XML tags for UI settings, as well as the descriptions and default values where
applicable:
<flashing_system_ Enable the flashing system tray icon. The system tray flashes 1
tray_icon> while FortiClient background processes are running.
Boolean value: [0 | 1]
<hide_system_tray_ Hide or display the FortiClient system tray icon. 0
icon>
Boolean value: [0 | 1]
<suppress_admin_ Do not ask for an administrator password for tasks that require 0
prompt> superuser permissions to complete.
Boolean value: [0 | 1]
<show_host_tag> Display the applied host tag on the FortiClient. EMS applies host 0
tags based on compliance verification rules. See the FortiClient
EMS Administration Guide for details.
Boolean value: [0 | 1]
<password> Enter an encrypted or non-encrypted password to set the
configuration lock upon connecting with a FortiGate. EMS uses
MD5 to hash the lockdown password and encrypts the hash. This
legacy element is meant to support FortiClient 7.0.6 and earlier
versions.
<lock> Enter an encrypted or non-encrypted password to set the
configuration lock upon connecting with a FortiGate. EMS uses
SHA256 to hash the lockdown password and encrypts the hash.
l If you configure <lock> with a value, FortiClient does not use
l de-de: German
l ja-jp: Japanese
l kr-kr: Korean
<avatars> elements Contains the elements for configuring whether FortiClient retrieves an avatar picture for
the endpoint user from web applications, such as Google, LinkedIn, or Salesforce.
<enabled> Enable FortiClient to retrieve an avatar picture for the user from
web applications, such as Google, LinkedIn, or Salesforce.
Boolean value: [0 | 1]
<providers> Identifies which cloud applications FortiClient uses to retrieve an
avatar picture for the endpoint users.
<google> Settings that allow FortiClient uses to retrieve an avatar picture from Google. Integration
with Google requires a Google API Console project.
<clientid> Enter your Google API Console project's client ID.
<clientsecret> Enter your Google API Console project's client secret.
<redirecturl> Enter your Google API Console project's redirect URL.
<linkedin> Settings that allow FortiClient uses to retrieve an avatar picture from LinkedIn.
Integration with LinkedIn requires LinkedIn Developers knowledge.
<clientid> Enter your LinkedIn client ID.
<clientsecret> Enter your LinkedIn client secret.
Log settings
<send_os_events>
<enabled>1</enabled>
<interval>120</interval>
</send_os_events>
<send_ms_exch_events>
<enabled>1</enabled>
<interval>120</interval>
</send_ms_exch_events>
</remote_logging>
</log_settings>
</system>
</forticlient_configuration>
The following table provides the XML tags for log settings, as well as the descriptions and default values where
applicable.
functionality.
l 4: Warning. Functionality could be affected.
<remote_logging> elements
All elements for <remote_logging> apply only to remote logs. The elements do not affect the behavior of local logs.
<log_upload_enabled> Upload FortiClient logs to FortiAnalyzer or FortiManager. 0
Boolean value: [0 | 1]
<log_upload_server> Enter the FortiAnalyzer IP address or hostname/fully qualified
domain name (FQDN). With Chromebook profiles, use the format
https://FAZ-IP:port/logging.
If using a port other than the default, use <address>:<port>.
For FortiAnalyzer Cloud, you must enter an FQDN. You cannot
enter an IP address. For FortiAnalyzer Cloud, the FQDN is the
URL that you use to access the FortiAnalyzer Cloud instance. For
example, the FQDN may be 1208151.ca-west-
1.fortianalyzer.forticloud.com. You may also need to configure the
server name indication (SNI).
<log_uploadserver_ Enter the SNI for FortiAnalyzer Cloud.
sni>
<log_upload_ssl_ Enable using the SSL protocol when uploading logs to 1
enabled> FortiAnalyzer or FortiManager.
Boolean value: [0 | 1]
<log_upload_freq_ Enter the log frequency upload period in minutes. 90
minutes>
<log_generation_ Configure how often logs are created in seconds. 900
timeout_sec>
<log_compressed> Enable log compression.
Boolean value: [0 | 1]
<log_retention_days> Enter the number of days to retain the logs in the upload queue 90
before being deleted in the event that the FortiClient cannot reach
the server. This setting does not affect local logs.
<log_protocol> Enter the remote server type:
l faz: FortiAnalyzer
<netlog_server> Enter the syslog server's IP address. FortiClient uses this setting
only when <log_protocol> is set to syslog.
<netlog_categories> Enter the bitmask of logs to upload. 7
Bitmask:
1 = traffic logs
2 = vulnerability logs
4 = event logs
Since these are bitmasks, you may combine them as follows:
<send_os_events> elements
Send OS event logs to FortiAnalyzer.
<enabled> Enable sending OS event logs to FortiAnalyzer. 1
<send_ms_exch_events> elements
Send Microsoft Exchange server logs to FortiAnalyzer.
<enabled> Enable sending Microsoft Exchange server logs to FortiAnalyzer. 1
The FortiShield daemon protects FortiClient’s own file system and registry settings from
modification by unauthorized persons.
Proxy settings
The <proxy></proxy> XML tags contain proxy-related information. If a proxy server configuration is required for
Internet access, use the fields here to specify that configuration so that FortiClient's functions can use Fortinet's Internet-
based services. Only FortiClient-originated traffic uses these settings.
<forticlient_configuration>
<system>
<proxy>
<update>0</update>
<fail_over_to_fdn>0</fail_over_to_fdn>
<online_scep>0</online_scep>
<virus_submission>0</virus_submission>
<type>http</type>
<address></address>
<port>80</port>
<username>Encrypted/NonEncrypted_UsernameString</username>
<password>Encrypted/NonEncrypted_PasswordString</password>
</proxy>
</system>
</forticlient_configuration>
The following table provides the XML tags for proxy settings, as well as the descriptions and default values where
applicable.
l SOCKS4
l SOCKS5
Update settings
The <update></update> XML tags contain update-related information. Use this field to specify how FortiClient
performs updates from FDN servers.
<forticlient_configuration>
<system>
<update>
<use_custom_server>0</use_custom_server>
<restrict_services_to_regions/>
<use_legacy_fdn>1</use_legacy_fdn>
<server></server>
<port>80</port>
<fail_over_
servers>server1.fortinet.com:8008;172.81.30.6:80;server2.fortinet.com:80</fa
il_over_servers>
<timeout>60</timeout>
<failoverport>8000</failoverport>
<fail_over_to_fdn>1</fail_over_to_fdn>
<use_proxy_when_fail_over_to_fdn>1</use_proxy_when_fail_over_to_fdn>
<scheduled_update>
<enabled>1</enabled>
<type>interval</type>
<daily_at>03:00</daily_at>
<update_interval_in_hours>3</update_interval_in_hours>
</scheduled_update>
<submit_virus_info_to_fds>0</submit_virus_info_to_fds>
<submit_vuln_info_to_fds>1<submit_vuln_info_to_fds>
</update>
</system>
</forticlient_configuration>
The following table provides the XML tags for update settings, as well as the descriptions and default values where
applicable.
<scheduled_update> elements
Use these elements to define when FortiClient should look for engine, signature, and software updates, if enabled.
<enabled> Enable scheduled updates. 1
Boolean value: [0 | 1]
<type> Update frequency: daily or at regular hourly intervals. Enter one of the interval
following:
l daily
l interval
<daily_at> Time of the day, in the format HH:MM (24-hour clock), this field is mandatory if
the <type> tag is set to daily. This field specifies the time that FortiClient
should check for updates.
<update_interval_ Update interval in hours if the <type> tag is set to interval. This field specifies 3
in_hours> the frequency that FortiClient should check for updates. The minimum value
is 1, the maximum value is 24.
When <use_custom_server> is 0 or both <server> and <fail_over_servers> are each an empty (null) string,
FortiClient only uses the default FDN server for software updates. If a string is specified in <server> and
communication fails with that server, each of the servers specified in <fail_over_servers> are tried until one
succeeds. If that also fails, then software updates are not possible unless <fail_over_to_fdn> is set to 1.
If communication fails with the server(s) specified in both <server> and <fail_over_servers>, <fail_over_to_
fdn> determines the next course of action as listed:
FortiProxy settings
The <fortiproxy></fortiproxy> XML tags contain FortiProxy information. FortiProxy is responsible for
HTTP/HTTPS filtering and SMTP/POP3 AV scanning. Use these settings to configure FortiProxy’s behavior.
<forticlient_configuration>
<system>
<fortiproxy>
<enabled>1</enabled>
<enable_https_proxy>1</enable_https_proxy>
<http_timeout>60</http_timeout>
<client_comforting>
<pop3_client>1</pop3_client>
<pop3_server>1</pop3_server>
<smtp>1</smtp>
</client_comforting>
<selftest>
<enabled>0</enabled>
<last_port>-172</last_port>
<notify>0</notify>
</selftest>
</fortiproxy>
</system>
</forticlient_configuration>
The following table provides the XML tags for FortiProxy settings, as well as the descriptions and default values where
applicable.
<client_comforting> elements
Some email clients require continuous response from the server or a connection error may be triggered. Use these
settings to enable this feature.
<pop3_client> Enable POP3 client comforting. Client comforting helps to prevent POP3 1
clients from complaining that the server has not responded in time.
Boolean value: [0 | 1]
<pop3_server> Enable POP3 server comforting. Server comforting helps to prevent POP3 1
servers from complaining that the client has not responded in time. This
may be used in a situation where FortiClient is installed on a mail server.
Boolean value: [0 | 1]
<smtp> Enable SMTP client comforting. SMTP comforting helps to prevent SMTP 1
clients from complaining that the server has not responded in time.
Boolean value: [0 | 1]
<selftest> elements
FortiProxy can detect if other software is disrupting internal traffic between FortiProxy's internal modules. It does this
by sending packets periodically to 1.1.1.1, which are intercepted by FortiClient and dropped (they never leave the
computer). If the packets are not detected, then it is deemed highly likely that third party software is intercepting the
packets, signaling that FortiProxy is not able to perform regular traffic filtering.
<enabled> Enable self tests. FortiProxy periodically checks its own connectivity to 1
determine if it is able to proxy other applications' traffic.
Boolean value: [0 | 1]
<last_port> Last port number used. This is the highest port number you want to allow 65535
FortiProxy to listen on. Use to prevent FortiProxy from binding to another
port that another service normally uses.
Port range: 65535 to 10000
<notify> When enabled, the user sees a bubble notification when self-testing 1
detects that a third party program has blocked HTTP/HTTPS filtering and
SMTP/POP3 AV scanning.
Boolean value: [0 | 1]
Certificate settings
The <certificates></certificates> XML tags contain certificate settings. Following are the subsections:
l CRL: uses Online Certificate Status Protocol (OCSP).
l HDD
l CA certificate: base 64 encoded CA certificate.
<forticlient_configuration>
<system>
<certificates>
<crl>
<ocsp />
</crl>
<hdd />
<ca>
<certificate> <![CDATA[-----BEGIN CERTIFICATE-----
MIID8zCCAtugAwIBAgIIL8XAg5HYn7owDQYJKoZIhvcNAQELBQAwgakxCzAJBgNV
................................................................
1/LXOCM24niwVTn2pnik9mspwxygAwExE9gQPfbXaV14BrZcp5yzaorHLXKFNQmA
NdVcSlvoMqsDpeKU2Ohz+MXj1GsowHor96x88wbLe0CpeJLkwgmmH5TO37ke2Awp
H9idHn5MdQ==
-----END CERTIFICATE----- ]]>
</certificate>
</ca>
</certificates>
</system>
</forticlient_configuration>
The following table provides the XML tags for certificate settings, as well as the descriptions and default values where
applicable.
<crl><OCSP> elements
<enabled> Use OCSP.
Boolean value: [0 | 1]
<server> Enter the server IP address.
<port> Enter the server port number.
<ca><certificate> Contains a certificate in PEM format. FortiClient installs this certificate
if it is embedded in the configuration.
The following table provides the XML tags for user identity settings, as well as the descriptions and default values where
applicable.
If you have not configured the above options or the user does not provide their identity information, EMS obtains and
displays user details from the endpoint OS.
Installer settings
The following table provides the XML tags for installer settings, as well as the descriptions and default values where
applicable:
Endpoint control
FortiClient usually downloads endpoint control configuration elements from FortiClient EMS after FortiClient connects to
FortiClient EMS. There are two sections:
l The <endpoint_control></endpoint_control> XML tags contain general endpoint control attributes.
l Configuration details relating to specific FortiClient services, such as antivirus, Web Filter, Application Firewall,
Vulnerability Scan, and so on. You can find these in the respective configuration elements of the services affected.
The following lists general endpoint control attributes:
<forticlient_configuration>
<endpoint_control>
<checksum></checksum>
<enabled>1</enabled>
<socket_connect_timeouts>1:5</socket_connect_timeouts>
<system_data>Encrypted_String</system_data>
<disable_unregister>0</disable_unregister>
<invalid_cert_action>warn</invalid_cert_action>
<edr_collector>1</edr_collector>
<disable_fgt_switch>1</disable_fgt_switch>
<ping_server>172.17.61.178:8010</ping_server>
<fgt_name>FG_Hostname</fgt_name>
<fgt_sn>Encrypted_Serial_Number_String</fgt_sn>
<offnet_update>1</offnet_update>
<user>Encrypted_UsernameString</user>
<skip_confirmation>0</skip_confirmation>
<fgt_logoff_on_fct_shutdown>1</fgt_logoff_on_fct_shutdown>
<show_bubble_notifications>1</show_bubble_notifications>
<avatar_enabled>1</avatar_enabled>
<silent_registration>0</silent_registration>
<notify_fgt_on_logoff>1</notify_fgt_on_logoff>
<forensics_license>1</forensics_license>
<fgt_
list>Enc256828d1e23febfa0b789324ea1fc9cf45acdc8af3888e7aa26677825bbf8d5d123fcb
c2884f3cb3f2a03b5414ab01e6a6c22762add0c4f209224f052dec29491e1d15eee4a1a290a81b
367c3d4a5251258ed14921e231547f52d9e3</fgt_list>
<send_software_inventory>1</send_software_inventory>
<onnet_addresses></onnet_addresses>
<onnet_mac_addresses></onnet_mac_addresses>
<onnet_rules>
<rule_set>
<dhcp_server>
<dhcp_code>
<criterion id="0">123456</criterion>
<criterion id="1">abcdef</criterion>
</dhcp_code>
</dhcp_server>
<local_ip>
<ip_address>
<criterion id="2">1234:abc:abcd:0012::0/64</criterion>
<criterion id="3">2.2.2.2/3</criterion>
</ip_address>
<mac_address>
<criterion id="4">11-11-11-11-11-11</criterion>
<criterion id="5">22-22-22-22-22-22</criterion>
</mac_address>
</local_ip>
</rule_set>
<rule_set>
<connection_media>
<wifi_ssid>
<criterion id="6">STAFF-NETWORK, WPA3</criterion>
</wifi_ssid>
<ethernet>
<criterion id="10">Connected</criterion>
</ethernet>
</connection_media>
<local_ip>
<ip_address>
<criterion id="7">1.1.1.1-2.2.2.2</criterion>
</ip_address>
<mac_address>
<criterion id="8">33-33-33-33-33-33</criterion>
</mac_address>
</local_ip>
<vpn>
<tunnel_name>
<criterion id="9">SSLVPN_VAN</criterion>
</tunnel_name>
</vpn>
</rule_set>
</onnet_rules>
<ui>
<display_antivirus>1</display_antivirus>
<display_sandbox>1</display_sandbox>
<display_webfilter>1</display_webfilter>
<display_firewall>1</display_firewall>
<display_vpn>1</display_vpn>
<display_vulnerability_scan>1</display_vulnerability_scan>
<display_ztna>1</display_ztna>
<display_compliance>1</display_compliance>
<hide_compliance_warning>0</hide_compliance_warning>
</ui>
<alerts>
<notify_server>1</notify_server>
<alert_threshold>1</alert_threshold>
</alerts>
<nac>
<processes>
<process id="1" name="MS Word" rule="present">
<signature name="processname.exe">SHA256 of file</signature>
<signature name="processname.exe">SHA256 of file</signature>
</process>
<process id="2" name="FortiToken" rule="absent">
<signature name="processname2.exe"/>
</process>
</processes>
<files>
<path id="1">Path to folder/file</path>
<path id="2">Path to folder/file</path>
</files>
<registry>
<path id="1">path to 32bit or 64bit registry key or value</path>
<path id="2">path to 32bit or 64bit registry key or value</path>
</registry>
</nac>
</endpoint_control>
</forticlient_configuration>
The following table provides the XML tags for endpoint control, as well as descriptions and default values where
applicable:
certificate.
l warn: warn the user about the invalid server certificate. Ask the
certificate.
When creating a new FortiClient installer on EMS, if EMS considers the
certificate used for endpoint control invalid, the default action in the new
installer is allow. The EMS administrator can modify this setting as
desired.
Boolean value: [0 | 1]
<edr_collector> Enable the Endpoint Detection & Response (EDR) feature. This feature
is only available for endpoints connected to FortiClient Cloud with an
EDR or extended detection & response license. See Creating a unified
installer with EDR feature.
Boolean value: [0 | 1]
<disable_fgt_switch> Disable the FortiGate switch.
Boolean value: [0 | 1]
This XML setting is intended for use with <silent_registration>
and <disable_unregister>. If Enable Registration Key for
FortiClient is enabled on the FortiGate, configure this password in the
<registration_password> XML tag and enter the IP address or
addresses of the FortiGate in the <addresses> XML tag.
When <disable_fgt_switch> is configured as 1, the FortiGate
switch is disabled. As a result:
l FortiClient does not probe the default gateway.
discovered.
<fgt_logoff_on_fct_ Notify FortiGate or EMS when FortiClient is shut down. 1
shutdown>
Boolean value: [0 | 1]
<show_bubble_ Show notifications in the system tray when a configuration update is 1
notification> received from the FortiGate or EMS.
Boolean value: [0 | 1]
<onnet_rules> elements Configure rule sets to determine endpoint on-/off-fabric status. The endpoint must
satisfy all rules within a rule set to be determined as on-fabric. An endpoint only needs
to satisfy one rule set to be considered on-fabric. See On-fabric Detection Rules.
Use the <criterion id> element as shown in the sample code to configure multiple
criteria for each rule type.
<dhcp_server> The endpoint is considered as satisfying the rule if it is connected to a
DHCP server that matches the specified configuration. Use the
following subelements:
l <dhcp_code>
l <mac_address>
<ems_connection> The endpoint is considered as satisfying the rule if it is online with EMS.
Configure this element as follows:
<ems_connection>
<online_status>Online with EMS</online_status>
</ems_connection>
<local_ip> The endpoint is considered as satisfying the rule if its Ethernet or
wireless IP address is within the range specified and if its default
gateway MAC address matches the one specified, if configured.
Configuring the MAC address is optional. Use the following
subelements:
l <ip_address>
l <mac_address>
<gateway> The endpoint is considered as satisfying the rule if its default gateway
configuration matches the IP address specified and MAC address, if
configured. Configuring the MAC address is optional. Use the following
subelements:
l <ip_address>
l <mac_address>
<ping_server> The endpoint is considered as satisfying the rule if it can access the
server at the specified IP address. Use the <ip_address>
subelement.
<public_ip> The endpoint is considered as satisfying the rule if its public (WAN) IP
address matches the one specified. Use the <ip_address>
subelement.
<connection_media> The endpoint is considered as satisfying the rule if its network settings
match all configured fields. Use the <wifi_ssid> and <ethernet>
subelements as the sample code shows. When using the Ethernet rule,
you must add at least one network identification rule.
<vpn> The endpoint is considered as satisfying the rule if its VPN settings
match all configured fields. Use the <tunnel_name> subelement as
the sample code shows.
<ui> elements
<display_antivirus> Display the Malware Protection tab in FortiClient.
Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in the
FortiClient console.
<display_sandbox> Display the Sandbox Detection tab in FortiClient.
Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in the
FortiClient console.
<display_webfilter> Display the Web Filter tab in FortiClient.
Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in the
FortiClient console.
<display_firewall> Display the Application Firewall tab in FortiClient.
Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in the
FortiClient console.
<display_vpn> Display the Remote Access tab in FortiClient.
Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in the
FortiClient console.
<display_ Display the Vulnerability Scan tab in FortiClient.
vulnerability_
scan> Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in the
FortiClient console.
<display_ztna> Display the ZTNA Connection Rules tab in FortiClient.
Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in the
FortiClient console.
<display_compliance> This tag is not used in FortiClient 5.6.0 and newer versions.
Display the Compliance tab in FortiClient.
Boolean value: [0 | 1]
When this setting is configured as 0, this feature does not display in
FortiClient.
<hide_compliance_ Hide the compliance enforcement feature message from the Fabric 1
warning> Telemetry tab. This option is only enforced on FortiClient endpoints
connected to EMS. This option does not apply to monitored clients.
Boolean value: [0 | 1]
<alerts> elements
<nac> elements
This element (with its child elements) specifies up to three compliance rules for network access control (NAC). When
an endpoint configuration does not comply with all compliance rules configured in the <nac> elements, non-
compliance is triggered, and network access might be blocked. For information about how compliance rules work, see
the FortiClient Administration Guide. Compliance rules apply only when FortiClient is connected to FortiGate. When
FortiClient is not connected to FortiGate, compliance rules are not used. You can configure none, one, or all three
compliance rules.
<processes> (Optional) Create a policy for an application and its signature.
<process> Identify an application name and its signature. This element should be
repeated for each unique application name.
<process id="" ID of this process entry and name of the application that is associated
name="" rule=""> with the signatures, for example, <process id="1" name="MS
Word">. Also shows whether FortiGate compliance rules require this
process to be present or absent on the endpoint.
<signature name="" /> Identify the application name and signature. Repeat this element for
different versions of the same application.
<files> (Optional) Create a policy for a file and path. The policy is compliant
when the file can be found.
<path id=""/> ID of this path entry. Identify the path of the file for the policy. Repeat
this element for each unique file path.
<registry> (Optional) Create a policy for a registry key or value.
<path id=""/> ID of this path entry. Identify the registry key or value. When the path
ends with a forward slash (/), it identifies a key. When the path ends
without a forward slash, it identifies a registry value.
When you disable <ui> elements from displaying in the FortiClient console, the modules are
still installed as part of the FortiClient installation. To configure a VPN-only installation, you can
use FortiClient EMS. When selecting VPN only, all other modules are not part of the FortiClient
installation.
VPN
The <VPN></VPN> XML tags contain VPN-related information. The VPN configuration includes the following
subsections. The VPN options section describes global options that apply to both SSL VPN and IPsec VPN. Options
specific to SSL VPN or IPsec VPN are described in their respective sections:
VPN options
The VPN <options> XML tag contains global information controlling VPN states:
<forticlient_configuration>
<vpn>
<options>
<current_connection_name>ssldemo</current_connection_name>
<current_connection_type>ssl</current_connection_type>
<autoconnect_tunnel></autoconnect_tunnel>
<autoconnect_only_when_offnet>0</autoconnect_only_when_offnet>
<autoconnect_on_install>1</autoconnect_on_install>
<keep_running_max_tries>0</keep_running_max_tries>
<secure_remote_access>0</secure_remote_access>
<minimize_window_on_connect>1</minimize_window_on_connect>
<allow_personal_vpns>1</allow_personal_vpns>
<disable_connect_disconnect>0</disable_connect_disconnect>
<on_os_start_connect>SSLVPN_Name</on_os_start_connect>
<on_os_start_connect_has_priority>0</on_os_start_connect_has_priority>
<show_vpn_before_logon>1</show_vpn_before_logon>
<use_windows_credentials>1</use_windows_credentials>
<use_legacy_vpn_before_logon>0</use_legacy_vpn_before_logon>
<show_negotiation_wnd>0</show_negotiation_wnd>
<disable_dead_gateway_detection>0</disable_dead_gateway_detection>
<vendor_id></vendor_id>
<disable_internet_check>0</disable_internet_check>
<suppress_vpn_notification>0</suppress_vpn_notification>
<after_logon_saml_auth>0</after_logon_saml_auth>
<certs_require_keyspec>0</certs_require_keyspec>
<vpn_before_logon_style>1</vpn_before_logon_style>
<lockdown>
<enabled>1</enabled>
<grace_period>120</grace_period>
<max_attempts>3</max_attempts>
<exceptions>
<apps>
<app>C:\Program Files\Google\Chrome\Application\chrome.exe</app>
</apps>
<ips>
<ip>172.17.81.15/32</ip>
</ips>
<icdb_domains>
<name>adobe</name>
</icdb_domains>
<domains>
<domain>google.com</domain>
</domain>
</exceptions>
<detect_captive_portal>
<enabled>1</enabled>
<login_method>1</login_method>
<os_active_probing>0</os_active_probing>
</detect_captive_portal>
</lockdown>
</options>
</vpn>
</forticlient_configuration>
The following table provides XML tags for VPN options, as well as the descriptions and default values where applicable:
l 1 - Electron
l 2 - WebBrowser
<lockdown> elements
<enabled> Configure network lockdown for off-Fabric endpoints when they are
not connected to VPN.
When network lockdown is configured, when an endpoint goes off-
fabric, a grace period that the EMS administrator configured comes
into effect. During the grace period, an endpoint can continue to
access LAN and the internet without restrictions. If the endpoint
does not connect to VPN by the end of the grace period, the
endpoint cannot access LAN and the internet. It can still access IP
addresses and applications that the EMS administrator has
configured as exceptions, as well as connect to VPN to regain
internet access. For a full tunnel VPN, LAN is only accessible if
exclusive routing is disabled. The administrator configures a limited
number of attempts for the end user to enter valid VPN credentials.
Once the user reaches the limit, the endpoint is in network
lockdown.
<grace_period> Configure a grace period in seconds during which an off-fabric 120
endpoint that is not connected to VPN can continue to access LAN
and the internet without restrictions.
<max_attempts> Configure the maximum number of attempts for the end user of an 3
off-Fabric endpoint to enter valid VPN credentials.
<lockdown><exceptions> elements
<apps><app> Enter the path to applications that an off-Fabric endpoint that is not
connected to VPN can still access.
<ips><ip> Enter IP addresses that an off-Fabric endpoint that is not connected
to VPN can still access. This element supports entering an IP
address or subnet. You can specify a port or port range to access
the IP address or subnet on. TCP, UDP, and ICMP are supported.
<icdb_domains><name> Enter a SaaS application name that an off-Fabric endpoint that is
not connected to VPN can still access.
<domains><domain> Enter domains or fully qualified domain names that an off-Fabric
endpoint that is not connected to VPN can still access.
<lockdown><detect_captive_portal> elements
<enabled> Enable captive portal detection.
Boolean value: [0 | 1]
SSL VPN
SSL VPN configurations consist of one <options> section, followed by one or more VPN <connection> sections:
<forticlient_configuration>
<vpn>
<sslvpn>
<options>
<enabled>1</enabled>
<dnscache_service_control>0</dnscache_service_control>
<!-- 0=disable dnscache, 1=do not tounch dnscache service, 2=restart dnscache
service, 3=sc control dnscache paramchange -->
<prefer_sslvpn_dns>1</prefer_sslvpn_dns>
<use_gui_saml_auth>0</use_gui_saml_auth>
<use_legacy_ssl_adapter>1</use_legacy_ssl_adapter>
<preferred_dtls_tunnel>1</preferred_dtls_tunnel>
<block_ipv6>0</block_ipv6>
<no_dhcp_server_route>0</no_dhcp_server_route>
<no_dns_registration>0</no_dns_registration>
<disallow_invalid_server_certificate>0</disallow_invalid_server_certificate>
<keep_connection_alive>1</keep_connection_alive>
<show_auth_cert_only>1</show_auth_cert_only>
<negative_split_tunnel_metric>10</negative_split_tunnel_metric>
<disable_smartdns_for_splitdns>0</disable_smartdns_for_splitdns >
</options>
<connections>
<connection>
<name>SSLVPN_Name</name>
<description>Optional_Description</description>
<no_vnic_dns_server>0</no_vnic_dns_server>
<server>ssldemo.fortinet.com:10443</server>
<username>Encrypted/NonEncrypted_UsernameString</username>
<single_user_mode>0</single_user_mode>
<disclaimer_msg></disclaimer_msg>
<redundant_sort_method>0</redundant_sort_method>
<sso_enabled>1</sso_enabled>
<keep_fqdn_resolution_consistency>1</keep_fqdn_resolution_consistency>
<use_external_browser>1</use_external_browser>
<warn_invalid_server_certificate>1</warn_invalid_server_certificate>
<machine>1</machine>
<dual_stack>0</dual_stack>
<keep_running>0</keep_running>
<resolve_to_ipv4_only>1</resolve_to_ipv4_only>
<android_cert_path>certdir/</android_cert_path>
<pkcs11_lib>/usr/lib/sample.so</pkcs11_lib>
<ui>
<show_remember_password>1</show_remember_password>
<show_alwaysup>1</show_alwaysup>
<show_autoconnect>1</show_autoconnect>
<save_username>0</save_username>
<save_password>0</save_password>
</ui>
<password>Encrypted/NonEncrypted_PasswordString</password>
<allow_standard_user_use_system_cert>0</allow_standard_user_use_system_cert>
<prompt_certificate>0</prompt_certificate>
<prompt_username>0</prompt_username>
<fgt>1</fgt>
<certificate/>
<on_connect>
<script>
<os>windows</os>
<script>
<![CDATA[test]]>
</script>
</script>
</on_connect>
<on_disconnect>
<script>
<os>windows</os>
<script>
<![CDATA]]>
</script>
</script>
</on_disconnect>
<traffic_control>
<enabled>1</enabled>
<mode>2</mode>
<enable_local_lan>1</enable_local_lan>
<apps>
<app>%LOCALAPPDATA%\Microsoft\Teams\Current\Teams.exe</app>
<app>%appdata%\Zoom\bin\Zoom.exe</app>
<app>C:\Program Files (x86)\Microsoft\Skype for Desktop\skype.exe</app>
<app>%LOCALAPPDATA%\GoToMeeting\18068\g2mcomm.exe</app>
<app>%LOCALAPPDATA%\GoToMeeting\18068\g2mlauncher.exe</app>
<app>%LOCALAPPDATA%\GoToMeeting\18068\g2mstart.exe</app>
</apps>
<fqdns>
<fqdn>webex.com</fqdn>
<fqdn>gotomeeting.com</fqdn>
<fqdn>youtube.com</fqdn>
</fqdns>
</traffic_control>
<tags>
<allowed>NoVuln</allowed>
<prohibited>CriticalVuln</prohibited>
</tags>
<azure_auto_login>
<enabled></enabled>
<azure_app>
<tenant_name></tenant_name>
<client_id></client_id>
</azure_app>
</azure_auto_login>
<vpn_before_logon>
<username_format>username</username_format>
<vpn_before_logon/>
</connection>
</connections>
</sslvpn>
</vpn>
</forticlient_configuration>
The following table provides SSL VPN XML tags, as well as the descriptions and default values where applicable:
<sslvpn><options> elements
<enabled> Enable SSL VPN. 1
Boolean value: [0 | 1]
<dnscache_service_ FortiClient disables Windows OS DNS cache when FortiClient establishes an 0
control> SSL VPN tunnel.
The DNS cache is restored after FortiClient disconnects from the SSL VPN
tunnel. If you observe that FSSO clients do not function correctly when an SSL
VPN tunnel is up, use <prefer_sslvpn_dns> to control the DNS cache.
Boolean value: [0 | 1]
<prefer_sslvpn_ When this setting is 0, the custom DNS server from SSL VPN is not added to 0
dns> the physical interface. When this setting is 1, the custom DNS server from SSL
VPN is prepended to the physical interface.
Boolean value: [0 | 1]
<use_gui_saml_ This field controls how FortiClient presents SAML authentication in the GUI. 0
auth> Behavior differs based on whether you are using FortiClient's internal browser
or an external browser, and whether the endpoint is joined to a Microsoft Entra
ID domain or not.
The following table summarizes the behavior for scenarios when FortiClient
has established an SSL VPN connection, disconnects, and the user attempts
to reconnect to the tunnel. In all scenarios, Save Password is disabled for the
tunnel.
<use_gui_saml_auth>=1 <use_gui_saml_auth>=0
FortiClient FortiClient
does not prompts for
prompt for credentials
Joined to
credentials when the
Entra
FortiClient prompts for when the user tries to
ID domain
credentials when the user user tries to reconnect to
tries to reconnect to the reconnect to connect to
tunnel. the tunnel. the tunnel.
Boolean value: [0 | 1]
<use_legacy_ssl_ When this setting is 0, FortiClient uses the new SSL driver. When this setting is 1
adapter> 1, FortiClient uses the legacy SSL driver.
Boolean value: [0 | 1]
<preferred_dtls_ DTLS supported only by FortiClient (Windows).
tunnel>
When this setting is 0, FortiClient uses TLS, even if dtls-tunnel is enabled
on the FortiGate.
When this setting is 1, FortiClient uses DTLS, if it is enabled on the FortiGate,
and tunnel establishment is successful. If dtls-tunnel is disabled on the
FortiGate, or tunnel establishment is not successful, FortiClient uses TLS.
DTLS tunnel uses UDP instead of TCP and can increase throughput over
VPN.
Boolean value: [0 | 1]
<block_ipv6> When this setting is 0, FortiClient allows IPv6 traffic. 0
When this setting is 1, FortiClient blocks IPv6 traffic sent outside of VPN
interface when it establishes the VPN connection.
Boolean value: [0 | 1]
<no_dhcp_server_ When this setting is 0, FortiClient creates the DHCP public server route upon 0
route> tunnel establishment.
When this setting is 1, FortiClient does not create the DHCP public server
route upon tunnel establishment.
Boolean value: [0 | 1]
<no_dns_ When this setting is 0, FortiClient registers the SSL VPN adapter's address in 0
registration> the Active Directory (AD) DNS server.
When this setting is 1, FortiClient does not register the SSL VPN adapter's
address in the AD DNS server.
When this setting is 2, FortiClient registers only its own tunnel interface IP
address in the AD DNS server.
<disallow_invalid_ When this setting is 0 and an invalid server certificate is used, FortiClient 0
server_ displays a popup that allows the user to continue with the invalid certificate.
certificate>
When this setting is 1 and an invalid server certificate is used, FortiClient does
not display a popup and stops the connection.
Boolean value: [0 | 1]
<keep_connection_ Retry restoring an active VPN session connection.
alive>
Boolean value: [0 | 1]
<show_auth_cert_ Suppress dialogs from displaying certificates that do not bear OID 0
only> "1.3.6.1.5.5.7.3.2" (client authentication).
Boolean value: [0 | 1]
The <connections> XML tag may contain one or more <connection> elements. Each <connection> has the
following:
l Information used to establish an SSL VPN connection
l on_connect: a script to run right after a successful connection
l on_disconnect: a script to run just after a disconnection
The following table provides VPN connection XML tags, the description, and the default value (where applicable).
response speed.
l When the value is 2, FortiClient determines the order by the TCP
IPv4 traffic can only go through the IPv4 tunnel, and IPv6 traffic
can only go through the IPv6 tunnel.
In summary, for dual stack to function, you must enable the
respective dual_stack settings for both FortiClient and FortiGate.
In addition, the FortiGate firewall policy must allow both IPv4 and IPv6
traffic to go through VPN tunnel.
Only FortiClient (Windows) supports this feature.
Boolean value: [0 | 1]
<keep_running> Ensures that the VPN tunnel remains connected if it is already 0
connected. This is useful when there is a temporary network
disconnection that causes the tunnel to drop the connection.
An EMS-pushed tunnel with <keep_running> enabled displays
with Save Password and Always Up enabled and grayed out in the
FortiClient GUI.
Boolean value: [0 | 1]
<resolve_to_ipv4_only> If the SSL VPN gateway FQDN resolves to both IPv4 and IPv6
addresses, this option forces FortiClient to use the IPv4 address to
access the SSL VPN gateway. When this option is disabled,
FortiClient may use the IPv4 or IPv6 address to access the SSL VPN
gateway.
Boolean value: [0 | 1]
<android_cert_path> Configure a certificate location for FortiClient (Android) to
automatically go to when doing the following:
l When selecting a certificate
<certificate> elements
The XML sample provided only shows XML configuration when using a username and password. See Sample XML
using certificate authentication for example of XML configuration for certificate authentication.
<certificate><common_name> elements
Elements for common name of the certificate for VPN logon.
<match_type> Enter the type of matching to use:
l simple: exact match
l wildcard: wildcard
<certificate><issuer> elements
Elements about the issuer of the certificate for VPN logon.
<match_type> Enter the type of matching to use:
l simple: exact match
l wildcard: wildcard
<oid> elements
Elements about the certificate object identifier (OID). This feature filters based on all certificate OIDs at the first level of
the X.509 ASN.1 structure. Nested, or second level OIDs are not supported, other than the EKU (extendedKeyUsage)
OIDs.
<match_type> Enter the type of matching to use. Choose from:
l simple: exact match
l wildcard: wildcard
<ui> elements
The FortiGate sets the elements of the <ui> XML tag by following an SSL VPN connection.
<traffic_control> elements
<enabled> To enable the feature, enter 1. To disable the feature, enter 0.
Boolean value: [0 | 1]
<mode> Enter 2 so that network traffic for all defined applications and FQDNs
do not go through the VPN tunnel. You must configure this value as 2
for the feature to function.
<app> Specify which application traffic to exclude from the VPN tunnel and
redirect to the endpoint physical interface. You can specify an
application using its process name, full path, or the directory where it
is installed. You can enter file and directory paths using environment
variables, such as %LOCALAPPDATA%,%programfiles%, and
%appdata%. Do not use spaces in the tail or head, or add double
quotes to full paths with spaces.
To find a running application's full path, on the Details tab in Task
Manager, add the Image path name column.
Once the VPN tunnel is up, FortiClient binds the specified
applications to the physical interface.
In the example, for the GoToMeeting path, 18068 refers to the current
installed version of the GoToMeeting application.
<enable_local_lan> Enable access to local resources while an application-based split 1
tunnel with an exclusion rule configured is up. If this option is
disabled, access to local resources may be denied when an
application-based split tunnel with an exclusion rule configured is up.
Boolean value: [0 | 1]
<tags> elements
<allowed> Enter the desired Zero Trust tags. If EMS has tagged this endpoint
with any of the entered tags, FortiClient allows the endpoint to
connect to the VPN tunnel.
<prohibited> Enter the desired Zero Trust tags. If EMS has tagged this endpoint
with any of the entered tags, FortiClient denies the endpoint from
connecting to the VPN tunnel.
<azure_auto_login> elements
<enabled> Enable Azure auto login. When the user logs in to the endpoint using
an Azure Active Directory (AD) account, FortiClient silently
automatically connects to the VPN tunnel configured in
<vpn><options><autoconnect_tunnel>. <sso_enabled>
must be enabled for this feature to function correctly.
See the EMS Administration Guide for details on configuring this
feature.
Boolean value: [0 | 1]
<azure_auto_login><azure_app> elements
<tenant_name> Enter the Azure domain name as obtained from the Azure portal.
<client_id> Enter the FortiClient application ID as obtained from the Azure portal.
<vpn_before_ Configure the required username format for the VPN before logon username
logon><username_ connection to successfully authenticate. This configuration takes
format>
effect if the user selects their username from the left panel when
logging into Windows instead of typing in their name. Configure one
of the following:
l username
The VPN connection name is mandatory. If a connection of this type and this name exists,
FortiClient overwrites its values with the new ones.
<sslvpn>
...
<connections>
<connection>
...
<certificate>
<common_name>
<match_type>
<![CDATA[wildcard]]>
</match_type>
<pattern>
<![CDATA[*]]>
</pattern>
</common_name>
<issuer>
<match_type>
<![CDATA[simple]]>
</match_type>
<pattern>
<![CDATA[Certificate Authority]]>
</pattern>
</issuer>
<oids>
<oid>
<match_type>simple</match_type>
<pattern>
<![CDATA[1.3.6.1.5.5.7.3.1]]>
</pattern>
</oid>
</oids>
...
</certificate>
</connection>
</connections>
...
<sslvpn>
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
See the first XML sample in this topic for a more complete XML configuration example using a username and password
for authentication.
The <on_connect> and <on_disconnect> tags both have very similar tag structure:
<on_connect>
<script>
<os>windows</os>
<script>
<script>
<![CDATA[
]]>
</script>
</script>
</script>
</on_connect>
<on_disconnect>
<script>
<os>windows</os>
<script>
<script>
<![CDATA[
]]>
</script>
</script>
</script>
</on_disconnect>
The following table provides <on_connect> and <on_disconnect> XML tags, the description, and the default value
(where applicable):
Write the MS DOS batch or macOS shell script inside the CDATA tag. Write one line per command like a regular batch
script file. The script is executed in the context of the user that connected the tunnel.
Wherever you write #username# in your script, it is automatically substituted with the XAuth username of the user
that connected the tunnel.
Wherever you write #password# in your script, it is automatically substituted with the XAuth password of the user that
connected the tunnel.
Remember to check your XML file before deploying to ensure that carriage returns or line feeds are present.
The example scripts above show a script that mounts several network drives after an SSL connection is established. The
drives are unmounted with the corresponding scripts in the <on_disconnect> XML tag.
The <on_connect> and <on_disconnect> scripts are optional.
IPsec VPN
IPsec VPN configurations have one <options> section and one or more <connection> sections:
<forticlient_configuration>
<vpn>
<ipsecvpn>
<options>
<show_auth_cert_only>1</show_auth_cert_only>
<disconnect_on_log_off>1</disconnect_on_log_off>
<enabled>1</enabled>
<beep_if_error>0</beep_if_error>
<beep_continuously>0</beep_continuously>
<beep_seconds>0</beep_seconds>
<usewincert>1</usewincert>
<use_win_current_user_cert>1</use_win_current_user_cert>
<use_win_local_computer_cert>1</use_win_local_computer_cert>
<block_ipv6>1</block_ipv6>
<uselocalcert>0</uselocalcert>
<usesmcardcert>1</usesmcardcert>
<enable_udp_checksum>0</enable_udp_checksum>
<mtu_size>1300</mtu_size>
<disable_default_route>0</disable_default_route>
<check_for_cert_private_key>1</check_for_cert_private_key>
<enhanced_key_usage_mandatory>1</enhanced_key_usage_mandatory
<no_dns_registration>0</no_dns_registration>
<prefer_ipsecvpn_dns>1</prefer_ipsecvpn_dns>
</options>
<connections>
<connection>
<name>ipsecdemo</name>
<single_user_mode>0</single_user_mode>
<type>manual</type>
<disclaimer_msg></disclaimer_msg>
<redundant_sort_method>0</redundant_sort_method>
<failover_sslvpn_connection>SSLVPN_Name</failover_sslvpn_connection>
<machine>0</machine>
<keep_running>0</keep_running>
<keep_fqdn_resolution_consistency>1</keep_fqdn_resolution_consistency>
<transport_mode>0</transport_mode>
<udp_port>5000</udp_port>
<android_cert_path>certdir/</android_cert_path>
<ui>
<show_passcode>0</show_passcode>
<show_remember_password>1</show_remember_password>
<show_alwaysup>1</show_alwaysup>
<show_autoconnect>1</show_autoconnect>
<save_username>0</save_username>
<save_password>0</save_password>
</ui>
<ike_settings>
<version>1</version>
<prompt_certificate>0</prompt_certificate>
<implied_SPDO>0</implied_SPDO>
<implied_SPDO_timeout>0</implied_SPDO_timeout>
<server>ipsecdemo.fortinet.com</server>
<authentication_method>Preshared Key</authentication_method>
<auth_data>
<preshared_
key>Encdab907ed117eafaadd92f82b3e768b5414e4402dbd4df4585d4202c65940f
1b2e9</preshared_key>
</auth_key>
<mode>aggressive</mode>
<dhgroup>5;</dhgroup>
<key_life>28800</key_life>
<localid></localid>
<nat_traversal>1</nat_traversal>
<sase_mode>1</sase_mode>
<mode_config>1</mode_config>
<enable_local_lan>0</enable_local_lan>
<block_outside_dns>0</block_outside_dns>
<nat_alive_freq>5</nat_alive_freq>
<dpd>1</dpd>
<dpd_retry_count>3</dpd_retry_count>
<dpd_retry_interval>5</dpd_retry_interval>
<fgt>1</fgt>
<enable_ike_fragmentation>0</enable_ike_fragmentation>
<run_fcauth_system>0</run_fcauth_system>
<sso_enabled>1</sso_enabled>
<use_external_browser>0</use_external_browser>
<ike_saml_port>10428</ike_saml_port>
<failover_sslvpn_connection>SSLVPN HQ</failover_sslvpn_connection>
<xauth_timeout>120</xauth_timeout>
<session_resume>1</session_resume>
<networkid>0</networkid>
<xauth>
<enabled>1</enabled>
<prompt_username>1</prompt_username>
<username>Encrypted/NonEncrypted_UsernameString</username>
<password />
<attempts_allowed>1</attempts_allowed>
<use_otp>0</use_otp>
</xauth>
<proposals>
<proposal>3DES|MD5</proposal>
<proposal>3DES|SHA1</proposal>
<proposal>AES128|MD5</proposal>
<proposal>AES128|SHA1</proposal>
<proposal>AES256|SHA256</proposal>
</proposals>
</ike_settings>
<ipsec_settings>
<remote_networks>
<network>
<addr>0.0.0.0</addr>
<mask>0.0.0.0</mask>
</network>
</remote_networks>
<ipv4_split_exclude_networks>
<subnetwork>10.10.10.0/255.255.255.0</subnetwork>
<subnetwork>13.106.56.0/25</subnetwork>
<subnetwork>teams.microsoft.com</subnetwork>
</ipv4_split_exclude_networks>
<dhgroup>5</dhgroup>
<key_life_type>seconds</key_life_type>
<key_life_seconds>1800</key_life_seconds>
<key_life_Kbytes>5120</key_life_Kbytes>
<replay_detection>1</replay_detection>
<pfs>1</pfs>
<use_vip>1</use_vip>
<virtualip>
<dnsserver_secondary></dnsserver_secondary>
<!-- server IP address -->
<type>modeconfig</type>
<ip>0.0.0.0</ip>
<mask>0.0.0.0</mask>
<dnsserver>0.0.0.0</dnsserver>
<winserver>0.0.0.0</winserver>
</virtualip>
<proposals>
<proposal>3DES|MD5</proposal>
<proposal>3DES|SHA1</proposal>
<proposal>AES128|MD5</proposal>
<proposal>AES128|SHA1</proposal>
<proposal>AES256|SHA256</proposal>
</proposals>
</ipsec_settings>
<on_connect>
<script>
<os>windows</os>
<script>
<![CDATA[]]>
</script>
</script>
</on_connect>
<on_disconnect>
<script>
<os>windows</os>
<script>
<script>
<![CDATA[]]>
</script>
</script>
</script>
</on_disconnect>
<traffic_control>
<enabled>1</enabled>
<mode>2</mode>
<apps>
<app>%LOCALAPPDATA%\Microsoft\Teams\Current\Teams.exe</app>
<app>%appdata%\Zoom\bin\Zoom.exe</app>
<app>C:\Program Files (x86)\Microsoft\Skype for Desktop\skype.exe</app>
<app>%LOCALAPPDATA%\GoToMeeting\18068\g2mcomm.exe</app>
<app>%LOCALAPPDATA%\GoToMeeting\18068\g2mlauncher.exe</app>
<app>%LOCALAPPDATA%\GoToMeeting\18068\g2mstart.exe</app>
</apps>
<fqdns>
<fqdn>webex.com</fqdn>
<fqdn>gotomeeting.com</fqdn>
<fqdn>youtube.com</fqdn>
</fqdns>
</traffic_control>
<tags>
<allowed>NoVuln</allowed>
<prohibited>CriticalVuln</prohibited>
</tags>
<azure_auto_login>
<enabled>1</enabled>
<azure_app>
<client_id>...</client_id>
<tenant_name>...</tenant_name>
</azure_app>
</azure_auto_login>
<vpn_before_logon>
<username_format>username</username_format>
<vpn_before_logon/>
</connection>
</connections>
</ipsecvpn>
</vpn>
</forticlient_configuration>
The following table provides the XML tags for IPsec VPN, as well as the descriptions and default values where
applicable:
The <connections> XML tag may contain one or more <connection> element. Each <connection> has the
following:
l name and type: the name and type of connection
l Internet Key Exchange (IKE) settings: information used to establish an IPsec VPN connection
l IPsec settings:
l on_connect: a script to run right after a successful connection
The following table provides VPN connection XML tags, the description, and the default value (where applicable).
response speed.
l When the value is 2, FortiClient determines the order by the TCP
Boolean value: [0 | 1]
<keep_fqdn_resolution_ Keep IPsec VPN connection gateway IP address consistent by 0
consistency> keeping resolved FQDN in hosts file before FortiClient establishes
IPsec VPN connection.
Boolean value: [0 | 1]
<transport_mode> Configure the desired transport mode for this connection. Possible
values are:
l 0: UDP transport mode. This is the default and used for most
port and <tcp_port> fields. The values must match those set
on FortiOS using the following commands:
config system settings
set ike-port 500
set ike-tcp-port 443
end
You must also configure the following phase 1 settings on
FortiOS 7.4.2 and later versions:
config vpn ipsec phase1
edit
set nattraversal forced
set transport udp-fallback-tcp
next
end
On FortiOS 7.6, you can configure the following phase 1 settings:
config vpn ipsec phase1
edit
set nattraversal forced
set transport auto
next
end
If using FortiOS 7.4.1 or an earlier version, FortiClient will
connect to IPsec VPN using UDP mode as udp-fallback-
tcp and auto are unavailable.
This mode dynamically uses UDP or TCP based on network
conditions and NAT detection, automatically falling back to
TCP/443 if UDP or ESP traffic is blocked.
<udp_port> If <transport_mode> is configured as 0 or 2, configure a custom
port for UDP. If this element is not configured, the default port is used.
<tcp_port> If <transport_mode> is configured as 1 or 2, configure a custom
port for UDP. If this element is not configured, the default port is used.
<android_cert_path> Configure a certificate location for FortiClient (Android) to
automatically go to when doing the following:
l When selecting a certificate
<ui> elements
The elements of the <ui></ui> XML tags are set by the FortiGate following an IPsec VPN connection.
<show_passcode> Display Passcode instead of Password on the Remote Access tab in
the console.
Boolean value: [0 | 1]
<show_remember_ Display the Save Password checkbox in the console.
password>
Boolean value: [0 | 1]
<traffic_control> elements
<enabled> Enable or disable traffic control.
Boolean value: [0 | 1]
<mode> Enter 2 so that network traffic for all defined applications and FQDNs
do not go through the VPN tunnel. You must configure this value as 2
for the feature to function.
<app> Specify which application traffic to exclude from the VPN tunnel and
redirect to the endpoint physical interface. You can specify an
application using its process name, full path, or the directory where it
is installed. You can enter file and directory paths using environment
variables, such as %LOCALAPPDATA%,%programfiles%, and
%appdata%. Do not use spaces in the tail or head, or add double
quotes to full paths with spaces.
To find a running application's full path, on the Details tab in Task
Manager, add the Image path name column.
Once the VPN tunnel is up, FortiClient binds the specified
applications to the physical interface.
In the example, for the GoToMeeting path, 18068 refers to the current
installed version of the GoToMeeting application.
<fqdn> Specify which FQDN traffic to exclude from the VPN tunnel and
redirect to the endpoint physical interface. The FQDN resolved
IP address is dynamically added to the route table when in use, and is
removed after disconnection.
In the example, youtube.com equals youtube.com and
*.youtube.com.
After defining an FQDN, such as youtube.com in the example, if you
use any popular browser such as Chrome, Edge, or Firefox to access
youtube.com, this traffic does not go through the VPN tunnel.
<tags> elements
<allowed> Enter the desired security posture tags. If EMS has tagged this
endpoint with any of the entered tags, FortiClient allows the endpoint
to connect to the VPN tunnel.
<prohibited> Enter the desired security posture tags. If EMS has tagged this
endpoint with any of the entered tags, FortiClient denies the endpoint
from connecting to the VPN tunnel.
<azure_auto_login> elements
<enabled> Enable FortiClient to autoconnect to this IPsec VPN tunnel on a
Microsoft Entra ID domain-joined endpoint using the Entra ID
credentials. See Autoconnect to IPsec VPN using Entra ID logon
session information.
Boolean value: [0 | 1]
<azure_app><client_id> Enter the Entra ID enterprise application client ID. You can find this
information on the Entra ID portal.
<azure_app><tenant_ Enter the Azure tenant ID. You can find this information on the Entra
name> ID portal.
<vpn_before_ Configure the required username format for the VPN before logon username
logon><username_ connection to successfully authenticate. This configuration takes
format>
effect if the user selects their username from the left panel when
logging into Windows instead of typing in their name. Configure one
of the following:
l username
The VPN connection name is mandatory. If a connection of this type and this name exists,
FortiClient overwrites its values with the new ones.
IKE settings
FortiClient automatically performs IKE based on preshared keys (PSK) or X.509 digital certificates.
The following table provides the XML tags for IKE settings, as well as the descriptions and default values where
applicable:
l X509 Certificate
<eap_method> Define the EAP method used for authentication. Enter one of the 1
following:
l 1 to use EAP-MSCHAPv2 authentication
<auth_data> elements
<preshared_key> Encrypted value of the PSK.
<auth_data><certificate> elements
FortiClient searches all certificate stores until it finds a match for the certificate name and issuer supplied.
The XML sample provided in IPsec VPN on page 50 only shows XML configuration when using a PSK. See Sample
XML using certificate authentication for example of XML configuration for a System Store X509 certificate.
<auth_data><certificate><common_name> elements
Elements for common name of the certificate for VPN logon.
<match_type> Enter the type of matching to use:
l simple: exact match
l wildcard: wildcard
<auth_data><certificate><issuer> elements
l wildcard: wildcard
<auth_data><certificate><oids><oid> elements
Elements about the certificate object identifier (OID). This feature filters based on all certificate OIDs at the first level of
the X.509 ASN.1 structure. Nested, or second level OIDs are not supported, other than the EKU (extendedKeyUsage)
OIDs.
<match_type> Enter the type of matching to use. Choose from:
l simple: exact match
l wildcard: wildcard
<xauth> elements
<enabled> Enable IKE XAuth.
Boolean value: [0 | 1]
<prompt_username> Request a username.
Boolean value: [0 | 1]
<username> Encrypted or non-encrypted username on the IPsec server.
<password> Encrypted or non-encrypted password.
<attempts_allowed> Maximum number of failed login attempts allowed.
<use_otp> Use One Time Password (OTP). 0
When disabled, FortiClient does not respond to DPD during
XAuth.
When enabled, FortiClient responds to DPD during XAuth, which
may be necessary when two-factor authentication and DPD are
both involved.
Boolean value: [0 | 1]
<proposals> elements
<proposal> Encryption and authentication types to use, separated by a pipe.
Example:
<proposal>3DES|MD5<proposal>
Multiple elements accepted.
First setting: Encryption type: DES, 3DES, AES128, AES192,
AES256
Second setting: Authentication type: MD5, SHA1, SHA256,
SHA384, SHA512
<match_type>
<![CDATA[wildcard]]>
</match_type>
<pattern>
<![CDATA[*]]>
</pattern>
</common_name>
<issuer>
<match_type>
<![CDATA[simple]]>
</match_type>
<pattern>
<![CDATA[Certificate Authority]]>
</pattern>
</issuer>
</certificate>
</auth_data>
</ike_settings>
...
</connection>
</connections>
...
</ipsecvpn>
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
See IPsec VPN on page 50 for a more complete XML configuration example using a PSK for authentication.
IPsec settings
The following table provides the XML tags for IPsec settings, as well as the descriptions and default values where
applicable.
<remote_networks> elements
<network> Specifies a network address <addr> with subnet mask <mask>.
<addr> Network IP address.
<mask> Subnet mask to apply to network address <addr>.
<ipv4_split_ Configure negative split tunnel or network exclusion for IPsec VPN using the
exclude_ <subnetwork> subelement. This feature supports FQDN, resolved from the
networks>
client and expanded into a list of networks.
If negative split tunnel configuration is also received from FortiOS, FortiClient
uses the settings from FortiOS and ignores the <ipv4_split_exclude_
networks> settings. See Configure VPN remote gateway.
<dhgroup> A list of possible DH protocol groups, separated by semicolons.
<key_life_type> Phase 2 key re-key duration type. Select one of the following:
<virtualip> elements
<type> Enter the virtual IP address type: [modeconfig | dhcpoveripsec]
<ip> Enter the IP address.
<mask> Enter the Network mask.
<dnsserver> Enter the DNS server IP address.
<dnsserver_ Enter the secondary DNS server IP address.
secondary>
<winserver> Enter the Windows server IP address.
<proposals> elements
<proposal> Encryption and authentication types to use, separated by a pipe.
Example:
<proposal>3DES|MD5<proposal>
Multiple elements accepted.
First setting: Encryption type: DES, 3DES, AES128, AES192, AES256,
AES128GCM, AES 256GCM
Second setting: Authentication type: MD5, SHA1, SHA256, SHA384,
SHA512, PRF SHA1, PRF SHA256, PRF SHA384, PRF SHA512
The on_connect and on_disconnect structure and scripting format are similar to those described in SSL VPN on
page 38.
This section provides an example of a non-default IPsec VPN configuration. You can use this configuration if FortiClient
fails to connect to IPsec VPN and you see the following symptoms:
l When you view the FortiGate IKE and FortiClient debug logs, they show that FortiClient fails at phase-1.
l Packet capture shows that FortiGate sends some IKE packets with a packet length that is longer than the usual
Ethernet packet with regards to MTU, but FortiClient does not receive those packets.
In this case, you can try IKE fragmentation. You must make changes to the FortiGate and FortiClient configurations.
Enable IKE fragmentation on the FortiGate using the following FortiOS CLI commands:
config vpn ipsec phase1-interface
edit <your IPsec VPN>
set fragmentation enable
next
end
To configure FortiClient:
DPD example
This section provides an example of a non-default IPsec VPN configuration. You can use this configuration if both of the
following symptoms occur:
l FortiClient fails to connect to IPsec VPN
l When you view the FortiGate IKE debug log, you see that FortiOS sends R_U_THERE to FortiClient, but there is no
reply, and it times out.
In this case, you can increase the FortiGate DPD wait time and/or enable FortiClient IPsec multithread mode. However,
it is recommended not to enable FortiClient IPsec multithread mode if it is not necessary. You must make changes to the
FortiGate and FortiClient configurations.
Increase the FortiGate DPD wait time using the following FortiOS CLI commands:
config vpn ipsec phase1-interface
edit <your IPsec VPN>
set dpd-retrycount <configure a higher number>
set dpd-retryinterval <configure a higher number>
next
end
To configure FortiClient:
<use_otp>1</use_otp>
Antivirus
The <antivirus> </antivirus> XML tags contain AV configuration data. The following are subsections of the AV
configuration.
General options
This section has options that enable various services in the AV feature:
<forticlient_configuration>
<antivirus>
<enabled>1</enabled>
<signature_expired_notification>0</signature_expired_notification>
<scan_on_insertion>0</scan_on_insertion>
<shell_integration>1</shell_integration>
<advanced_shell_integration>
<hide_av_scan>0</hide_av_scan>
<hide_av_analyse>0</hide_av_analyse>
</advanced_shell_integration>
<antirootkit>4294967295</antirootkit>
<fortiguard_analytics>0</fortiguard_analytics>
<multi_process_limit>1</multi_process_limit>
</antivirus>
</forticlient_configuration>
The following table provides the XML tags for general AV options, as well as the descriptions and default values where
applicable.
Boolean value: [0 | 1]
<antirootkit> Enable antirootkit. This field is a bit mask. When set to 0, all antirootkit
features are disabled. 4294947295 (=0xffffffff) means all
antirootkit features are enabled.
<fortiguard_ Automatically send suspicious files to FortiGuard for analysis. 1
analytics>
Boolean value: [0 | 1]
<multi_process_ The number of AV scanning processes to use for scheduled or on-demand 0
limit> scans. The maximum is the number of CPU processors and cores.
When set to 0, FortiClient determines the optimal value.
Real-time protection
The <real_time_protection> element configures how the scanner processes files used by programs running on
the system.
Several tags are similar between this section and <on_demand_scanning>.
<forticlient_configuration>
<antivirus>
<real_time_protection>
<enabled>1</enabled>
<use_extreme_db>0</use_extreme_db>
<when>0</when>
<ignore_system_when>0</ignore_system_when>
<on_virus_found>0</on_virus_found>
<popup_alerts>0</popup_alerts>
<popup_registry_alerts>0</popup_registry_alerts>
<amsi_enabled>0</amsi_enabled>
<conflicting_rtp_action>disable</conflicting_rtp_action>
<compressed_files>
<scan>1</scan>
<maxsize>2</maxsize>
</compressed_files>
<riskware>
<enabled>1</enabled>
</riskware>
<adware>
<enabled>1</enabled>
</adware>
<heuristic_scanning>
<level>3</level>
<action>0</action>
</heuristic_scanning>
<scan_file_types>
<all_files>1</all_files>
<file_types>
<extensions>.386,.ACE,.ACM,.ACV,.ACX,.ADT,.APP,.ASD,.ASP,.ASX,.AVB,.AX,.AX2,.B
AT,.BIN,.BTM,.CDR,.CFM,.CHM,.CLA,.CLASS,.CMD,.CNN,.COM,.CPL,.CPT,.CPY,.CS
C,.CSH,.CSS,.DEV,.DLL,.DOC,.DOT,.DRV,.DVB,.DWG,.EML,.EXE,.FON,.GMS,.GVB,.
HLP,.HTA,.HTM,.HTML,.HTT,.HTW,.HTX,.HXS,.INF,.INI,.JPG,.JS,.JTD,.KSE,.LGP
,.LIB,.LNK,.MDB,.MHT,.MHTM,.MHTML,.MOD,.MPD,.MPP,.MPT,.MRC,.OCX,.PIF,.PL,
.PLG,.PM,.PNF,.PNP,.POT,.PPA,.PPS,.PPT,.PRC,.PWZ,.QLB,.QPW,.REG,.RTF,.SBF
,.SCR,.SCT,.SH,.SHB,.SHS,.SHT,.SHTML,.SHW,.SIS,.SMM,.SWF,.SYS,.TD0,.TLB,.
TSK,.TSP,.TT6,.VBA,.VBE,.VBS,.VBX,.VOM,.VSD,.VSS,.VST,.VWP,.VXD,.VXE,.WBK
,.WBT,.WIZ,.WK,.WML,.WPC,.WPD,.WSC,.WSF,.WSH,.XLS,.XML,.XTP</extensions>
<include_files_with_no_extension>0</include_files_with_no_extension>
</file_types>
</scan_file_types>
<exclusions>
<file />
<folder />
<file_types>
<extensions />
</file_types>
</exclusions>
</real_time_protection>
</antivirus>
</forticlient_configuration>
The following table provides the XML tags for RTP, as well as the descriptions and default values where applicable.
network files.
l 2: scan files when processes write them and disable scanning
network files.
l 3: scan files when processes read or write them and disable
network files.
l 5: scan files when processes write them and enable scanning
network files.
<ignore_system_ Configure one of the following: 2
when> l 0: scan files when system processes read or write them.
ActiveX installation)
l PowerShell (scripts, interactive use, and dynamic code
evaluation)
l Windows Script Host (wscript.exe and script.exe)
Boolean value: [0 | 1]
<conflicting_rtp_ FortiClient RTP may have conflicts with other AV products. Configure disable
action> one of the following for RTP:
l disable: disable FortiClient RTP. You may want to configure
<compressed_files> elements
<scan> Scan archive files, including zip, rar, and tar files, for threats. 1
Boolean value: [0 | 1]
<maxsize> Only scan files under the specified size in MB. 2
A number up to 65535. 0 means no limit. For compressed files,
FortiClient supports a maximum file size of 1 GB for antivirus
scanning. For a compressed file with a size larger than 1 GB,
FortiClient scans it after decompression.
<riskware> element
<adware> element
<enabled> Scan for adware. Adware is a form of software that downloads or 1
displays unwanted ads when a user is online.
Boolean value: [0 | 1]
<heuristic_scanning> elements
The new FortiClient AV engine incorporates a smarter signature-less machine learning (ML)-based advanced threat
detection. The antimalware solution includes ML models static and dynamic analysis of threats.
<level> This setting applies to real-time and on-demand scans. Enter one of
the following:
l 0: normal
engine heuristics
l 4: both, without waiting to determine if system is highly infected
<action> The action FortiClient performs if it finds a virus. Enter one of the
following:
l 0: detect and notify only (with log entries, no other action)
<scan_file_types> element
<all_files> Enabled scanning of all file types. If enabled, ignore the <file_ 1
types> element.
Boolean value: [0 | 1]
<scan_file_types><file_types> elements
<extensions> Comma separated list of extensions to scan.
<include_files_ Determines whether to scan files with no extension. 0
with_no_
extension> Boolean value: [0 | 1]
<exclusions> elements
FortiClient supports using wildcards and path variables to specify files and folders to exclude from scanning.
FortiClient supports the following wildcards and variables, among others:
l Using wildcards to exclude a range of file names with a specified extension, such as Edb*.jrs
l Using wildcards to exclude all files with a specified extension, such as *.jrs
<sandboxing> element
<enabled> Enable FortiSandbox configuration.
Boolean value: [0 | 1]
<sandbox_address> Specify the IP address for FortiSandbox.
<timeout> Specify how long to wait in seconds for FortiSandbox results before
allowing file access. When set to 0 seconds, file access is granted
without waiting for FortiSandbox results.
Range: 0-4294967295 in seconds
<use_sandbox_ Enable using FortiSandbox signatures.
signatures>
Boolean value: [0 | 1]
<check_for_ Specify how often to check for FortiSandbox signatures when <use_
signatures_ sandbox_signatures> is set to 1.
every>
Boolean value: [0 | 1]
<action_on_error> Specify whether to block traffic when FortiSandbox finds errors. 0
When this setting is 0, traffic is passed. When this setting is 1, traffic
is blocked.
Boolean value: [0 | 1]
<scan_usb> Enable sending files from USB drives to FortiSandbox for scanning. 0
When this setting is 0, files are not scanned. When this setting is 1,
files are scanned.
Boolean value: [0 | 1]
<scan_mapped_ Enable sending files from mapped drives to FortiSandbox for 0
drives> scanning. When this setting is 0, files are not scanned. When this
setting is 1, files are scanned.
Boolean value: [0 | 1]
On-demand scans
The <on_demand_scanning> element defines how the AV scanner handles scanning of files that the end user
manually requested.
<forticlient_configuration>
<antivirus>
<on_demand_scanning>
<use_extreme_db>0</use_extreme_db>
<on_virus_found>4</on_virus_found>
<pause_on_battery_power>1</pause_on_battery_power>
<allow_admin_to_stop>1</allow_admin_to_stop>
<signature_load_memory_threshold>8</signature_load_memory_threshold>
<automatic_virus_submission>
<enabled>0</enabled>
<smtp_server>fortinetvirussubmit.com</smtp_server>
<username />
<password>Encrypted/NonEncrypted_PasswordString</password>
</automatic_virus_submission>
<compressed_files>
<scan>1</scan>
<maxsize>0</maxsize>
</compressed_files>
<riskware>
<enabled>1</enabled>
</riskware>
<adware>
<enabled>1</enabled>
</adware>
<heuristic_scanning>
<level>3</level>
<action>2</action>
</heuristic_scanning>
<scan_file_types>
<all_files>1</all_files>
<file_types>
<extensions>.386,.ACE,.ACM,.ACV,.ACX,.ADT,.APP,.ASD,.ASP,.ASX,.AVB,.AX,.AX2,.B
AT,.BIN,.BTM,.CDR,.CFM,.CHM,.CLA,.CLASS,.CMD,.CNN,.COM,.CPL,.CPT,.CPY,.CS
C,.CSH,.CSS,.DEV,.DLL,.DOC,.DOT,.DRV,.DVB,.DWG,.EML,.EXE,.FON,.GMS,.GVB,.
HLP,.HTA,.HTM,.HTML,.HTT,.HTW,.HTX,.HXS,.INF,.INI,.JPG,.JS,.JTD,.KSE,.LGP
,.LIB,.LNK,.MDB,.MHT,.MHTM,.MHTML,.MOD,.MPD,.MPP,.MPT,.MRC,.OCX,.PIF,.PL,
.PLG,.PM,.PNF,.PNP,.POT,.PPA,.PPS,.PPT,.PRC,.PWZ,.QLB,.QPW,.REG,.RTF,.SBF
,.SCR,.SCT,.SH,.SHB,.SHS,.SHT,.SHTML,.SHW,.SIS,.SMM,.SWF,.SYS,.TD0,.TLB,.
TSK,.TSP,.TT6,.VBA,.VBE,.VBS,.VBX,.VOM,.VSD,.VSS,.VST,.VWP,.VXD,.VXE,.WBK
,.WBT,.WIZ,.WK,.WML,.WPC,.WPD,.WSC,.WSF,.WSH,.XLS,.XML,.XTP</extensions>
<include_files_with_no_extension>0</include_files_with_no_extension>
</file_types>
</scan_file_types>
<exclusions>
<file></file>
<folder></folder>
<file_types>
<extensions></extensions>
</file_types>
</exclusions>
</on_demand_scanning>
</antivirus>
</forticlient_configuration>
The following table provides the XML tags for on-demand scans, as well as the descriptions and default values where
applicable.
<heuristic_scanning> elements
The new FortiClient AV engine incorporates a smarter signature-less machine learning (ML)-based advanced threat
detection. The antimalware solution includes ML models static and dynamic analysis of threats.
<level> This setting applies to real-time and on-demand scans.
Enable or disable ML:
l 0: disable ML.
value defaults to 2.
<automatic_virus_submission> elements
<enabled> Automatically submit suspicious files to FortiGuard for 0
analysis. You do not receive feedback for files submitted for
analysis. The FortiGuard team is able to create signatures
for any files that are submitted for analysis and determined
to be malicious.
Boolean value: [0 | 1]
<smtp_server> SMTP server IP address or FQDN. fortinetvirussubmit.com
<compressed_files> elements
<scan> Scan archive files, including zip, rar, and tar files, for 1
threats.
Boolean value: [0 | 1]
<maxsize> Maximum compressed file size to scan in MB. A number up 0
to 65535. 0 means no limit.
<riskware> elements
<enabled> Scan for riskware. Riskware refers to legitimate programs 1
which, when installed and executed, presents a possible
but not definite risk to the computer.
Boolean value: [0 | 1]
<adware> element
<enabled> Scan for adware. Adware is a form of software that 1
downloads or displays unwanted ads when a user is online.
Boolean value: [0 | 1]
<scan_file_types> element
<all_files> Scan all file types. If enabled, ignore the <file_types> 1
element.
Boolean value: [0 | 1]
<exclusions> elements
<file> Full path to a file to exclude from on-demand scanning.
Wildcards are not accepted. Element may be repeated to
list more files.
<folder> Full path to a directory to exclude from on-demand
scanning. Element may be repeated to list more directories.
Shadow Copy format is supported, for example,
<folder>\Device\HarddiskVolumeShadowCopy*</
folder>. Shadow Copy is also known as Volume
Snapshot Service, Volume Shadow Copy Service, or VSS.
Wildcards are not accepted.
Scheduled scans
You may schedule scanning for viruses in one of three ways. FortiClient does not support multiple instances of the
<scheduled_scans> element.
Quick scan Runs the rootkit detection engine to detect and remove rootkits. The quick scan
only scans the following items for threats: executable files, DLLs, and drivers that
are currently running.
Full scan Runs the rootkit detection engine to detect and remove rootkits, then performs a
full system scan of all files, executable files, DLLs, and drivers. If Full is selected,
you have the following options:
l Scan removable media, if present
Custom scan Runs the rootkit detection engine to detect and remove rootkits. Use the
<directory> element to enter the full path of the folder on your local hard disk
drive that will be scanned.
You can enable only one scheduled scan at a time. For example, you can enable a full scan and disable quick scans and
custom scans.
Each of three scheduling options require specific combinations of several common elements, which define when
scanning should occur. The common elements are described first. Other elements specific to the full and custom scans
are described later.
The factory default at the time of installation is to run a full scan on the first day of the month at 19:30.
<forticlient_configuration>
<antivirus>
<scheduled_scans>
<ignore_3rd_party_av_conflicts>1</ignore_3rd_party_av_conflicts>
<quick>
<enabled>1</enabled>
<repeat>0</repeat>
<time>19:30</time>
</quick>
</scheduled_scans>
<scheduled_scans>
<ignore_3rd_party_av_conflicts>1</ignore_3rd_party_av_conflicts>
<full>
<enabled>0</enabled>
<repeat>0</repeat>
<time>19:30</time>
<removable_media>1</removable_media>
<network_drives>1</network_drives>
<priority>2</priority>
</full>
</scheduled_scans>
<scheduled_scans>
<ignore_3rd_party_av_conflicts>1</ignore_3rd_party_av_conflicts>
<enabled>1</enabled>
<repeat>0</repeat>
<days>2</days>
<time>19:30</time>
<directory>c:\</directory>
<priority>0</priority>
</directory>
</scheduled_scans>
</antivirus>
</forticlient_configuration>
<days>1</days>
<time>19:30</time>
</quick>
</scheduled_scans>
The following table provides the XML tags for scheduled scans, as well as the descriptions and default values where
applicable. These elements are common to all scheduled scan types:
l 1: weekly
l 2: monthly
<days> Day of the week to run the scan. Used when <repeat> is set to 1 for weekly
scans. Enter one of the following:
l 1: Sunday
l 2: Monday
l 3: Tuesday
l 4: Wednesday
l 5: Thursday
l 6: Friday
l 7: Saturday
<day_of_month> The day of the month to run a scan. Used when <repeat> is set to 2 for monthly
scans.
Enter a number from 1 to 31. If you configure monthly scans to occur on the
31st of each month, the scan occurs on the first day of the month for months with
fewer than 31 days.
<time> Configure the start time for the scheduled scan, using a 24-hour clock.
The following table provides full scan and custom scan element XML tags, the description, and the default value (where
applicable).
<full> elements
<removable_media> Scan connected removable media, such as USB drives, for threats, if present. 1
Boolean value: [0 | 1]
<network_drives> Scan attached or mounted network drives for threats. 0
Boolean value: [0 | 1]
<priority> Scan priority. This refers to the amount of processing power the scan uses 0
and its impact on other processes. Enter one of the following:
l 0: normal
l 1: low
l 2: high
<directory> elements
<directory> The full path to the directory to scan when using a custom scan.
<priority> Scan priority. This refers to the amount of processing power the scan uses
and its impact on other processes. Select one of the following:
l 0: normal
l 1: low
l 2: high
FortiClient scans emails for viruses based on the settings in the <email> </email> XML tags. You can configure virus
scanning for SMTP, POP3, and Microsoft Outlook.
<forticlient_configuration>
<antivirus>
<email>
<smtp>1</smtp>
<pop3>1</pop3>
<outlook>1</outlook>
<wormdetection>
<enabled>0</enabled>
<action>0</action>
</wormdetection>
<heuristic_scanning>
<enabled>0</enabled>
<action>0</action>
</heuristic_scanning>
<mime_scanning>
<enabled>1</enabled>
</mime_scanning>
</email>
</antivirus>
</forticlient_configuration>
The following table provides the XML tags for email scans, as well as the descriptions and default values where
applicable.
<wormdetection> elements
<enabled> Scan for worm viruses. 0
Boolean value: [0 | 1]
<action> Action that FortiClient performs if it finds a virus. Enter one of the following: 0
l 0: warn
l 1: terminate process
<heuristic_scanning> elements
<enabled> Scan with heuristics signature. 0
Boolean value: [0 | 1]
<action> Action FortiClient performs if it finds a virus. Enter one of the following: 0
l 0: log and warn
<mime_scanning> Scan inbox email content with Multipurpose Internet Mail Extensions (MIME) file
types.
MIME is an Internet standard that extends the format of the email to support the
following:
l Text in character sets other than ASCII
Boolean value: [0 | 1]
Quarantine
You can specify the maximum age for quarantined files in the <quarantine></quarantine> XML tags.
<forticlient_configuration>
<antivirus>
<quarantine>
<cullage>100</cullage>
<force_delete>1</force_delete>
</quarantine>
</antivirus>
</forticlient_configuration>
The following table provides the XML tags for quarantining files, as well as the descriptions and default values where
applicable.
Antiransomware
The following table provides the XML tags for antiransomware detection, as well as the descriptions and default values
where applicable.
process to continue.
l If the user does not select an option,
Boolean value: [0 | 1]
<custom_extensions> Enter the desired file types to protect from
suspicious activity, separating each file type with a
comma. Do not include the leading dot when
entering a file type. For example, to include text
files, you would enter txt, as opposed to .txt.
<protections><folders><folder> Enter the desired file directories for FortiClient
antiransomware to protect. FortiClient anti-
ransomware protects all content in the selected
folders against unauthorized changes.
SSOMA
The <fssoma></fssoma> XML tags contain FortiClient single sign on mobility agent (SSOMA) configuration elements:
<forticlient_configuration>
<fssoma>
<enabled>0</enabled>
<serveraddress>IP_or_FQDN</serveraddress>
<presharedkey>Encypted_Preshared_Key</presharedkey>
<address_category>0</address_category>
<prefer_azure>1</prefer_azure>
</fssoma>
</forticlient_configuration>
The following table provides the XML tags for SSOMA, as well as the descriptions and default values where applicable:
Boolean value: [0 | 1]
<prefer_azure> Configure whether FortiClient detects Azure user information and sends
it to FortiAuthenticator.
l If the endpoint is in a hybrid join (on-premise Active Directory (AD)
To enable the FortiClient SSO mobility agent service on FortiAuthenticator, you must first
apply the applicable FortiClient license for FortiAuthenticator. See the FortiAuthenticator
Administration Guide. For information on purchasing a FortiClient license, contact your
authorized Fortinet reseller.
Web filter
The <webfilter></webfilter> tags contain web filter XML configurations. There are the following main sections:
Section Description
General options Configuration elements that affect the whole of the web filter service.
Scheduling information Defines a schedule for when Web Filter settings are in effect.
Profiles Defines one or more rules that FortiClient applies to network traffic.
You cannot configure Web Filter to block the Chrome web store URL, as it is a critical resource
to download the FortiClient Web Filter extension. FortiClient can access the Chrome web store
URL regardless of the Web Filter configuration.
<forticlient_configuration>
<webfilter>
<enable_filter>1</enable_filter>
<enabled>1</enabled>
<current_profile>0</current_profile>
<partial_match_host>0</partial_match_host>
<disable_when_managed>0</disable_when_managed>
<keep_extension_when_managed>1</keep_extension_when_managed>
<max_violations>250</max_violations>
<max_violations_age>7</max_violations_age>
<block_malicious_websites>1</block_malicious_websites>
<bypass_private_ip>1</bypass_private_ip>
<browser_read_time_threshold>180</browser_read_time_threshold>
<https_block_method>0</https_block_method>
<use_transparent_proxy>1</use_transparent_proxy>
<request_timeout>3</request_timeout>
<wildcard_match_root_domain>0</wildcard_match_root_domain>
<enable_https_deep_inspection>1</enable_https_deep_inspection>
<out_of_band_injection>1</out_of_band_injection>
<fgd_down_retry_interval_s>1</fgd_down_retry_interval_s>
<scheduling_info>
<enabled>1</enabled>
<fallback_action>deny</fallback_action>
<schedule_item>
<days_of_week>2,4</days_of_week>
<start_time>06:00</start_time>
<end_time>18:00</end_time>
</schedule_item>
</scheduling_info>
<profiles>
<profile>
<id>999</id>
<use_exclusion_list>1</use_exclusion_list>
</profile>
<profile>
<id>0</id>
<cate_ver>6</cate_ver>
<description>deny</description>
<name>deny</name>
<log_all_urls>1</log_all_urls>
<log_user_initiated_traffic>1</log_user_initiated_traffic>
<categories>
<fortiguard>
<enabled>1</enabled>
<url>fgd1.fortigate.com</url>
<rate_ip_addresses>1</rate_ip_addresses>
<action_when_unavailable>deny</action_when_unavailable>
<use_https_rating_server>0</use_https_rating_server>
</fortiguard>
<category>
<id>0</id>
<action>deny</action>
<isdb_objects>
<object>
<owner>30</owner>
<app>103</app>
<action>allow</action>
</object>
</isdb_objects>
</category>
<category>
<id>1</id>
<action>deny</action>
</category>
<category>
<id>2</id>
<action>deny</action>
</category>
<category>
<id>3</id>
<action>deny</action>
</category>
<category>
<id>4</id>
<action>deny</action>
</category>
<category>
<id>5</id>
<action>deny</action>
</category>
</categories>
<urls>
<url>
<address>
<![CDATA[www.777.com]]>
</address>
<type>simple</type>
<action>deny</action>
</url>
<url>
<address>
<![CDATA[www.fortinet.com]]>
</address>
<type>simple</type>
<action>allow</action>
</url>
</urls>
<webbrowser_plugin>
<enabled>0</enabled>
<sync_mode>0</sync_mode>
<addressbar_only>0</addressbar_only>
<ignore_data_url>1</ignore_data_url>
</webbrowser_plugin>
<safe_search>
<enabled>0</enabled>
<search_engines>
<enabled>0</enabled>
</search_engines>
<youtube_education_filter>
<enabled>0</enabled>
<filter_id>
<![CDATA[]]>
</filter_id>
</youtube_education_filter>
</safe_search>
</profile>
</profiles>
</webfilter>
</forticlient_configuration>
The following table provides the XML tags for web filter, as well as the descriptions and default values where applicable:
user.
<scheduling_info> elements
<enabled> Enable to have Web Filter settings only take effect during the 0
configured schedule.
<fallback_action> Configure the desired action for Web Filter to take for web traffic outside deny
of the scheduled times:
l allow: allow full, unfiltered access to all websites
<scheduling_info><schedule_item> elements
<days_of_week> Configure the days of the week for the schedule: 1
l 1: Sunday
l 2: Monday
l 3: Tuesday
l 4: Wednesday
l 5: Thursday
l 6: Friday
l 7: Saturday
Enter multiple days by separating the numbers with a comma. For
example, to enable the schedule on Monday and Wednesday, enter
<days_of_week>2,4</days_of_week>.
<start_time> Configure the desired time in 24-hour clock format for the Web Filter 06:00
settings to start on the selected days of the week.
<end_time> Configure the desired time in 24-hour clock format for the Web Filter 18:00
settings to end on the selected days of the week.
<profiles><profile><safe_search> element
<enabled> Enable safe search.
When you enable safe search, the endpoint's Google search is set to
restricted mode, and YouTube access is set to strict restricted access.
To set YouTube access to moderate restricted or unrestricted YouTube
access, you can disable safe search and configure Google search and
YouTube access with the Google Admin Console instead of with EMS.
You can enable Safe Search on the Video Filter and Web Filter profiles.
When Safe Search is enabled on both profiles, the more restrictive
settings are applied to YouTube.
Boolean value: [0 | 1]
<profiles><profile><safe_search><search_engines><engine> element
<enabled> Enable safe search for the predefined search engines.
Boolean value: [0 | 1]
The <profiles> XML element may have one or more profiles, defined in the <profile> tag. Each <profile>, in
turn, has one or more <category>, <url> and <safe_search> tags, along with other elements.
The following table provides profile XML tags, the description, and the default value (where applicable).
<profile> elements
<id> Unique ID. A number to define
the profile.
<profile><categories><fortiguard> elements
<url> FortiGuard server IP address fgd1.fortigate.com
or FQDN.
<enabled> Enable using FortiGuard 1
servers.
Boolean value: [0 | 1]
<rate_ip_addresses> Rate IP addresses. 1
Boolean value: [0 | 1]
<action_when_unavailable> Configure the action to take deny
with all websites when
FortiGuard is temporarily
unavailable. FortiClient takes
the configured action until it
reestablishes contact with
FortiGuard. Available options
are:
l allow: Allow full,
any website
l warn: Display an in-
browser warning to user
with an option to proceed
to the website
l monitor: Monitor site
access
<use_https_rating_server> By default, Web Filter sends 0
URL rating requests to the
FortiGuard Anycast rating
server via TCP protocol. You
can instead enable Web Filter
to send the requests to the
FortiGuard legacy server via
UDP protocol.
Boolean value: [0 | 1]
<profile><categories><category> elements
<id> Unique ID. A number. The
valid set of category IDs is
predefined, and is listed in
exported configuration files.
<action> Action to perform on matching
network traffic. Enter one of
the following:
l allow
l deny
l warn
l monitor
l deny
l warn
l monitor
<profile><urls><url> elements
<address> The web address in which
<action> (allow or deny) is
performed. This should be
wrapped in a CDATA tag. For
example:
<![CDATA
[www.777.com]]>
<action> Action to perform on matching
network traffic. Enter one of
the following: [allow |
deny]
<profile><webbrowser_plugin> elements
<enabled> Enable a web browser plugin 1
for HTTPS web filtering. This
improves detection and
enforcement of Web Filter
rules on HTTPS sites.
When this option is enabled,
the user must open the
browser to approve installing
the new plugin. Currently this
feature is only supported when
using the Chrome browser on
a Windows machine.
<sync_mode> When this option is enabled, 0
the web browser waits for a
response from an
HTTPS request before
sending another
HTTPS request.
l blob:http://xxxx
<profiles><profile><safe_search><search_engines><engine> elements
<name> Name of the Safe Search profile.
<host> The search engine's FQDN. FortiClient monitors attempts to visit this address.
<profiles><profile><safe_search><youtube_education_filter> elements
<enabled> Enable YouTube education filter.
Boolean value: [0 | 1]
<filter_id> The institution's education identifier.
Other than the <name> and <enabled> elements, the values for each of the elements in the previous table should be
wrapped in <![CDATA[]]> XML tags. Here is an example for a <host> element taken from the <safe_search>
listing.
<host><![CDATA[yandex\..*]]></host>
See Manage your YouTube settings for more information on YouTube for schools and the education filter.
The following is a list of all Web Filter categories including the category <id> and category name:
0 ==> Unrated
1 ==> Drug Abuse
2 ==> Alternative Beliefs
3 ==> Hacking
4 ==> Illegal or Unethical
5 ==> Discrimination
6 ==> Explicit Violence
7 ==> Abortion
8 ==> Other Adult Materials
9 ==> Advocacy Organizations
11 ==> Gambling
12 ==> Extremist Groups
13 ==> Nudity and Risque
14 ==> Pornography
15 ==> Dating
16 ==> Weapons (Sales)
17 ==> Advertising
18 ==> Brokerage and Trading
19 ==> Freeware and Software Downloads
20 ==> Games
23 ==> Web-based Email
24 ==> File Sharing and Storage
25 ==> Streaming Media and Download
26 ==> Malicious Websites
28 ==> Entertainment
29 ==> Arts and Culture
30 ==> Education
31 ==> Finance and Banking
33 ==> Health and Wellness
Video Filter
<category>
<id>4</id>
<action>allow</action>
</category>
<category>
<id>5</id>
<action>allow</action>
</category>
<category>
<id>6</id>
<action>allow</action>
</category>
<category>
<id>7</id>
<action>allow</action>
</category>
<category>
<id>8</id>
<action>allow</action>
</category>
<category>
<id>9</id>
<action>allow</action>
</category>
<category>
<id>10</id>
<action>allow</action>
</category>
</categories>
<enabled>0</enabled>
</videofilter>
<forticlient_configuration>
The following table provides the XML tags for web filter, as well as the descriptions and default values where applicable.
<youtube><advanced> elements
<enabled> Enable advanced settings for YouTube filtering.
Boolean value: [0 | 1]
<safe_search> When enabling Safe Search, you can configure the restriction level
to strict or moderate. This setting affects the content that endpoint
users can access via YouTube.
You can enable Safe Search on the Video Filter and Web Filter
profiles. When Safe Search is enabled on both profiles, the more
restrictive settings are applied to YouTube.
<channels> Configure access for a specific YouTube channel. In the <id>
element, enter the YouTube channel ID. In the <action> field,
enter the desired action for the channel.
If you block access to a channel and allow access to a specific
video that belongs to the blocked channel, FortiClient blocks access
to the video. The action configured for the channel overrides the
action configured for the specific video.
<videos> Configure access for a specific YouTube video. In the <link>
element,enter the video URL in the format:
youtube.com/watch?v=<video ID>. In the <action> field, enter the
desired action for the video.
<hide_comments> Hide YouTube comments from end users.
Boolean value: [0 | 1]
<youtube><category> ?
<fortiguard> elements
<action_when_unavailable> Configure an action for FortiClient to take for YouTube videos when
it cannot reach the FortiGuard server.
<restrict_services_to_ Configure the FortiGuard server location. FortiClient connects to 0
regions> FortiGuard to query for URL ratings.
You can enter USA to configure the FortiGuard U.S. server.
Otherwise, FortiClient uses the global FortiGuard server.
The URLs connected to for each server location are as follows:
l Global: fctguard.fortinet.net
l U.S.: fctusguard.fortinet.net
<categories> For each category, configure the desired action. The following lists
available categories and their IDs:
l Not Rated: 0
l Business: 1
l Entertainment: 2
l Games: 3
l Knowledge: 4
l Lifestyle: 5
l Music: 6
l News: 7
l People: 8
l Society: 9
l Sports: 10
Application firewall
The <firewall> </firewall> XML tags contain application firewall configuration data. The set of elements consists
of two sections:
Section Description
<forticlient_configuration>
<firewall>
<enabled>1</enabled>
<app_enabled>1</app_enabled>
<enable_exploit_signatures>0</enable_exploit_signatures>
<candc_enabled>1</candc_enabled>
<current_profile>0</current_profile>
<default_action>Pass</default_action>
<show_bubble_notifications>0</show_bubble_notifications>
<max_violations>250</max_violations>
<max_violations_age>7</max_violations_age>
<bypass_3rd_party_packets>0</bypass_3rd_party_packets>
<profiles>
<profile>
<id>1000</id>
<rules>
<rule>
<enabled>1</enabled>
<action>Block</action>
<compliance>1</compliance>
<application>
<id>34038,34039</id>
</application>
</rule>
<rule>
<action>Block</action>
<compliance>1</compliance>
<enabled>1</enabled>
<category>
<id>8</id>
</category>
</rule>
<rule>
<action>Pass</action>
<compliance>1</compliance>
<enabled>1</enabled>
<category>
<id>7,19,29</id>
</category>
</rule>
<rule>
<action>Block</action>
<compliance>0</compliance>
<enabled>1</enabled>
<category>
<id>1,2,3</id>
</category>
</rule>
<rule>
<action>Pass</action>
<compliance>0</compliance>
<enabled>1</enabled>
<category>
<id>All</id>
</category>
</rule>
<rule>
<action>Pass</action>
<compliance>0</compliance>
<enabled>1</enabled>
<application>
<id>0</id>
</application>
</rule>
<rule>
<enabled>1</enabled>
<action>pass</action>
<ips>
<id>12449</id>
</ips>
</rule>
</rules>
</profile>
</profiles>
</firewall>
</forticlient_configuration>
The following table provides the XML tags for application firewall, as well as the descriptions and default values where
applicable.
l reset
l pass
The <profiles> tag may contain one or more <profile> tags, each of which has a <rules> element. The <rules>
element may, itself, have zero or more <rule> tags.
The following filter elements may be used to define applications in a <rule> tag:
<category>
<vendor>
<behavior>
<technology>
<protocol>
<application>
<popularity>
If the <application> element is present, all other sibling elements (listed above) are ignored. If it is not, a given
application must match all of the provided filters to trigger the rule.
Each of these seven elements is a container for the tag: <ids>, which is a list of the identifiers (numbers) selected for
that particular filter. The full <firewall> profile listed at the beginning of this section shows several examples of the
use of filters within the <rule> element. Using an <ids> value all selects all matching applications.
The following table provides profile element XML tags, the description, and the default value (where applicable).
<profile> element
<id> Unique ID. A unique ID number.
<profile><rules><rule> elements
l reset
l pass
<compliance> Specifies whether the rule is a compliance or regular rule. When set to
1, this is a compliance rule. When set to 0 or the tag does not exist, this
is a FortiClient profile rule. For more information, see the FortiClient
Administration Guide.
Boolean value: [0 | 1]
<enabled> Enable this rule. 1
Boolean value: [0 | 1]
<category> Application categories to apply <action> on. csv list
<technology> Technologies used by the applications to apply <action> on. csv list
<protocol> Protocols used by the applications to apply <action> on. csv list
<application> Identifiers (IDs) of the applications to apply <action> on. csv list
Rule example
In the following example, FortiClient uses the first rule and the second rule as a FortiClient profile rule:
<rules>
<rule>
<enabled>1</enabled>
<action>block | warn | monitor</action>
<compliance>1</compliance>
<filter>
<application>
<ids>36373</ids>
</application>
</filter>
</rule>
<rule>
<enabled>1</enabled>
<action>block | warn | monitor</action>
<filter>
<category>
<ids>1</ids>
</category>
</filter>
</rule>
</rules>
Vulnerability scan
The following table provides the XML tags for Vulnerability Scan, as well as the descriptions and default values where
applicable.
l critical
l high
l medium
l low
l info
<windows_update> Specifies whether to scan Windows updates and third party application
updates. When set to 1, FortiClient scans Windows updates and third
party application updates. When set to 0, FortiClient scans only third
party application updates.
Boolean value: [0 | 1]
<proxy_enabled> Enable using proxy settings configured in FortiClient when downloading 0
updates for vulnerability patches.
Boolean value: [0 | 1]
<exempt_manual> Specifies whether to exempt from vulnerability scanning any applications
that require the endpoint user to manually install patches.
Boolean value: [0 | 1]
<send_exempted_apps_ Specifies whether to send vulnerability information from applications that 0
to_ems> are exempt from Vulnerability Scan to EMS.
Boolean value: [0 | 1]
<exemptions> Identifies the names of applications that are exempted.
<exempt_no_auto_ Specifies whether to exempt any applications that FortiClient can
patch> automatically patch from vulnerability scanning.
Boolean value: [0 | 1]
<scheduled_scans><schedule> elements
<enable_schedule> Enable scheduled vulnerability scans.
Boolean value: [0 | 1]
<repeat> Configure the frequency of scans:
l 4: Wednesday
l 5: Thursday
l 6: Friday
l 7: Saturday
<scheduled_scans><automatic_maintenance> elements
This configures vulnerability scans to run as part of Windows automatic maintenance. Adding FortiClient vulnerability
scans to the Windows automatic maintenance queue allows the system to choose an appropriate time for the scan
that minimally impact the user, PC performance, and energy efficiency. See Automatic Maintenance.
<scan_on_ Enable running vulnerability scan as part of Windows automatic 0
maintenance> maintenance.
Boolean value: [0 | 1]
<maintenance_period> Specify how often vulnerability scanning must be started during
automatic maintenance. Enter the desired period in the format
PnYnMnDTnHnMnS, where nY is the number of years, nM is the number
of months, nD is the number of days, T is the date/time separator, nH is
the number of hours, nM is the number of minutes, and nS is the number
of seconds.
For example, to configure a period of five minutes, you would enter the
following:
<maintenance_period>PT5M</maintenance_period>
To configure a period of one month, four days, two hours, and five
minutes, you would enter the following:
<maintenance_period>P1M4DT2H5M</maintenance_period>
Sandboxing
</files>
</inclusions>
<remediation>
<action>quarantine</action>
<on_error>block</on_error>
</remediation>
<detect_level>4</detect_level>
<shell_integration>
<hide_sandbox_scan>0</hide_sandbox_scan>
</shell_integration>
<notification_type>0</notification_type>
<max_size>200</max_size>
</sandboxing>
</forticlient_configuration>
The following table provides the XML tags for Sandbox, as well as the descriptions and default values where applicable.
<when> elements
<executables_on_ Submit all files executed on removable media, such as USB drives, to
removable_media> FortiSandbox for analysis.
Boolean value: [0 | 1]
<executables_on_ Submit all files executed from mapped network drives.
mapped_nw_
drives> Boolean value: [0 | 1].
<submit_by_extension> elements
<enabled> Submit specified file extensions to FortiSandbox for analysis. When 1
disabled, FortiClient does not submit any file extensions to
FortiSandbox, but can still retrieve signatures from FortiSandbox.
Boolean value: [0 | 1].
<use_custom_ Enable using a custom list of file extensions. 0
extensions>
If enabled, configure the custom list of file extensions using the
<custom_extensions> element below.
If disabled, the default list of file extensions is used: exe, dll, msi, cpl,
ocx, ps1, swf, swz, jsfl, flv, swc, fla, xfl, jsfl, 7z, xz, bz2, gz, tar, zip, rar,
arj, z, pdf, doc, docx, docm, dotx, dotm, dot, rtf, mht, mhtml, odt, xlsx, xl,
xlsm, xlsb, xltx, xltm, xls, xlt, xlam, xlw, pptx, pptm, ppt, xps, potx, potm,
pot, thmx, pps, ppsx, ppsm, ppt, ppam, odp
Boolean value: [0 | 1].
<custom_extensions> If using a custom list of file extensions, enter the list of desired file
extensions, separated only by commas. The example submits .exe, .dll,
and .com files to FortiSandbox for analysis.
<exceptions> elements
<exclude_files_from_ Exclude files signed by trusted sources from FortiSandbox submission.
trusted_sources>
Boolean value: [0 | 1].
<exclude files_and_ Exclude specified folders/files from FortiSandbox submission. You
folders> must also create the exclusion list.
Boolean value: [0 | 1].
<files> Specify a list of files to exclude. Separate multiple files with a comma.
Example: C:\path\to\file1.txt, C:\path\to\file2.txt
<folders> Specify a list of folders to exclude. Separate multiple folders with a
comma. Example:
C:\path1\to\folder\,C:\path2\to\folder\
<inclusions> elements
<include files_and_ Include specified folders/files in FortiSandbox submission. You must
folders> also create the inclusion list.
Boolean value: [0 | 1].
<files> Specify a list of files to include. Separate multiple files with a comma.
Example: C:\path\to\file3.txt, C:\path\to\file4.txt
<folders> Specify a list of folders to include. Separate multiple folders with a
comma. Example: C:\folder1,C:\path2\to\folder2\.
<remediation> elements
<action> Specify how to handle infected files. FortiClient can quarantine infected
files. Enter one of the following:
l quarantine: quarantine infected files
l alert: alert the user about infected files but allow access to
infected files
<on_error> Specify how to handle files when FortiClient cannot reach
FortiSandbox. You can block or allow access to files. Enter one of the
following:
l block
malware in a submission.
l 1: Displays a popup for all FortiSandbox file submissions.
Anti-exploit detection
The following table provides the XML tags for anti-exploit detection, as well as the descriptions and default values where
applicable.
The following table provides the XML tags for removable media access, as well as the descriptions and default values
where applicable.
<rules><rule> elements You can configure rules to allow or block specific removable devices.
For a removable device that does not match any defined rule,
FortiClient applies the <action> outside the <rules> element.
For the <class>, <manufacturer>, <vid>, <pid>, and <rev>
elements, you can find the desired values for the device in one of the
following ways:
l Microsoft Windows Device Manager: select the device and view
its properties.
l USBDeview
<description> Enter the desired rule description.
<type> Enter simple or regex for the rule type.
When regex is entered, FortiClient accepts regular expressions for
the <manufacturer> element. This supports Perl Compatible
Regular Expressions.
<class> Enter the device class.
<manufacturer> Enter the device manufacturer.
<vid> Enter the device version ID.
<pid> Enter the device product ID.
<rev> Enter the device revision number.
<action> Configure the action to take with removable media devices
connected to the endpoint that match this rule. Available options are:
l allow: Allow access to removable media devices connected to
The following table provides the XML tags for cloud-based malware protection, as well as the descriptions and default
values where applicable.
<when> elements
<executables_on_ Enable submitting files executed from removable media for cloud-based
removable_ malware protection.
media>
Boolean value: [0 | 1]
<executables_on_ Enable submitting files executed from mapped network drives for cloud-
mapped_nw_ based malware protection.
drives>
Boolean value: [0 | 1]
<web_downloads> Enable submitting web downloads for cloud-based malware protection.
Boolean value: [0 | 1]
<email_downloads> Enable submitting email downloads for cloud-based malware protection.
Boolean value: [0 | 1]
<remediation> elements
<action> Specify how to handle malicious files. FortiClient can quarantine malicious
files. Enter one of the following:
l quarantine: quarantine malicious files
l alert: alert the user about malicious files but allow access to
malicious files
<on_error> Specify how to handle files when FortiClient cannot reach the cloud-based
malware protection service. You can block or allow access to files. Enter
one of the following:
l block
l allow
<exceptions> elements
<exclude_files_from_ Exclude files signed by trusted sources from cloud-based malware
trusted_ protection submission.
sources>
Boolean value: [0 | 1]
<exclude_files_and_ Exclude specified folders/files from cloud-based malware protection
folders> submission. You must also create the exclusion list.
Boolean value: [0 | 1]
<folders> Specify a list of folders to exclude. Separate multiple files with a comma.
Example: C:\path\to\file1.txt, C:\path\to\file2.txt
<files> Specify a list of files to exclude. Separate multiple folders with a comma.
Example: C:\path1\to\folder\,C:\path2\to\folder\
<submit_by_extensions> elements
<enabled> Submit specified file extensions to cloud-based malware protection for
analysis. When disabled, FortiClient does not submit any file extensions to
cloud-based malware protection.
Boolean value: [0 | 1]
<use_custom_ Enable using a custom list of file extensions.
extensions>
If enabled, configure the custom list of file extensions using the <custom_
extensions> element.
If disabled, this feature only submits high risk file types such as .exe, .doc,
.pdf, and .dll to cloud-based malware protection.
Boolean value: [0 | 1]
<custom_extensions> If using a custom list of file extensions, enter the list of desired file
extensions, separated only by commas.
ZTNA
The following lists zero trust network access (ZTNA) general attributes:
<forticlient_configuration>
<ztna>
<enabled>1</enabled>
<allow_personal_rules>1</allow_personal_rules>
<notify_on_error>1</notify_on_error>
<disallow_invalid_server_certificate>1</disallow_invalid_server_certificate>
<warn_invalid_server_certificate>1</warn_invalid_server_certificate>
<save_password>1</save_password>
<rules>
<rule>
<name>ssh</name>
<destination>10.100.77.8:22</destination>
<gateway>172.17.80.79:443</gateway>
<mode>transparent</mode>
<local_port>7788</local_port>
<encryption>1</encryption>
<enable_udp>1</enable_udp>
<redirect>0</redirect>
</rule>
</rules>
<web_proxy_rules>
<web_proxy_rule>
<gateway>example.com:80</gateway>
<gateway_ip>192.158.1.38</gateway_ip>
</web_proxy_rule>
</web_proxy_rules>
</ztna>
</forticlient_configuration>
The following table provides the XML tags for ZTNA, as well as the descriptions and default values where applicable.
<rules><rule> elements
<name> Enter the desired rule name.
PAM
</forticlient_configuration>
The following table provides the XML tags for PAM, as well as the descriptions and default values where applicable:
Apple
The following table provides the XML tags for FortiClient (iOS), as well as the descriptions and default values where
applicable.
The FortiClient configuration file is user-editable. The file uses XML format for easy parsing and validation. The
configuration file is inclusive of all client configurations and references the client certificates.
Input validation
The import function performs basic validation and writes to log when errors or warnings are found. Default values for
omitted items are defined for VPN connections. For other settings omitted values are ignored.
When exporting, FortiClient encrypts password and username fields (prefixed with Enc). However, the import function
can take the clear text or encrypted format.
It is valid to import a segment of a configuration file. However, the segment should follow the syntax and level defined in
this document. For example, this is a valid segment:
<?xml version=”1.0” encoding=”utf-8”?>
<forticlient_configuration>
<VPN>
<SSLVPN>
<connections>
<connection>
// connection 1
</connection>
</connections>
</SSLVPN>
</VPN>
</forticlient_configuration>
Client certificate
The configuration file includes the client certificate(s) when exported in an encrypted format.
1. Go to Settings.
2. Under System, click Backup.
3. Select the file destination.
4. Enter a password to save the file in an encrypted format with a password.
5. Click OK.
1. Go to Settings.
2. Expand System, and click Restore.
3. Locate and select the file.
4. If the configuration was protected with a password, a password text box displays. Enter the password used to
encrypt the backup configuration file.
5. Click OK.
Fortinet provides administrators the ability to import and export configurations via the CLI. The system or admin user can
run the FCConfig utility for Windows or the fcconfig utility for macOS locally or remotely to import or export the
configuration file. In Windows, the FCConfig utility is located in the C:\Program Files (x86)\Fortinet\FortiClient> directory.
In macOS, the fccconfig utility is located in the /Library/Application Support/Fortinet/FortiClient/bin directory.
The following commands are available for use. Note that -i 1 is not available on macOS:
Command Description
FCConfig -m all -f <filename> -o export -i 1 Back up the configuration file (encrypted).
-p <encrypted password>
FCConfig -m all -f <filename> -o import -i 1 Restore the configuration file.
FCConfig -m all -f <filename> -o import -i 1 Restore the configuration file (encrypted).
-p <encrypted password>
FCConfig -m vpn -f <filename> -o importvpn - Import the VPN tunnel configuration.
i 1
Command Description
FCConfig -m vpn -f <filename> -o importvpn - Import the VPN tunnel configuration (encrypted).
i 1 -p <encrypted password>
The command fcconfig -f settings.xml -m all -o export exports the configuration as an XML file in the
FortiClient directory.
You can add custom XML to a profile in EMS by using an advanced profile.
To reduce the size of the FortiClient XML configuration file, you can delete all help text found
within the <!-- .... --> comment tags.
The XML must be valid before you can save the profile.
6. When the XML is valid, click Save.
The VPN <options> XML tag holds global information controlling VPN states. The VPN connects first, then logs into
the AD/domain.
<forticlient_configuration>
<vpn>
<options>
<show_vpn_before_logon>1</show_vpn_before_logon>
<use_windows_credentials>1</use_windows_credentials>
</options>
</vpn>
</forticlient_configuration>
To use VPN resiliency/redundancy, configure a list of FortiGate IP address/FQDN servers, instead of just one:
<forticlient_configuration>
<vpn>
<ipsecvpn>
<connections>
<connection>
<name>psk_90_1</name>
<type>manual</type>
<ike_settings>
<prompt_certificate>0</prompt_certificate>
<server>10.10.90.1;ipsecdemo.fortinet.com;172.17.61.143</server>
<redundant_sort_method>1</redundant_sort_method>
</ike_settings>
</connection>
</connections>
</ipsecvpn>
</vpn>
</forticlient_configuration>
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
redundant_sort_method = 1
This XML tag sets the IPsec VPN connection as ping-response based. The VPN connects to the FortiGate that responds
the fastest.
redundant_sort_method = 0
By default, redundant_sort_method =0, and the IPsec VPN connection is priority-based. Priority-based configuration
attempts to connect to FortiGates by starting with the first FortiGate on the configured list.
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
For SSL VPN, all FortiGates must use the same TCP port.
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
</vpn>
</forticlient_configuration>
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
To use VPN resiliency/redundancy, configure a list of FortiGate IP/FQDN servers, instead of just one:
<forticlient_configuration>
<vpn>
<ipsecvpn>
<options>
...
</options>
<connections>
<connection>
<name>psk_90_1</name>
<type>manual</type>
<ike_settings>
<prompt_certificate>0</prompt_certificate>
<server>10.10.90.1;ipsecdemo.fortinet.com;172.17.61.143</server>
<redundant_sort_method>1</redundant_sort_method>
...
</ike_settings>
</connection>
</connections>
</ipsecvpn>
</vpn>
</forticlient_configuration>
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
redundant_sort_method = 1
This XML tag sets the IPsec VPN connection as ping-response-based. The VPN connects to the FortiGate that responds
the fastest.
redundant_sort_method = 0
By default, redundant_sort_method =0, and the IPsec VPN connection is priority-based. Priority-based configuration
attempts to connect to FortiGates by starting with the first FortiGate on the configured list.
This is a balanced but incomplete XML configuration fragment. It includes all closing tags, but omits some important
elements to complete the configuration.
For SSL VPN, all FortiGates must use the same TCP port.
This feature supports auto-running a user-defined script after the configured VPN tunnel is connected or disconnected.
The scripts are batch scripts in Windows and shell scripts in macOS. They are defined as part of a VPN tunnel
configuration on FortiGate's XML format endpoint profile. The profile is pushed to FortiClient from FortiGate. When
FortiClient's VPN tunnel is connected or disconnected, the respective script defined under that tunnel is executed. These
scripts can also be configured directly on FortiClient by importing the XML configuration file.
Windows
This feature supports auto-running a user-defined script after the configured VPN tunnel is connected or disconnected.
The scripts are batch scripts in Windows and shell scripts in macOS. They are defined as part of a VPN tunnel
configuration on FortiGate's XML format endpoint profile. The profile is pushed to FortiClient from FortiGate. When
FortiClient's VPN tunnel is connected or disconnected, the respective script defined under that tunnel is executed. These
scripts can also be configured directly on FortiClient by importing the XML configuration file.
The script maps a network drive and copies some files after the tunnel connects.
<on_connect>
<script>
<os>windows</os>
<script>
<script>
<![CDATA[
net use x: \\192.168.10.3\ftpshare /user:Honey Boo Boo
md c:\test
copy x:\PDF\*.* c:\test
]]>
</script>
</script>
</script>
</on_connect>
The script deletes the network drive after the tunnel disconnects.
<on_disconnect>
<script>
<os>windows</os>
<script>
<script>
<![CDATA[
net use x: /DELETE
]]>
</script>
</script>
</script>
</on_disconnect>
macOS
The script maps a network drive and copies some files after the tunnel connects.
<on_connect>
<script>
<os>mac</os>
<script>
/bin/mkdir /Volumes/installers
/sbin/ping -c 4 192.168.1.147 > /Users/admin/Desktop/dropbox/p.txt
/sbin/mount -t smbfs //kimberly:[email protected]/installers
/Volumes/installers/ > /Users/admin/Desktop/dropbox/m.txt
/bin/mkdir /Users/admin/Desktop/dropbox/dir
/bin/cp /Volumes/installers/*.log /Users/admin/Desktop/dropbox/dir/.
</script>
</script>
</on_connect>
The script deletes the network drive after the tunnel disconnects.
<on_disconnect>
<script>
<os>mac</os>
<script>
/sbin/umount /Volumes/installers
/bin/rm -fr /Users/admin/Desktop/dropbox/*
</script>
</script>
</on_disconnect>
2024-11-19 Updated:
l IPsec VPN on page 50
2024-12-13 Updated:
l SSL VPN on page 38
2025-01-13 Updated:
l SSL VPN on page 38
Copyright© 2025 Fortinet, Inc. All rights reserved. Fortinet®, FortiGate®, FortiCare® and FortiGuard®, and certain other marks are registered trademarks of Fortinet, Inc., and other Fortinet names herein
may also be registered and/or common law trademarks of Fortinet. All other product or company names may be trademarks of their respective owners. Performance and other metrics contained herein were
attained in internal lab tests under ideal conditions, and actual performance and other results may vary. Network variables, different network environments and other conditions may affect performance
results. Nothing herein represents any binding commitment by Fortinet, and Fortinet disclaims all warranties, whether express or implied, except to the extent Fortinet enters a binding written contract,
signed by Fortinet’s Chief Legal Officer, with a purchaser that expressly warrants that the identified product will perform according to certain expressly-identified performance metrics and, in such event, only
the specific performance metrics expressly identified in such binding written contract shall be binding on Fortinet. For absolute clarity, any such warranty will be limited to performance in the same ideal
conditions as in Fortinet’s internal lab tests. Fortinet disclaims in full any covenants, representations, and guarantees pursuant hereto, whether express or implied. Fortinet reserves the right to change,
modify, transfer, or otherwise revise this publication without notice, and the most current version of the publication shall be applicable.