Have a Question?
Table of Contents
< All Topics
Print

Configuration of Duo Security Proxy Server, Integration with WatchGuard Firewall, and Microsoft Remote Access Server

Scenario:

NicheITS recently was recently contracted by a client whom wanted a integrated solution to  assist with updating compliance requirements for CMMC 2.0 combing their WatchGuard XTMV firewall, Microsoft Active Directory solution (AD) and Duo Security Multi-Factor Authentication (MFA) for staff VPN access meeting TLS 1.2+ and cipher encryption requirements.  

Requirements:

  • Leverages Windows 10+ VPN client.
  • Pre login screen vpn connection ability to sync Active Directory passwords, Shared drives, and Group Policy Objects (GPO) on employee laptops and workstations.
  • Windows VPN client connects to WatchGuard Firewall with IKEv2 leveraging SSL certificate.
  • Users are required to authenticate with Duo two factor authentication push prior to DHCP address hand down.
  • Leverage the detailed logging capabilities of the WatchGuard Firewall.
  • Provide Network Address Translation for connecting devices.
  • Disable dual tunneling capabilities.
  • Ability to disconnect/lock users throughout the organizations internal and 3rd party cloud solutions with Active Directory.

Authentication Process:

  1. Client device connects to WatchGuard Firewall for Authentication.
  2. Watchguard makes request for user authentication back to Duo Proxy Server
  3. Duo Proxy makes authentication request to MS Radius Server which reads from the Network Policy Service (NPS) for Connection Policy requirements and Network Policy.
  4. If NPS Connection Request Policy meets requirements the NPS Server then the validated User is in approved group and active in Active Directory.
  5. Once validated against AD, the approved request goes to the Duo Proxy Server for MFA request back to the User mobile device app.
  6. Once MFA has approved push/code the Duo Proxy Server authenticates the user with the WatchGuard Firewall which than provides a VPN IP address for communication.
  7. VPN enabled on the Windows Login screen then pulls User GPO and Password Updates.
				The following Windows PowerShell cmdlet or cmdlets perform the same function as the preceding procedure. Enter each cmdlet on a single line, even though they may appear word-wrapped across several lines here because of formatting constraints.

Install-WindowsFeature RemoteAccess -IncludeManagementTools
			

Create Active Directory Security Group

Configure Network Policy Service

Add WG Firewall As A Radius Client

Configure WatchGuard Firewall Radius Client

Configure IKEv2 on WatchGuard Firewall

WatchGuard Notes:

Virtual IP address pools do not affect whether VPN users are considered as trusted users on the local network. For example, if you specify an IP address pool for Mobile VPN with IKEv2 that overlaps with the IP address range of your local network, mobile VPN users are still not considered as trusted users on the local network.

WatchGuard Recommended Best Practices for IKEv2 Policies

We recommend that you limit which network resources Mobile VPN with IKEv2 users can access through the VPN. To do this, you can replace the Allow IKEv2-Users policy.

To replace the Allow IKEv2-Users policy:

  1. Determine the ports and protocols your users require. To determine this, assess your network with baseline tests and view logs.
  2. Add Mobile VPN with IKEv2 groups and users to existing Firebox polices that specify those ports and protocols. For example, you can add Mobile VPN with IKEv2 groups and users to policies for web traffic.
  3. If required, add new policies:
    1. When you select a policy type for the new policy, you can specify a protocol and port.
    2. In the From list of the policy, specify users or groups. You must specify groups or users included in the Mobile VPN with IKEv2 configuration. For example, you can specify the default IKEv2-Users group. Or, specify groups and users that you added to the Mobile VPN with IKEv2 configuration.
    3. In the To list of the policy, remove the Any alias and add other destinations.
  4. Before you disable the Allow IKEv2-Users policy, make sure your policies allow Mobile VPN with IKEv2 users to access all required network resources.
  5. Disable the Allow IKEv2-Users policy.

 

StrongSwan Guidance Statements:

Attacks on IKEv2 PSK Authentication
If user credentials don’t have enough entropy what is usually the case if you let the users freely choose their passwords, then PSK-based IKEv2 authentication is vulnerable to active Man-In-The-Middle (MITM) attacks.

Since a VPN client is usually the IKEv2 initiator, it sends its AUTH payload containing the password hash in the IKE_AUTH request to an unauthenticated and thus untrusted VPN server. If an attacker inserts herself into the IKE connection between client and server she can intercept the AUTH payload and start an offline dictionary or brute force attack on the PSK.

Thus it is of utmost importance that cryptographically strong PSKs are used with PSK-based authentication. Since in most cases this cannot be enforced, we highly recommend to use EAP-based authentication instead where the VPN server is authenticated first based on a X.509 server certificate, so that the VPN client can then send its [potentially weak] password hash later on to a trusted peer.

Certificate-based Authentication

