Whatʼs new
The following sections describe the new features and enhancements:
- General usability enhancements
- Network
- Policy and objects
- Security profiles
- WAN optimization
- VPN
- System
- Security Fabric
- Log and report
- Other new features, enhancements, and changes
General usability enhancements
GUI-based global search
The global search option in the GUI allows users to search for keywords appearing in objects and navigation menus to quickly access the object and configuration page. Click the magnifying glass icon in the top-left corner of the banner to access the global search.
The global search includes the following features:
-
Keep a history of frequent and recent searches
-
Sort results alphabetically by increasing or decreasing order, and relevance by search weight
-
Search by category
-
Search in Security Fabric members (accessed by the Security Fabric members dropdown menu in the banner)
SSL-VPN and IPsec monitor improvements
The SSL-VPN monitor now includes Duration and Connection Summary charts. The IPsec monitor displays information about Phase 1 and Phase 2 tunnels. Both monitors also identify users who have not enabled two-factor authentication.
SSL-VPN monitor
To view the SSL-VPN monitor:
- Go to Dashboard and click Add Widget.
- Under Network, click SSL-VPN.
- Click Default or specify the FortiProxy unit.
- Click Add Widget.
- Click Close.
- The SSL-VPN overview widget is displayed.
A warning appears when at least one VPN user has not enabled two-factor authentication.
- Hover over the widget and click Expand to full screen. The Duration and Connection Summary charts are displayed at the top of the monitor.
A warning appears in the Username column when a user has not enabled two-factor authentication.
- Right-click a user to End Session, Locate on VPN Map, Show Matching Logs, and Show in FortiView.
IPSec monitor
To view the IPSec Monitor:
- Go to Dashboard and click Add Widget.
- Under Network, click IPsec.
- Click Default or specify the FortiProxy unit.
- Click Add Widget.
- Click Close.
- The IPsec overview widget is displayed.
- Hover over the widget and click Expand to full screen. A warning appears when an unauthenticated user is detected.
API Preview
The API Preview allows you to view all REST API requests being used by the page. You can make changes on the page that are reflected in the API request preview. This feature is not available if the user is logged in as an administrator that has read-only GUI permissions.
To use the API Preview:
- Click API Preview. The API Preview pane opens, and the values for the fields are visible (data). If a new object is being created, the POST request is shown.
- Enable Show modified changes only to show the modified changes instead of the full configuration in the preview.
- Click Copy to Clipboard to copy the JSON code shown on the preview screen to the clipboard.
- Click Close to leave the preview.
Network
Option added to select source interface and address for Telnet and SSH
The new commands execute telnet-options
and execute ssh-options
allow administrators to set the source interface and address for their connection:
# execute telnet-options {interface <outgoing interface> | reset | source <source interface IP> | view-settings}
# execute ssh-options {interface <outgoing interface> | reset | source <source interface IP> | view-settings}
To edit the Telnet options:
# execute telnet-options interface port1
# execute telnet-options source 1.1.1.1
To confirm that the Telnet packets are using the configured port and address:
# diagnose sniffer packet any "port 23" 4 4.070426 port1 out 1.1.1.1.13938 -> 15.15.15.2.23: syn 400156130 4.070706 port1 in 15.15.15.2.23 -> 1.1.1.1.13938: syn 2889776642 ack 400156131
To edit the SSH options:
# execute ssh-options interface port1
# execute ssh-options source 1.1.1.1
To confirm that the SSH packets are using the configured port and address:
# diagnose sniffer packet any "port 22" 4 6.898985 port1 out 1.1.1.1.20625 -> 15.15.15.2.22: syn 1704095779 6.899286 port1 in 15.15.15.2.22 -> 1.1.1.1.20625: syn 753358246 ack 1704095780
File filter rules available in sniffer policy
File filter rules can be used in one-arm sniffer policies in the CLI.
The following example shows how to configure a file filter profile that blocks PDF and RAR files used in a one-arm sniffer policy:
config file-filter profile edit "sniffer-profile" set comment "File type inspection." config rules edit "1" set protocol http ftp smtp imap pop3 cifs set action block set file-type "pdf" "rar" next end next end
Explicit mode with DoT and DoH
DNS over TLS (DoT) and DNS over HTTPS (DoH) are supported in explicit mode where the FortiProxy unit acts as an explicit DNS server that listens for DoT and DoH requests. Local-out DNS traffic over TLS and HTTPS is also supported.
DNS inspection with DoT and DoH
DNS over TLS (DoT) and DNS over HTTPS (DoH) are supported in DNS inspection. Before FortiProxy 7.0.0, DoT and DoH traffic silently passes through the DNS proxy. In FortiProxy 7.0.0, the WAD is able to handle DoT and DoH and redirect DNS queries to the DNS proxy for further inspection.
Zones
Zones are a group of one or more physical or virtual FortiProxy interfaces that you can apply security policies to control inbound and outbound traffic. Grouping interfaces into zones simplifies the creation of security policies where a number of network segments can use the same policy settings and protection profiles. Interfaces that are included in a zone must not be assigned to another zone or have firewall policies defined.
Verification
When a client visits a HTTP website, the client will be redirected to the captive portal for authentication by HTTPS. For example, the client could be redirected to a URL by a HTTP 303 message similar to the following:
HTTP/1.1 303 See Other
Connection: close
Content-Type: text/html
Cache-Control: no-cache
Location: https://fpx.fortinetqa.local:7831/XX/YY/ZZ/cpauth?scheme=http&4Tmthd=0&host=172.16.200.46&port=80&rule=75&uri=Lw==&
Content-Length: 0
The captive portal URL used for authentication is https://fpx.fortinetqa.local:7831/.... After the authentication is complete with all user credentials protected by HTTPS, the client is redirected to the original HTTP website it intended to visit.
Selectively forward web requests to a transparent web proxy
Web traffic over HTTP/HTTPS can be forwarded selectively by the FortiProxy unitʼs transparent web proxy to an upstream web proxy to avoid overwhelming the proxy server. Traffic can be selected by specifying the proxy address (set webproxy-forward-server
), which can be based on a FortiGuard URL category.
The FortiGuard web filter service must be enabled on the downstream FortiProxy unit. |
Forwarding behavior
The forward server will be ignored if the proxy policy matching for a particular session needs the FortiProxy unit to see authentication information inside the HTTP (plain text) message. For example, assume that user authentication is required and a forward server is configured in the transparent web proxy, and the authentication method is an active method (such as basic). When the user or client sends the HTTP request over SSL with authentication information to the FortiProxy unit, the request cannot be forwarded to the upstream proxy. Instead, it will be forwarded directly to the original web server (assuming deep inspection and http-policy-redirect
are enabled in the firewall policy).
The FortiProxy unit will close the session before the client request can be forwarded if all of the following conditions are met:
- The certificate inspection is configured in the firewall policy that has the
http-policy-redirect
option enabled. - A previously authenticated IP-based user record cannot be found by the FortiProxy unitʼs memory during the SSL handshake.
- Proxy policy matching needs the FortiProxy unit to see the HTTP request authentication information.
Use the following best practices to enable user authentication and use webproxy-forward-server
in the transparent web proxy policy at the same time:
- In the firewall policy that has the
http-policy-redirect
option enabled, setssl-ssh-profile
to use thedeep-inspection
profile. - Use IP-based authentication rules; otherwise, the
webproxy-forward-server
setting in the transparent web proxy policy will be ignored. - Use a passive authentication method such as FSSO. With FSSO, once the user is authenticated as a domain user by a successful login, the web traffic from the user's client will always be forwarded to the upstream proxy as long as the authenticated user remains unexpired. If the authentication method is an active authentication method (such as basic, digest, NTLM, negotiate, form, and so on), the first session containing authentication information will bypass the forward server, but the following sessions will be connected through the upstream proxy.
Sample configuration
On the downstream FortiProxy proxy, there are two category proxy addresses used in two separate transparent web proxy policies as the destination address:
-
In the policy with
upstream_proxy_1
as the forward server, the proxy addresscategory_infotech
is used to match URLs in the information technology category. -
In the policy with
upstream_proxy_2
as the forward server, the proxy addresscategory_social
is used to match URLs in the social media category.
To configure forwarding requests to transparent web proxies:
- Configure the proxy forward servers:
config web-proxy forward-server edit "upStream_proxy_1" set ip 172.16.200.20 next edit "upStream_proxy_2" set ip 172.16.200.46 next end
- Configure the web proxy addresses:
config firewall proxy-address edit "category_infotech" set type category set host "all" set category 52 next edit "category_social" set type category set host "all" set category 37 next end
- Configure the firewall policy:
config firewall policy edit 1 set srcintf "port10" set dstintf "port9" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" set utm-status enable set ssl-ssh-profile "deep-inspection" set av-profile "av" next end
- Configure the proxy policies:
config firewall policy edit 1 set type transparent set srcintf "port10" set dstintf "port9" set srcaddr "all" set dstaddr "category_infotech" set action accept set schedule "always" set logtraffic all set webproxy-forward-server "upStream_proxy_1" set utm-status enable set ssl-ssh-profile "deep-inspection" set av-profile "av" next edit 2 set type transparent set srcintf "port10" set dstintf "port9" set srcaddr "all" set dstaddr "category_social" set action accept set schedule "always" set logtraffic all set webproxy-forward-server "upStream_proxy_2" set utm-status enable set ssl-ssh-profile "deep-inspection" set av-profile "av" next end
FortiProxy unit as an IPv6 DDNS client for generic DDNS
When configuring the generic DDNS service provider as a DDNS server, the server type and address type can be set to IPv6. This allows the FortiProxy unit to connect to an IPv6 DDNS server and provide the FortiProxy unitʼs IPv6 interface address for updates.
config system ddns edit <ID> set ddns-server genericDDNS set server-type {ipv4 | ipv6} set ddns-server-addr <address> set addr-type {ipv4 | ipv6} set monitor-interface <port> next end
To configure an IPv6 DDNS client with generic DDNS:
config system ddns edit 1 set ddns-server genericDDNS set server-type ipv6 set ddns-server-addr "2004:16:16:16::2" "16.16.16.2" "ddns.genericddns.com" set ddns-domain "test.com" set addr-type ipv6 set monitor-interface "port3" next end
Allow backup and restore commands to use IPv6 addresses
IPv6 addresses are now supported in the execute backup
and execute restore
commands to TFTP and FTP servers.
To back up a configuration file to an IPv6 TFTP server:
# execute backup config tftp fpx.conf 2000:172:16:200::55
To restore a configuration file from an IPv6 TFTP server:
# execute restore config tftp fpx.conf 2000:172:16:200::55
To back up a configuration file to an IPv6 FTP server:
# execute backup config ftp fpx.conf 2000:172:16:200::55 root xxxxxxxxxx
To restore a configuration file from an IPv6 FTP server:
# execute restore config ftp fpx.conf 2000:172:16:200::55 root xxxxxxxxxx
Policy and objects
Virtual IPs
Static Virtual IPs (VIP) are used to map external IP addresses to internal IP addresses. This is also called destination NAT, where a packet's destination is being NAT'd, or mapped, to a different address.
Static VIPs are commonly used to map public IP addresses to resources behind the FortiProxy unit that use private IP addresses. A static on-to-one VIP is when the entire port range is mapped. A port forwarding VIP is when the mapping is configured on a specific port or port range.
To create a virtual IP in the GUI:
- In Policy & Objects > Virtual IPs and click Create New > Virtual IP.
- Select a VIP Type based on the IP versions used.
- Enter a unique name for the virtual IP.
- Enter values for the external IP address/range and map to IPv4/IPv6 address/range fields.
- Click OK.
To create a virtual IP in the CLI:
config firewall vip
edit "Internal_WebServer"
set extip 10.1.100.199
set extintf "any"
set mappedip "172.16.200.55"
next
end
Zero Trust Network Access
Zero Trust Network Access (ZTNA) is an access control method that uses client device identification, authentication, and Zero Trust tags to provide role-based application access. It gives administrators the flexibility to manage network access for on-net local users and off-net remote users. Access to applications is granted only after device verification, authenticating the user’s identity, authorizing the user, and then performing context based posture checks using Zero Trust tags.
Traditionally, a user and a device have different sets of rules for on-net access and off-net VPN access to company resources. With a distributed workforce and access that spans company networks, data centers, and cloud, managing the rules can become complex. User experience is also affected when multiple VPNs are needed to get to various resources.
Access proxy
The FortiProxy access proxy can proxy HTTP and TCP traffic over secure HTTPS connections with the client. This enables seamless access from the client to the protected servers, without needing to form IPsec or SSL VPN tunnels.
HTTPS access proxy
The FortiProxy HTTPS access proxy works as a reverse proxy for the HTTP server. When a client connects to a webpage hosted by the protected server, the address resolves to the FortiProxy unit’s access proxy VIP. The FortiProxy unit proxies the connection and takes steps to authenticate the user. It prompts the user for their certificate on the browser, and verifies this against the ZTNA endpoint record that is synchronized from the EMS. If an authentication scheme, such as SAML authentication, is configured, the client is redirected to a captive portal for sign-on. If this passes, traffic is allowed based on the ZTNA rules, and the FortiProxy unit returns the webpage to the client.
TCP forwarding access proxy (TFAP)
TCP forwarding access proxy works as a special type of HTTPS reverse proxy. Instead of proxying traffic to a web server, TCP traffic is tunneled between the client and the access proxy over HTTPS, and forwarded to the protected resource. The FortiClient endpoint configures the ZTNA connection by pointing to the proxy gateway, and then specifying the destination host that it wants to reach. An HTTPS connection is made to the FortiProxy unit’s access proxy VIP, where the client certificate is verified and access is granted based on the ZTNA rules. TCP traffic is forwarded from the FortiProxy unit to the protected resource, and an end to end connection is established.
Basic requirements for ZTNA configuration
The following are the basic requirements for configuring full ZTNA on the FortiProxy unit:
- FortiClient EMS fabric connector and ZTNA tags
- FortiClient EMS running version 7.0.0 or later
- FortiClient running 7.0.0 or later
- ZTNA server
- ZTNA rule
- Firewall policy
Basic ZTNA configuration
To deploy full ZTNA, configure the following components on the FortiProxy unit:
- Configure a FortiClient EMS fabric connector and ZTNA tags.
- Configure a ZTNA server.
- Configure a ZTNA rule.
- Configure a firewall policy for full ZTNA.
- Optionally configure authentication.
ZTNA tags
After the FortiProxy unit connects to the FortiClient EMS, it automatically synchronizes ZTNA tags.
To view the synchronized ZTNA tags in the GUI:
-
Go to Policy & Objects > ZTNA and select the ZTNA Tags tab.
-
Hover the cursor over a tag name to view more information about the tag, such as its resolved addresses.
To create a ZTNA tag group in the GUI:
-
Go to Policy & Objects > ZTNA and select the ZTNA Tags tab.
-
Click Create New Group.
-
Enter a name for the group and select the group members.
-
Click OK.
To create a ZTNA tag group in the CLI:
config firewall addrgrp edit <group name> set category ztna-ems-tag set member <members> next end
Security profiles
Stream-based antivirus scan in proxy mode for FTP, SFTP, and SCP
Stream-based antivirus scanning in proxy mode is supported for FTP, SFTP, and SCP protocols.
-
Stream-based antivirus scanning optimizes memory usage for large archive files by decompressing the files on the fly and scanning the files as they are extracted.
-
File types can be determined after scanning a few KB, without buffering the entire file.
-
Viruses can be detected even if they are hiding in the middle or end of a large archive.
-
When scanning smaller files, traffic throughput is improved by scanning the files directly on the proxy based WAD daemon, without invoking scanunit.
Stream-based scanning is the default scan mode when an antivirus is in proxy mode. To disable steam-based scanning, the scan mode can be set to legacy mode, and the archive will only be scanned after the entire file has been received.
To configure stream-based scan:
config antivirus profile edit <string> ... set scan-mode {default* | legacy} ... next end
TCP windows
Some file transfer applications can negotiate large TCP windows. For example, WinSCP can negotiate an initial TCP window size of about 2 GB.
The TCP window options can be used to prevent overly large initial TCP window sizes, helping avoid channel flow control issues. It allows stream‑based scan's flow control to limit peers from sending data that exceeds a policy's configured oversize limit.
To configure TCP window size options:
config firewall profile-protocol-options edit <string> config {ftp | ssh} ... set stream-based-uncompressed-limit <integer> set tcp-window-type {system | static | dynamic} set tcp-window-size <integer> set tcp-window-minimum <integer> set tcp-window-maximum <integer> ... end next end
{ftp | ssh} |
|
stream-based-uncompressed-limit <integer> |
The maximum stream-based uncompressed data size that will be scanned, in MB (default = 0 (unlimited)). Stream-based uncompression used only under certain conditions.). |
tcp-window-type {system | static | dynamic} |
The TCP window type to use for this protocol.
|
tcp-window-size <integer> |
The TCP static window size (65536 - 33554432, default = 262144). This option is only available when |
tcp-window-minimum <integer> |
The minimum TCP dynamic window size (65536 - 1048576, default = 131072). This option is only available when |
tcp-window-maximum <integer> |
The maximum TCP dynamic window size (1048576 - 33554432, default = 8388608). This option is only available when |
Configure threat feed and outbreak prevention without AV engine scan
In the CLI, users can enable malware threat feeds and outbreak prevention without performing an antivirus scan. In the GUI and CLI, users can choose to use all malware thread feeds, or specify the ones that they want to use. Replacement messages have been updated for external block lists.
config antivirus profile edit <name> config http set av-scan {disable | block | monitor} set outbreak-prevention {disable | block | monitor} set external-blocklist {disable | block | monitor} set quarantine {enable | disable} end ... set outbreak-prevention-archive-scan {enable | disable} set external-blocklist-enable-all {enable | disable} set external-blocklist <source> next end
To configure malware threat feeds and outbreak prevention without performing an AV scan in the CLI:
config antivirus profile edit "Demo" set mobile-malware-db enable config http set av-scan disable set outbreak-prevention block set external-blocklist block set quarantine enable set emulator enable set content-disarm disable end config ftp set av-scan disable set outbreak-prevention block set external-blocklist block set quarantine enable set emulator enable end config imap set av-scan monitor set outbreak-prevention block set external-blocklist block set quarantine enable set emulator enable set executables default set content-disarm disable end config pop3 set av-scan monitor set outbreak-prevention block set external-blocklist block set quarantine enable set emulator enable set executables default set content-disarm disable end config smtp set av-scan monitor set outbreak-prevention block set external-blocklist block set quarantine enable set emulator enable set executables default set content-disarm disable end config mapi set av-scan monitor set outbreak-prevention block set external-blocklist block set quarantine enable set emulator enable set executables default end config nntp set av-scan disable set outbreak-prevention disable set external-blocklist disable set quarantine disable set emulator enable end config cifs set av-scan monitor set outbreak-prevention block set external-blocklist block set quarantine enable set emulator enable end config ssh set av-scan disable set outbreak-prevention disable set external-blocklist disable set quarantine disable set emulator enable end set outbreak-prevention-archive-scan enable set external-blocklist-enable-all disable set external-blocklist "malhash1" set av-virus-log enable set av-block-log enable set extended-log disable set scan-mode default next end
In this example, configuring the quarantine setting is done in each protocol (set quarantine
). The malware threat feed is also specified (set external-blocklist-enable-all disable
) to the threat connector, malhash1 (set external-blocklist "malhash1"
).
Content disarm and reconstruction for antivirus
Content Disarm and Reconstruction (CDR) allows the FortiProxy unit to sanitize Microsoft documents and PDF files (disarm) by removing active content such as hyperlinks, embedded media, JavaScript, macros, and so on from the office document files without affecting the integrity of its textual content (reconstruction).
This feature allows network admins to protect their users from malicious office document files.
Files processed by CDR can have the original copy quarantined on the FortiProxy unit, allowing admins to observe them. These original copies can also be obtained in the event of a false positive.
Support and limitations
- CDR can only be performed on Microsoft Office documents and PDF files.
- Local Disk CDR quarantine is only possible on FortiProxy models that contain a hard disk.
- CDR is only supported on HTTP, SMTP, POP3, IMAP.
- SMTP splice and client-comfort mode is not supported.
- CDR can only work on files in .ZIP type archives.
Configuring the feature
To configure antivirus to work with CDR, you must enable CDR on your antivirus profile, set the quarantine location, and then fine tune the CDR detection parameters.
External malware block list for antivirus
External malware block list is a new feature that falls under the umbrella of Outbreak Prevention.
This feature provides another means of supporting the AV Database by allowing users to add their own malware signatures in the form of MD5, SHA1, and SHA256 hashes.
This feature provides a mechanism for Antivirus to retrieve an external malware hash list from a remote server and polls the hash list every n minutes for updates.
Support and limitations
Malware detection using the external malware block list in proxy-based policy inspections.
Just like FortiGuard Outbreak Prevention, the external dynamic block list is not supported in AV quick scan mode.
Using different types of hash simultaneously may slow down the performance of malware scanning. For this reason, Fortinet recommends using one type of hash (either MD5, SHA1, or SHA256), not all three simultaneously.
FortiGuard Outbreak Prevention for antivirus
FortiGuard Outbreak Prevention allows the FortiProxy antivirus database to be subsidized with third-party malware hash signatures curated by the FortiGuard. The hash signatures are obtained from external sources such as VirusTotal, Symantec, Kaspersky, and other third-party websites and services.
This feature provides the mechanism for antivirus to query the FortiGuard with the hash of a scanned file. If the FortiGuard returns a match from its many curated signature sources, the scanned file is deemed to be malicious.
The concept of FortiGuard Outbreak Prevention is to detect zero-day malware in a collaborative approach.
Support and limitations
- FortiGuard Outbreak Prevention policy inspections across all supported protocols.
- FortiGuard Outbreak Prevention does not support AV in quick scan mode.
Configuring the feature
For antivirus to work with an external block list, you must register the FortiProxy unit with a FortiGuard Outbreak Prevention license and enable FortiGuard Outbreak Prevention in the antivirus profile.
Important Note
The FortiGuard Outbreak Prevention service will be available as part of a future SWG Protection bundle. Customers that want to enable this feature need to renew the contract or purchase a new SWG Protection bundle.
FortiGuard web filter categories to block child sexual abuse and terrorism
Web filter categories 83 (Child Sexual Abuse, formerly Child Abuse) and 96 (Terrorism) can be used to enforce blocking and logging the Internet Watch Foundation (IWF) and Counter-Terrorism Internet Referral Unit (CTIRU) lists, respectively.
To create a web filter profile to block the Child Sexual Abuse and Terrorism categories in the GUI:
-
Go to Security Profiles > Web Filter and click Create New.
-
Enter a name for the new filter.
-
Enable FortiGuard Category Based Filter.
-
In the category table, in the Potentially Liable section, set the Action for the Child Sexual Abuse and Terrorism categories to Block.
-
Configure the remaining settings as required.
-
Click OK.
To create a web filter profile to block category 83 (Child Sexual Abuse) in the CLI:
config webfilter profile edit newfilter config ftgd-wf unset options config filters ... edit 83 set category 83 set action block next ... end end next end
To test the web filter:
-
Use the web filter profile in a policy.
-
On a device that is connected through the FortiProxy unit and that uses the policy, visit the test URLs for each category:
http://wfurltest.fortiguard.com/wftest/83.html
http://wfurltest.fortiguard.com/wftest/96.html
-
Log in to the FortiProxy unit and go to Log & Report > Web filter to view the logs for the blocked websites.
Video filtering
With the video filter profile, you can filter YouTube videos by channel ID for a more granular override of a single channel, user, or video. The video filter profile is currently supported in proxy-based policies and requires SSL deep inspection.
To configure a video filter in the GUI:
- Go to Security Profiles > Video Filter and click Create New.
- In the Channel override list section, click Create New. The New Channel Override Entry pane opens.
- Enter a Channel ID.
- In the Comments field, enter a description of the entry.
- Select Allow, Monitor, or Block for the action.
- Click OK.
To configure a video filter in the GUI:
config videofilter youtube-channel-filter
edit <identifier>
set name <string>
config entries
edit <identifier>
set action{allow | monitor | block}
set channel-id <string>
next
end
next
end
For example:
config videofilter youtube-channel-filter
edit 1
set name "channel_filter"
config entries
edit 1
set action block
set channel-id "UCJHo4AuVomwMRzgkA5DQEOA"
next
end
next
end
Web filter antiphishing profile enhanced
The following enhancements have been made to the antiphishing profile:
- Allow username and password field patterns to be fetched from FortiGuard.
- Add DNS support for domain controller IP fetching.
- Add support to specify a source IP or port for the fetching domain controller.
- Add LDAP server as a credential source (only the OpenLDAP server is supported).
- Block or log valid usernames regardless of password match.
- Add literal custom patterns type for username and password.
- Add support for Active Directory Lightweight Directory Services (AD LDS).
In previous versions of the FortiProxy CLI, the domain controller for antiphishing is configured under |
To update the antiphish pattern database:
- Go to System > FortiGuard and in the right-side pane, click Update Licenses & Definitions Now.
- Enter the following in the CLI:
# diagnose autoupdate versions ... AntiPhish Pattern DB --------- Version: 0.00000 Contract Expiry Date: n/a Last Updated using manual update on Tue Nov 30 00:00:00 1999 Last Update Attempt: Wed Sep 29 14:00:11 2021 Result: No Updates
To enable DNS service lookup:
config user domain-controller edit "win2016" set ad-mode ds set dns-srv-lookup enable set hostname "win2016" set username "replicate" set password ********** set domain-name "SMB2016.LAB" next end
To specify the source IP and port for the fetching domain controller:
config user domain-controller edit "win2016" set ad-mode ds set hostname "win2016" set username "replicate" set password ********** set ip-address 172.18.52.188 set source-ip-address 172.16.100.1 set source-port 2000 set domain-name "SMB2016.LAB" next end
To use an LDAP server as a credential store:
- Configure the LDAP server:
config user ldap edit "openldap" set server "172.18.60.214" set cnid "cn" set dn "dc=qafsso,dc=com" set type regular set username "cn=Manager,dc=qafsso,dc=com" set password ********** set antiphish enable set password-attr "userPassword" next end
- Configure the web filter profile:
config webfilter profile edit "webfilter" config ftgd-wf unset options config filters edit 1 set action block next end end config antiphish set status enable config inspection-entries edit "cat34" set fortiguard-category 34 set action block next end set authentication ldap set ldap "openldap" end set log-all-url enable next end
To configure user-name-only credential matching:
config webfilter profile edit "webfilter" config ftgd-wf unset options ... end config antiphish set status enable set check-username-only enable config inspection-entries edit "cat34" set fortiguard-category 34 set action block next end set domain-controller "win2016" end set log-all-url enable next end
To configure different custom pattern types for user names and passwords:
config webfilter profile edit "webfilter" config ftgd-wf unset options ... end config antiphish set status enable config inspection-entries edit "cat34" set fortiguard-category 34 set action block next end config custom-patterns edit "qwer" set type literal next edit "[0-6]Dat*" next edit "dauw9" set category password set type literal next edit "[0-5]foo[1-4]" set category password next end set domain-controller "win2016" end set log-all-url enable next end
In this example, the qwer
and dauw9
entries use the literal type, while [0-6]Dat*
and [0-5]foo[1-4]
use the default regex type.
To configure Active Directory in LDS mode:
config user domain-controller edit "win2016adlds" set ad-mode lds set hostname "win2016adlds" set username "foo" set password ********** set ip-address 192.168.10.9 set domain-name "adlds.local" set adlds-dn "CN=adlds1part1,DC=ADLDS,DC=COM" set adlds-ip-address 192.168.10.9 set adlds-port 3890 next end
Highlight of on-hold IPS signatures
IPS signatures that are on hold (administrator-added delay for activation time) are highlighted in the GUI as follows:
- On-hold signatures are grayed out with an hourglass icon beside the signature name.
- The signature tooltip displays the on hold expiry time.
- Users can still use on-hold signatures in an IPS sensor profile; however, the profile will not block matching traffic. It will monitor it instead (logging in effect) until the on hold time expires.
After a hold time is configured in the CLI, go to Security Profiles > IPS Signatures. Hover over the grayed-out entry to view the tooltip, which includes the action and hold time expiry.
The same tooltip is available on the Edit IPS Sensor (Security Profiles > Intrusion Prevention) page when creating or editing the IPS signatures. In the Add Signatures pane when the Type is Signature, on-hold signatures are only displayed as on hold if override-signature-hold-by-id
is enabled.
HTTP/2 support in SSL inspection
Security profiles can perform SSL inspection on HTTP/2 traffic that is secured by TLS 1.2 or 1.3 using the Application-Layer Protocol Negotiation (ALPN) extension.
To set the ALPN support:
config firewall ssl-ssh-profile
edit <profile>
set supported-alpn {all | http1-1 | http2 | none}
next
end
Multiple certificates can be defined in an SSL profile in replace mode
Multiple certificates can be defined in an SSL inspection profile in replace mode (Protecting SSL Server). This allows multiple sites to be deployed on the same protected server IP address, and inspection based on matching the SNI in the certificate.
When the FortiProxy unit receives the client and server hello messages, it will compare the SNI and CN with the certificate list in the SSL profile, and use the matched certificate as a replacement. If there is no matched server certificate in the list, the first server certificate in the list is used as a replacement.
To configure an SSL profile in replace mode with multiple certificates:
config firewall ssl-ssh-profile edit "multi-cert" set server-cert-mode replace set server-cert "bbb" "aaa" next end
To configure a policy that uses the SSL profile:
config firewall policy edit 1 set name "multi-cert" set srcintf "port6" set dstintf "port11" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" set utm-status enable set ssl-ssh-profile "multi-cert" set av-profile "default" set webfilter-profile "default" set logtraffic all next end
Results
If the Server Name Identification (SNI) matches the Common Name (CN) in the certificate list in the SSL profile, then the FortiProxy unit uses the matched server certificate.
If the Server Name Identification (SNI) does not match the Common Name (CN) in the certificate list in the SSL profile, then the FortiProxy unit uses the first server certificate in the list.
Handling SSL offloaded traffic from an external decryption device
In scenarios where the FortiProxy unit is sandwiched between load-balancers and SSL processing is offloaded on the external load-balancers, the FortiProxy unit can perform scanning on the unencrypted traffic by specifying the ssl-offloaded
option in firewall profile-protocol-options
.
To configure SSL offloading:
config firewall profile-protocol-options
edit <name>
config http
set ports <1-65535>
set ssl-offloaded {no | yes}
end
config ftp
set ports <1-65535>
set ssl-offloaded {no | yes}
end
config imap
set ports <1-65535>
set ssl-offloaded {no | yes}
end
config pop3
set ports <1-65535>
set ssl-offloaded {no | yes}
end
config smtp
set ports <1-65535>
set ssl-offloaded {no | yes}
end
config ssh
set ports <1-65535>
set ssl-offloaded {no | yes}
end
next
end
New filters for application control groups
When creating an application group, you can now define the application group by protocols, risk, vendor, technology, behavior, popularity, and category.
To create an application group in the CLI:
config application group
edit <name>
set type filter
set protocols <0-47 | all>
set risk <1-5>
set vendor <0-25 | all>
set technology <all | 0-4>
set behavior <all | 2 | 5 | 6 | 9>
set popularity <1-6>
set category <2 | 3 | 5-8 | 12 | 15 | 17 | 21-23 | 25 | 26 | 28-32>
next
end
To create an application group in the GUI:
- Go to Security Profiles > Application Signatures.
- Select Create New > Application Group.
- Enter a group name.
- Select Filter.
- Click + to add members to the group.
- Enter an optional description of the group.
- Click OK.
Support for secure ICAP remote servers
A secure SSL connection from the FortiProxy unit to the remote ICAP server can be configured as follows:
config icap remote-sever
edit <server_name>
set secure enable
set ssl-cert <certificate>
next
end
Add TCP connection pool for connections to ICAP server
A TCP connection pool can maintain local-out TCP connections to the external ICAP server due to a backend update in the FortiProxy unit. TCP connections will not be terminated once data has been exchanged with the ICAP server, but instead are reused in the next ICAP session to maximize efficiency.
Use case
In this scenario, an ICAP profile is used as a UTM profile in an explicit web proxy policy, and a client visits web servers through this proxy policy.
After the WAD is initialized, when a HTTP request is sent from the client to the server through the FortiProxy unit with an ICAP profile applied to the matched proxy policy, a TCP connection is established between the FortiProxy unit and the ICAP server to exchange data.
When an ICAP session is finished, the TCP connection is kept in the WAD connection pool. When another ICAP session needs to be established, the WAD will check if there are any idle connections available in the connection pool. If an idle connection is available, it will be reused; otherwise, a new TCP connection is established for the ICAP session. This process can be checked in the WAD debug log.
WAN optimization
Improved WAD traffic dispatcher
The WAD traffic dispatcher now allows incoming traffic to be directly distributed to the workers. This enhancement also allows source addresses to be exempt from proxy affinity, which allows traffic from the same source and different server to be distributed to workers in a round-robin configuration. A maximum of 255 workers is now supported.
VPN
Dual-stack IPv4 and IPv6 support for SSL VPN
Dual-stack IPv4 and IPv6 support for SSL-VPN servers and clients enables a client to establish a dual-stack tunnel to allow both IPv4 and IPv6 traffic to pass through. FortiProxy SSL-VPN clients also support dual stack, which allows it to establish dual stack tunnels with other FortiProxy units.
Users connecting in web mode can connect to the web portal over IPv4 or IPv6. They can access bookmarks in either IPv4 or IPv6, depending on the preferred DNS setting of the web portal.
To enable dual stack in the CLI:
config vpn ssl settings set dual-stack-mode enable end
Disable the clipboard in SSL-VPN web-mode RDP connections
In web portal profiles, the clipboard can be disabled for SSL VPN web-mode RDP/VNC connections. Users will not be able to copy and paste content to or from the internal server.
To disable the RDP/VNC clipboard in the GUI:
- Go to VPN > SSL-VPN Portals.
- Select a portal and click Edit.
- Disable RDP/VNC clipboard.
- Click OK.
To disable the RDP/VNC clipboard in the CLI:
config vpn ssl web portal edit <portal_name> set clipboard disable next end
System
Allow administrators to define password policy with minimum character change
In previous FortiProxy versions, password policies were restricted to only enable or disable a minimum of four new characters in new password. Administrators can now set a minimum number of unique characters in the new password that do not exist in the old password. This setting overrides the password reuse option if both are enabled.
To configure the password policy in the GUI:
- Go to System > Settings and navigate to the Password Policy section.
- For Password scope, select Admin.
- Enter a value for Minimum number of new characters.
- Click Apply.
To configure the password policy in the CLI:
config system password-policy set status enable set min-change-characters <0-128> end
ACME certificate support
The Automated Certificate Management Environment (ACME), as defined in RFC 8555, is used by the public Let's Encrypt certificate authority (https://letsencrypt.org) to provide free SSL server certificates. The FortiProxy unit can be configured to use certificates that are manged by Let's Encrypt, and other certificate management services, that use the ACME protocol. The server certificates can be used for secure administrator log in to the FortiProxy unit.
-
The FortiProxy unit must have a public IP address and a hostname in DNS (FQDN) that resolves to the public IP address.
-
The configured ACME interface must be public facing so that the FortiProxy unit can listen for ACME update requests. It must not have any VIPs, or port forwarding on port 80 (HTTP) or 443 (HTTPS).
-
The Subject Alternative Name (SAN) field is automatically filled with the FortiProxy DNS hostname. It cannot be edited, wildcards cannot be used, and multiple SANs cannot be added.
NOTE: To configure certificates in the GUI, go to System > Feature Visibility and enable Certificates.
To import an ACME certificate in the GUI:
-
Go to System > Certificates and click Import > Local Certificate.
-
Set Type to Automated.
-
Set Certificate name to an appropriate name for the certificate.
-
Set Domain to the public FQDN of the FortiProxy unit.
-
Set Email to a valid email address. The email is not used during the enrollment process.
-
Ensure that ACME service is set to Let's Encrypt.
-
Configure the remaining settings as required and then click OK.
-
If this is the first time enrolling a server certificate with Let's Encrypt on this FortiProxy unit, the Set ACME Interface pane opens. Select the interface that the FortiProxy unit communicates with Let's Encrypt on and then click OK.
The ACME interface can later be changed in System > Settings.
-
Select the new server certificate in the Local Certificate list and then click View Details to verify that the FortiProxy unit's FQDN is in the certificate's Subject: Common Name (CN).
The Remote CA Certificate list includes the issuing Let's Encrypt intermediate CA, issued by the public CA DST Root CA X3 from Digital Signature Trust Company.
To exchange the default FortiProxy administration server certificate for the new public Let's Encrypt server certificate in the GUI:
-
Go to System > Settings.
-
Set the HTTPS server certificate to the new certificate.
-
Click Apply.
-
Log in to the FortiProxy unit using an administrator account from any Internet browser. There should be no warnings related to nontrusted certificates, and the certificate path should be valid.
To import an ACME certificate in the CLI:
- Set the interface that the FortiProxy unit communicates with Let's Encrypt on:
config system acme
set interface port1
end
- Make sure that the FortiProxy unit can contact the Let's Encrypt enrollment server:
FortiProxy-400E # execute ping acme-v02.api.letsencrypt.org PING ca80a1adb12a4fbdac5ffcbc944e9a61.pacloudflare.com (172.65.32.248): 56 data bytes 64 bytes from 172.65.32.248: icmp_seq=0 ttl=56 time=4.8 ms 64 bytes from 172.65.32.248: icmp_seq=1 ttl=56 time=4.5 ms 64 bytes from 172.65.32.248: icmp_seq=2 ttl=56 time=4.5 ms 64 bytes from 172.65.32.248: icmp_seq=3 ttl=56 time=4.5 ms 64 bytes from 172.65.32.248: icmp_seq=4 ttl=56 time=4.5 ms --- ca80a1adb12a4fbdac5ffcbc944e9a61.pacloudflare.com ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 4.5/4.5/4.8 ms
- Configure the local certificate request:
config vpn certificate local
edit "acme-test"
set enroll-protocol acme2
set acme-domain "test.ftntlab.de"
set acme-email "techdoc@fortinet.com"
next
By enabling this feature you declare that you agree to the Terms of Service at
https://acme-v02.api.letsencrypt.org/directory
Do you want to continue? (y/n)y
end
- Verify that the enrollment was successful:
# get vpn certificate local details acme-test
To exchange the default FortiProxy administration server certificate for the new public Let's Encrypt server certificate in the CLI:
config system global
set admin-server-cert "acme-test"
end
When you log in to the FortiProxy unit using an administrator account, there should be no warnings related to nontrusted certificates, and the certificate path should be valid.
New option to automatically update schedule frequency
The default auto-update schedule for FortiGuard packages has been updated. Previously, the frequency was a reoccurring random interval within two hours. Starting in 7.0, the frequency is automatic, and the update interval is calculated based on the model and percentage of valid subscriptions. The update interval is within one hour.
config system autoupdate schedule set frequency {every | daily | weekly | automatic} end
Security Fabric
Simplify EMS pairing with Security Fabric so one approval is needed for all devices
FortiClient EMS with Fabric authorization and silent approval capabilities will be able to approve the root FortiProxy unit in a Security Fabric once and then silently approve remaining downstream FortiProxy units in the Fabric. Similarly in an HA scenario, an approval only needs to be made once to the HA primary unit. The remaining cluster members are approved silently.
To use EMS silent approval:
- Configure the EMS entry on the root FortiProxy unit or HA primary:
config endpoint-control fctems edit "ems139" set fortinetone-cloud-authentication disable set server "172.16.200.139" set https-port 443 set source-ip 0.0.0.0 set pull-sysinfo enable set pull-vulnerabilities enable set pull-avatars enable set pull-tags enable set pull-malware-hash enable unset capabilities set call-timeout 30 set websocket-override disable next end
When the entry is created, the capabilities are unset by default.
- Authenticate the FortiProxy unit with EMS:
# execute fctems verify ems_139 ...
The FortiProxy unit enables the Fabric authorization and silent approval based on the EMS supported capabilities.
config endpoint-control fctems edit "ems139" set server "172.18.62.12" set capabilities fabric-auth silent-approval websocket next end
- Configure a downstream device in the Security Fabric. The downstream device is silently approved.
- Configure a secondary device in an HA system. The secondary device is silently approved.
External threat feeds integrations
You can define 511 thread feed entries using either the GUI or CLI.
To configure an external threat feed connector in the GUI:
- Go to Security Fabric > External Connectors and click Create New.
- In the Threat Feeds section, click one of the icons.
- Configure the settings as needed.
- Click OK.
To configure an external threat feed connector in the CLI:
config system external-resource
edit "<external_resource_name"
set status enable
set uuid <universially_unique_identifier>
set type {category | address | domain | malware}
set category <192-221>
set username <HTTP_basic_authentication_user_name>
set password <HTTP_basic_authentication_password>
set comments <descriptive_comments>
set resource <URI_of_external_resource>
set user-agent <HTTP_User-Agent_header>
set refresh-rate <1-43200 minutes>
set source-ip <source_IPv4_address_used_to_communicate_with_server>
set interface-select-method {auto | sdwan | specify}
next
end
External block list file hashes
The malware hash threat feed connector supports a list of file hashes that can be used as part of virus outbreak prevention.
To create a malware hash connector in the GUI:
- Go to Security Fabric > External Connectors and click Create New.
- In the Threat Feeds section, click Malware Hash.
- Enter a name for the malware hash file.
- Enter the URI for the malware hash file.
- Click OK.
To create a malware hash connector in the CLI:
config system external-resource
edit <external_resource_name>
set type malware
set resource<string>
next
end
External block list (threat feed) for policy
You can use the external block list (threat feed) for web filtering and DNS. You can also use external block list (threat feed) in firewall policies.
To create an external IP list object:
Create a plain text file with one IP address, IP address range, or subnet per line. For example:
192.168.2.100
172.200.1.4/16
172.16.1.2/24
172.16.8.1-172.16.8.100
2001:0db8::eade:27ff:fe04:9a01/120
2001:0db8::eade:27ff:fe04:aa01-2001:0db8::eade:27ff:fe04:ab01
To use an external IP list object:
- Go to Security Fabric > External Connectors and click Create New.
- In the Threat Feeds section, click IP Address.
- In the URI of external resource field, enter the link to the external IP list object.
- Click OK.
Log and report
Add logs for the execution of CLI commands
The cli-audit-log
option records the execution of CLI commands in system event logs (log ID 44548). In addition to execute
and config
commands, show
, get
, and diagnose
commands are recorded in the system event logs.
The cli-audit-log
data can be recorded on memory or disk and can be uploaded to FortiAnalyzer or a syslog server.
To enable the CLI audit log option:
config system global set cli-audit-log enable end
To display the logs:
# execute log filter device disk
# execute log filter category event
# execute log filter field subtype system
# execute log filter field logid 0100044548
# execute log display
Other new features, enhancements, and changes
- Real-time logging to FortiAnalyzer
- TLS 1.3 is now supported.
- New FortiProxy VMware deployments now have two disks, one for logging and one for web caching.
- More FortiView widgets are available to add to the dashboard.
- The Content Analyses log is now available in the GUI.
- The TLS fingerprint library can now be uploaded or downloaded in the CLI and GUI.
- You can now use the Policy Lookup tool to find a specific policy.
- You can now use DNS translation.
- You can now use the x-auth-user from the HTTP header when configuring an authentication scheme.
- User authentication was improved for large deployments.
- The dedicated management interface is now available for NAT mode.
- The RAPTOR scheme can now be used in authentication scripts.
- You can now use the forwarding server without DNS lookup.
- New CLI commands let you display statistics for explicit web proxy and SSH proxy traffic.
- You can now manage the blocked-image cache in the GUI.
-
When using an FQDN domain as destination address in a firewall policy, subdomains of the FQDN domain are no longer covered by the policy. To cover the subdomains, you must either use wildcard in the FQDN domain or define a separate policy for each subdomain.