| Description |
This article demonstrates how to configure a dial-up IPsec VPN using IKEv2 and Multi-Factor Authentication (MFA) with Duo authentication proxy. |
| Scope | FortiOS v6.2.4 and later, dial-up IKEv2 VPN. |
| Solution |
This article refers to non-SSO authentication. For an example of a VPN deployment using SSO authentication, see Technical Tip: How to configure Microsoft Entra ID SAML authentication for Dial-up IPsec VPN.
Configure the Duo application:
Note: the 'support ending' flag on the 'Fortinet FortiGate SSL VPN' Duo application refers to Duo support for the traditional Duo Prompt using iFrame, which IKEv2 does not use. See the third-party reference Guide to Traditional Duo Prompt End of Support for more information. It is possible to use either application template to configure the Duo application for IKEv2.
Configure the Duo authentication proxy:
; CLIENTS: Include one or more of the following configuration sections.
[ad_client] <-- ad_client information is left blank
[radius_client]
[radius_server_auto]
By default, it is disabled on the Duo authentication proxy and enabled on FortiGate. See the article Troubleshooting Tip: RADIUS authentication failure after the firmware upgrade to v7.2.10/v7.4.5/v7.6....
If needed, secrets in this file can be encrypted. See the third-party reference How do I use the Duo Authentication Proxy password encryption tool?
The NPS configuration is similar to Technical Tip: IKEv2 Dialup IPsec tunnel with RADIUS and FortiToken MFA, updating the FortiGate IP address and secret with the Duo authentication proxy.
FortiOS configuration: FortiGate configuration is similar to Technical Tip: IKEv2 Dialup IPsec tunnel with RADIUS and FortiToken MFA, with the following differences:
RADIUS server configuration references the Duo authentication proxy IP address and uses the RADIUS secret shared between Duo and FortiGate:
edit "Duo-Proxy" set server "172.16.1.22" set require-message-authenticator { enable | disable } <-- Must match authproxy.cfg setting. next end
Since no FortiToken is assigned, no remote RADIUS user is defined. Instead, the user group is configured to reference the radius server directly.
config user group edit "Escalations-Radius-DC1" set member "Duo-Proxy" next end
Since the FortiGate is not aware of the MFA taking place, the global remoteauthtimeout must be extended.
config system global set remoteauthtimeout 60 end
FortiGate VPN tunnel and firewall policy settings are the same as in the FortiToken MFA use case.
Related articles: Technical Tip: FortiOS IKEv2 Dialup VPN User and Multi-factor authentication resources Technical Tip: FortiOS IKEv2 EAP user authentication operation |
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 2025 Fortinet, Inc. All Rights Reserved.