Certificate-based authentication is inherently stronger than PSK-based authentication. A properly built PKI architecture has usually one root CA and one or several intermediate CAs, where the private key of the intermediate CA is used to sign the end entity certificates and the private key of the root CA can be kept on a smartcard stored in a safe or at lease on a system disconnected from the Internet. The private root CA key is never stored on an insecure or online system. Securing the root CA enables the PKI administrator to revoke any certificates and recreate the PKI from scratch, if any intermediate CAs are compromised.

Using the default revocation plugin, Certificate Revocation Lists (CRLs) and the Online Certificate Status Protocol (OCSP) can be used to check if a given certificate has been revoked for some reason. strongSwan supports locally-stored CRLs, as well as fetching fresh CRLs and OCSP information via the fetcher plugins curl, soup or winhttp.

CRL Distribution Points (CDPs) are either retrieved from the certificate or can be added manually using an authorities section in swanctl.conf.

X.509 certificates should be based on RSA public keys with a modulus of at least 2048 bits (preferably 3072 bits for end entity certificates and 4096 bits for CA certificates). Alternatively ECDSA public keys with at least 256 bits (preferably 384 bits) can be used. For certificate signatures at least SHA-256 must be used since both SHA-1 and MD5 are hopelessly broken. All X.509 certificates must conform to the PKIX Internet standard (RFC 5280).

Perfect Forward Secrecy

Perfect Forward Secrecy (PFS) is strongly recommended to make IPsec peers negotiate an independent session key for each IPsec or CHILD SA. This protects the long-term confidentiality of the IPsec traffic if the IKE shared secret is leaked. Note that the session keys of the first CHILD_SA of a new IKEv2 connection are derived from the IKE shared secret. However, subsequent CHILD_SAs will use independent keys if PFS is used.

PFS is enabled by appending a DH group to the ESP or AH cipher proposal. Using PFS introduces no significant performance overhead, unless you rekey more than about 80 CHILD_SAs per second.

VPN Encryption References and Guidance:

Microsoft Azure VPN References:

  • https://learn.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-about-compliance-crypto

AWS VPN References:

  • https://aws.amazon.com/about-aws/whats-new/2020/08/aws-site-to-site-vpn-now-supports-additional-encryption-integrity-key-exchange-algorithms/
  • https://aws.amazon.com/premiumsupport/knowledge-center/vpn-tunnel-phase-2-ipsec/
  • https://aws.amazon.com/vpn/faqs/

Duo Security Proxy Server Install

Windows 10/11 VPN Notes:

For deployment on client end points there are 3 primary components that require deployment.

  1. The WatchGuard Firewall Self-Signed Certificate that you pull down from the WatchGuard VPN IKEv2.  This certificate is bundled in a .TGZ file that can be individually deployed on machines or included in a Group Policy Object in Active Directory. For simplicity, and any updates, deployment in Group Policy is recommended.
  2. Custom Powershell configuration required to create the VPN connection and set firewall standards. By Default Microsoft leverages the lowest, oldest, poorest VPN configuration settings unless specifically defined.
  3. Self Signed certificate from the Microsoft Remote Routing and Access Server. This certificate can be individually deployed on machines or included in a Group Policy Object in Active Directory. For simplicity, and any updates, deployment in Group Policy is recommended.

WatchGuard VPN Config File README.txt:

Configure an IKEv2 VPN Connection to a WatchGuard Firebox
=========================================================
You can use the files in this package to automatically create a new IKEv2 VPN profile on devices with supported versions of Windows, macOS, iOS, or Android. You can also manually configure an IKEv2 VPN profile on your device. If you manually configure a VPN profile, you must install the rootca.pem or rootca.crt certificate included in the same folder as this README file.

For configuration instructions specific to your operating system, see the README.txt files in these folders:
* Windows_8.1_10_11
* MacOS_iOS
* Android

For operating system support information, see the Operating System Compatibility Matrix in the Fireware Release Notes at https://www.watchguard.com/wgrd-help/documentation/release-notes/fireware.

For online versions of IKEv2 VPN client configuration instructions, see these topics in Fireware Help:

Windows 8.1, Windows 10 and Windows 11:
https://www.watchguard.com/help/docs/help-center/en-US/Content/en-US/Fireware/mvpn/ikev2/mvpn_ikev2_windows_client.html

macOS and iOS:
https://www.watchguard.com/help/docs/help-center/en-US/Content/en-US/Fireware/mvpn/ikev2/mvpn_ikev2_mac_client.html

Android (with the strongSwan app):
https://www.watchguard.com/help/docs/help-center/en-US/Content/en-US/Fireware/mvpn/ikev2/mvpn_ikev2_android_client.html

References:

  • https://www.watchguard.com/help/docs/help-center/en-US/Content/en-US/Fireware/mvpn/ikev2/mvpn_ikev2_windows_client.html

Deployment With Active Directory Group Policy