Ssl vpn setup fortigate
Author: e | 2025-04-24
This video demonstrates how to setup SSL VPN on a Fortigate using Tunnel
Fortinet FortiGate – SSL VPN Setup
SSL VPN Choosing a mode of operation and applying the proper levels of security depends on your specific environment and requirements. In tunnel mode, the SSL VPN client encrypts all traffic from the remote client computer and sends it to the FortiGate through an SSL VPN tunnel over the HTTPS link between the user and the FortiGate. It supports a wide range of applications, and provides a transparent user experience when properly configured. FortiClient might enable a DTLS tunnel that allows the SSL VPN to encrypt traffic using TLS, and uses UDP as the transport layer instead of TCP. This avoids retransmission issues that can occur with TCP-inTCP that result in lower throughput. For information on troubleshooting slow SSL VPN throughput, see Troubleshooting common issues in the FortiOS Administration Guide. Web mode provides clientless network access using a web browser with built-in SSL encryption. It is easier to set up than tunnel mode and does not require that an application be installed on the endpoint, but it has limited application support and requires more resources on the FortiGate. For more information, see SSL VPN best practices in the FortiOS Administration Guide. Starting in 7.6.0, FortiGate models with 2GB of memory no longer support SSL VPN. Fortinet Inc. recommends to use IPsec VPN or other non-VPN secure remote access solutions such as ZTNA and FortiSASE. See SSL VPN to IPsec VPN migration and Non-VPN remote access for more details. This video demonstrates how to setup SSL VPN on a Fortigate using Tunnel FortiGate Remote Access (SSL – VPN ) is a solution that is a lot easier to setup Using the menu "VPN Location Map" does show me a nice overview of the currently connected VPN connections (IPSEC, SSL VPN).However, the locations of the fortigate are most of the time somewhere in the Gulf of Guniea (0°S, 0°E). The physical location of all our fortigates is configured in FortiCloud (product details) with the address (street, ZIP, town, etc.). I did not find a way to set the device location in the fortigate GUI, nor via CLI. I checked with dia "geoip geoip-query " on each fortigate it's own location and it shows a somewhat accurate location (sometimes off by a lot, based on the ISP).So, I have several questions:How does the fortigate determine it's own location used for the VPN location map? From the location configuration in FortiCloud? (difficult, if not impossible)Via geo-ip query? (most likely)If yes, which IP is used in a milti VDOM environment with several WAN IP's per VDOM?Note: If I use "dia geoip geoip-query , I get the correct location (Berne, Switzerland), yet in the VPM Location Map, the fortigate is located somewhere in Germany.Two examples:fortigate1physical location: Berne, Switzerlandlocation on VPN map: somewhere in southern Germanydia geoip geoip-query: Berne, Switzerlandlocation fortigate 2 (IPSEC) in VPN Location Map: Thun, Switzerlandfortigate2physical location Thun, Switzerlandlocation on VPN map: Gulf of Guineadia geoip geoip-query: Berne, Switzerlandlocation fortigate 1 (IPSEC) in VPN Location Map: Berne, SwitzerlandHow is the location of VPN endpoints (SSL VPN, IPSEC VPN) determined?Looking at the maps on several fortigates with active VPN's, it seems that geo-ipComments
SSL VPN Choosing a mode of operation and applying the proper levels of security depends on your specific environment and requirements. In tunnel mode, the SSL VPN client encrypts all traffic from the remote client computer and sends it to the FortiGate through an SSL VPN tunnel over the HTTPS link between the user and the FortiGate. It supports a wide range of applications, and provides a transparent user experience when properly configured. FortiClient might enable a DTLS tunnel that allows the SSL VPN to encrypt traffic using TLS, and uses UDP as the transport layer instead of TCP. This avoids retransmission issues that can occur with TCP-inTCP that result in lower throughput. For information on troubleshooting slow SSL VPN throughput, see Troubleshooting common issues in the FortiOS Administration Guide. Web mode provides clientless network access using a web browser with built-in SSL encryption. It is easier to set up than tunnel mode and does not require that an application be installed on the endpoint, but it has limited application support and requires more resources on the FortiGate. For more information, see SSL VPN best practices in the FortiOS Administration Guide. Starting in 7.6.0, FortiGate models with 2GB of memory no longer support SSL VPN. Fortinet Inc. recommends to use IPsec VPN or other non-VPN secure remote access solutions such as ZTNA and FortiSASE. See SSL VPN to IPsec VPN migration and Non-VPN remote access for more details.
2025-03-26Using the menu "VPN Location Map" does show me a nice overview of the currently connected VPN connections (IPSEC, SSL VPN).However, the locations of the fortigate are most of the time somewhere in the Gulf of Guniea (0°S, 0°E). The physical location of all our fortigates is configured in FortiCloud (product details) with the address (street, ZIP, town, etc.). I did not find a way to set the device location in the fortigate GUI, nor via CLI. I checked with dia "geoip geoip-query " on each fortigate it's own location and it shows a somewhat accurate location (sometimes off by a lot, based on the ISP).So, I have several questions:How does the fortigate determine it's own location used for the VPN location map? From the location configuration in FortiCloud? (difficult, if not impossible)Via geo-ip query? (most likely)If yes, which IP is used in a milti VDOM environment with several WAN IP's per VDOM?Note: If I use "dia geoip geoip-query , I get the correct location (Berne, Switzerland), yet in the VPM Location Map, the fortigate is located somewhere in Germany.Two examples:fortigate1physical location: Berne, Switzerlandlocation on VPN map: somewhere in southern Germanydia geoip geoip-query: Berne, Switzerlandlocation fortigate 2 (IPSEC) in VPN Location Map: Thun, Switzerlandfortigate2physical location Thun, Switzerlandlocation on VPN map: Gulf of Guineadia geoip geoip-query: Berne, Switzerlandlocation fortigate 1 (IPSEC) in VPN Location Map: Berne, SwitzerlandHow is the location of VPN endpoints (SSL VPN, IPSEC VPN) determined?Looking at the maps on several fortigates with active VPN's, it seems that geo-ip
2025-04-01Hello,we having trouble with throughput the SSL VPN on WindowsLatency from the client to the Fortigate is about 20ms and bandwidth in Fortigate site is 1Gbps and client site is 100MbbpsFirst, when connecting locally over the internal gigabit network (with near-zero latency), performance easily exceeds about 60Mbps for download on the client. I verified through trace routes, the route table, and Task Manager that tested traffic was indeed flowing through SSL VPN. This tells me that the underlying hardware is capable. However, when testing from off-site (at least 100Mbps and 20ms latency), the performance changes. From the client' s perspective, the download rate through SSL VPN is about 13Mbps and the upload is the problem in that it cannot exceed about 2-3Mbps.It seems that the increased latency is the contributing factor. Given that the SSL VPN uses TCP, my guess is that there' s an issue with TCP window scaling of the SSL VPN connection itself, especially when the client is sending data to the Fortigate.I tried disable all UTM, change IP on wan. wan has no errors, MTU 1500, speed 1GbitFD (fix).Important: If I configured IPsec VPN and test it, throughput from the corporate LAN to the client is over 80Mbps on both sides. And also traffic to the internet (through the Fortigate, no split-tunnel) reaches maximum client line (about 90Mbps).Has anyone else been able to achieve better performance on either Windows SSL VPN clients? Our clients need good throughput in both directions from corporate LAN and Internet-based sources where latency far from zero...My testing has included Windows 7 and Windows 10 Transfer tests included iperf (tcp and udp modes), SMB, FTP, Speedtest.net (and similar tools hosted by the ISP). Fortigate 100D running on v5.4.3,build1111 and FortiClient 5.4.2.0860config vpn ssl settingsset reqclientcert disableset sslv3 disableset tlsv1-0 disableset tlsv1-1 enableset tlsv1-2 enableunset banned-cipherset ssl-big-buffer disableset ssl-insert-empty-fragment enableset https-redirect disableset ssl-client-renegotiation disableset force-two-factor-auth disableset servercert "**********"set algorithm highset idle-timeout 0set auth-timeout 28800set tunnel-ip-pools "*********"set dns-suffix "*******.local"set dns-server1 172.22.91.100set dns-server2 172.22.91.101set wins-server1 172.22.91.100set wins-server2 172.22.91.101set ipv6-dns-server1 ::set ipv6-dns-server2 ::set ipv6-wins-server1 ::set ipv6-wins-server2 ::set route-source-interface disableset url-obscuration disableset http-compression disableset http-only-cookie enableset port
2025-04-23Known issues The following issues have been identified in version 7.2.1. To inquire about a particular bug or report a bug, please contact Customer Service & Support. Anti Virus Bug ID Description 869398 FortiGate sends too many unnecessary requests to FortiSandbox and causes high resource usage. Explicit Proxy Bug ID Description 803228 When converting an explicit proxy session to SSL redirect, traffic may be interrupted inadvertently in some situations. GUI Bug ID Description 677806 On the Network > Interfaces page when VDOM mode is enabled, the Global view incorrectly shows the status of IPsec tunnel interfaces from non-management VDOMs as up. The VDOM view shows the correct status. 719476 FortiLink NAC matched device is displayed in the CLI but not in the GUI under WiFi & Switch Controller > NAC Policies > View Matched Devices. 825598 The FortiGate may display a false alarm message TypeError [ERR_INVALID_URL]: Invalid URL in the crashlog for the node process. This error does not affect the operation of the GUI. 833306 Intermittent error, Failed to retrieve FortiView data, appears on real-time FortiView Sources and FortiView Destination monitor pages. 835089 Unable to move SD-WAN rule ordering in the GUI (FortiOS 7.2.1). Workaround: move the SD-WAN rule ordering in the CLI. HA Bug ID Description 823687 A cluster is repeatedly out-of sync due to external files (SSLVPN_AUTH_GROUPS) when there are frequent user logins and logouts. Hyperscale Bug ID Description 824071 ECMP does not load balance IPv6 traffic between two routes in a multi-VDOM setup. 824733 IPv6 traffic continues to pass through a multi-VDOM setup, even when the static route is deleted. IPsec VPN Bug ID Description 763205 IKE crashes after HA failover when the enforce-unique-id option is enabled. Proxy Bug ID Description 799237 WAD crash occurs when TLS/SSL renegotiation encounters an error. Routing Bug ID Description 833399 Static routes are incorrectly added to the routing table, even if the IPsec tunnel type is static. Security Fabric Bug ID Description 825291 Security rating test for FortiAnalyzer fails when connected to FortiAnalyzer Cloud. SSL VPN Bug ID Description 795381 FortiClient Windows cannot be launched with SSL VPN web portal. 819754 Multiple DNS suffixes cannot be set for the SSL VPN portal. System Bug ID Description 798303 The threshold for conserve mode is lowered. 832429 Random kernel panic may occur due to an incorrect address calculation for the internet service entry's IP range. 837730 Trusted hosts are not working correctly
2025-04-07Information used to establish an SSL VPN connection on_connect: a script to run right after a successful connection 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). XML tag Description Default value VPN connection name. Optional description to identify the VPN connection. SSL server IP address or FQDN, along with the port number as applicable. Default port number: 443 Encrypted or non-encrypted username on SSL server. Enable single user mode. If enabled, new and existing VPN connections cannot be established or are disconnected if more than one user is logged on the computer. Boolean value: [0 | 1] 0 Enter a disclaimer message that appears when the user attempts VPN connection. The user must accept the message to allow connection. How FortiClient determines the order in which to try connection to the SSL VPN servers when more than one is defined. FortiClient calculates the order before each SSL VPN connection attempt. When the value is 0, FortiClient tries the order explicitly defined in the tag. When the value is 1, FortiClient determines the order by the ping response speed. When the value is 2, FortiClient determines the order by the TCP round trip time. 0 Enable SAML SSO for the VPN tunnel. For this feature to function, the administrator must have configured the necessary options on the Service Provider and Identity Provider. See SAML support for SSL VPN. Given user's encrypted or non-encrypted password. elements The XML sample provided above only shows XML configuration when using a username and password. See Sample XML using certificate authentication for example of XML configuration for certificate authentication. elements Elements for common name of the certificate for VPN logon. Enter the type of matching to use: simple: exact match wildcard: wildcard regex: regular expressions Enter the pattern to use for the type of matching. elements Elements about the issuer of the certificate for VPN logon. Enter the type of matching to use: simple: exact match wildcard: wildcard Enter the pattern to use for the type of matching. Display a warning message if the server certificate is invalid. Boolean value: [0 | 1] 0 When this setting is 1, non-administrator users can use local machine certificates to connect SSL VPN. When this setting is 0, non-administrator users cannot use machine certificates to connect SSL VPN. Boolean value: [0 | 1] 0 Request a certificate during connection establishment. Boolean value: [0 | 1] 0 Request a username. Boolean value: [0 | 1] 1 Indicates whether FortiClient received a VPN configuration from FortiGate or EMS. When this setting is 1, FortiClient received a VPN configuration from FortiGate or EMS, and the user can view the VPN configuration when connected to FortiGate or EMS. If FortiClient is disconnected from FortiGate or EMS after connecting and receiving the VPN configuration, the user can view and delete the VPN configuration but cannot edit it. When this setting is 0, FortiClient did not receive a
2025-04-01Received on an interface with an SSL VPN portal the FortiGate assumes its an SSL VPN connection attempt and admin GUI access is not allowed. If port-precedence is disabled the FortiGate assumes its an admin GUI access attempt and SSL VPN access is not allowed. Enabled by default. auto-tunnel-static-route {enable | disable} Enable (by default) or disable the automatic creation of static routes for the networks that can be accessed through the SSL VPN tunnel. This is only possible if tunnel mode is enabled. header-x-forwarded-for {pass | add | remove} Action when HTTP x-forwarded-for header to forwarded requests. pass forwards the same HTTP header. add (by default) adds the HTTP header. remove removes the HTTP header. source-interface The interface(s) to listen on for SSL clients. You must have already configured the interfaces on the FortiGate unit before entering them here. Enter any to match any interface in the virtual domain. {source-address | source-address6} [addr-ip4/6] An optional feature to specify IPv4 or IPv6 addresses from which users can log in. Leave this entry blank to allow login from any address. {source-address-negate | source-address6-negate} {enable | disable} Enable or disable {by default} inverting the source-address or source-address6 entries so that it instead specifies IPv4 or IPv6 addresses to not allow. default-portal The name of the default SSL VPN portal, either one of the defaults (full-access, tunnel-access, or web-access) or a custom portal created on the FortiGate unit. dtls-tunnel {enable | disable} Enable (by default) or disable the Datagram Transport Layer Security (DTLS) tunnel, allowing datagram-based applications to communicate in a way that prevents eavesdropping, tampering, or message forgery. check-referer {enable | disable} Enable or disable (by default) the verification of referer field in HTTP request header. http-request-header-timeout The amount of time in seconds before the HTTP connection disconnects if HTTP request header is not complete. Set value between 1-60 (or one second to one minute). The default is set to 20. http-request-body-timeout The amount of time in seconds before the HTTP connection disconnects if HTTP request body is not complete. Set value between 1-60 (or one second to one minute). The default is set to 30.
2025-04-19