Description | This guide illustrates the common SSL VPN best practices that should be taken into consideration while configuring the SSL VPN on the FortiGate to further strengthen the security. |
Scope | FortiGate. |
Solution |
Changing the default port: By default, 443 is the port used for SSL VPN connection. It is recommended to change the port to something other than 443, 10443, or 8443. These are the most common ports that are usually used.
From CLI:
config vpn ssl settings set port 11243 end
Restrict Access:
Make sure to restrict access to only a certain number of hosts. This can be done in two ways:
Users should either be authenticated by 2FA or authenticated elsewhere (LDAP, RADIUS, SAML).
The recommendation is to always have the two-factor authentication enabled if the users are defined locally. However, any form of MFA (if the users are getting authenticated elsewhere) should be in place, as it adds another layer of security. There is also an option to configure PKI certificates as MFA. For more details, see this section of the administration guide.
Creating a local-in policy:
Often, failed attempts are seen being made for the SSL VPN connection. To stop FortiGate from generating the logs, and stop the traffic at the interface level, configuring a local-in policy is advised.
To create a local-in policy, see the administration guide. As of FortiOS v7.6 and above, the local-in policy can be created from the GUI as well. See Technical Tip: Creating a Local-In policy (IPv4 and IPv6) on GUI.
If we are not able to restrict it via a geography block, a good option is to create a script based on SSL-login-fail attempts. For more information refer here: https://community.fortinet.com/t5/FortiGate/Technical-Tip-Block-SSL-VPN-failed-logins-with-an-automa...
Limit SSL VPN login attempts, set block duration, and set parallel login.
The default login-attempt-limit for SSL VPN is set at 2, and the block duration is 60 seconds.
Increase or decrease the parameters accordingly to avoid any brute force attack.
See Technical Tip: How to limit SSL VPN login attempts and block duration.
As a best practice, limit a user to one login only. Go to VPN -> SSL VPN -> Select a portal: 'Limit Users to One SSL-VPN Connection at a Time'.
In the CLI:
config vpn ssl web portal edit "<Portal Name>" set limit-user-logins enable end
This will ensure that a user can just login once and, if the login attempt is made for the same user, the connected user will get disconnected.
Disabling web-mode, and replacement message.
If web mode is not in use, it is always recommended to disable the web-mode under the portal that is defined for the user group:
Moreover, since the web mode is not in use, as a safety measure: remove the replacement message from under the SSL VPN Login Page.
For more details, see Technical Tip: How to create a blank page for SSL VPN Portal with replacement messages.
config vpn ssl web portal edit "NO_ACCESS" set forticlient-download disable next end set default-portal "NO_ACCESS" end
Disabling weak ciphers and TLS protocols for SSL VPN:
FortiGate supports multiple SSL/TLS versions and cipher suites. It is recommended to use at least 1.2 or 1.3.
config vpn ssl settings set ssl-max-protocol-ver tls1-0 TLS version 1.0. tls1-1 TLS version 1.1. tls1-2 TLS version 1.2. tls1-3 TLS version 1.3.
Related articles:
|
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2024 Fortinet, Inc. All Rights Reserved.