Two factor authentication for Remote Desktop Gateway (RD Gateway) with RADIUS

The LoginTC RD Gateway with RADIUS Connector protects access to your Microsoft Remote Desktop Gateway (RD Gateway) by adding a second factor LoginTC challenge to existing username and password authentication to your Remote Desktop resources.

This guide instructs you on how to configure your RD Gateway to use the LoginTC RADIUS Connector for two-factor authentication. If you would like to protect your RD Web Access then you may be interested in the: LoginTC RD Web Access Connector.

Note: Bypass Codes and OTPs not supported in this setup

As a result of how Microsoft implements using an external RADIUS authenticating server both bypass codes and OTPs are not supported for this setup. For bypass code and OTP support you may be interested in: LoginTC RD Web Access Connector


Architecture

Architecture and Authentication Flow

Architecture and Authentication Flow

Prefer Reading a PDF?

Download a PDF file with configuration instructions:

Prerequisites

Before proceeding, please ensure you have the following:

Working Remote Desktop Gateway Deployment

It is strongly recommended that you have a working and tested Remote Desktop Gateway deployment prior to adding LoginTC authentication.

Create Application

Start by creating a LoginTC Application for your deployment. An Application represents a service (e.g. An application is a service (e.g., VPN or web application) that you want to protect. e) that you want to protect with LoginTC.

Create a LoginTC Application in LoginTC Admin Panel, follow Create Application Steps.

If you have already created a LoginTC Application for your deployment, then you may skip this section and proceed to Installation.

Normalize Usernames

Usernames in RD Gateway are typically in the form “CORP.doe”, while in the LoginTC Admin Panel it is generally more convenient to simply use “john.doe”.

Configure Normalize Usernames from the Domain settings by navigating to Domains > Your Domain > Settings.

Select Yes, Normalize Usernames scroll down and click Update.

Installation

  1. Download the latest LoginTC RADIUS Connector:
  2. Unzip the file
  3. Import the virtual appliance your computer virtualization software
  4. Ensure that the LoginTC RADIUS Connector has a virtual network card
  5. Start the virtual appliance
  6. You will be presented with a console dashboard:
  7. The first thing you must do is set the logintc-user password:
  8. By default the appliance network is configured by DHCP. If you wish to manually configure the network, use the Down arrow key to navigate to Network Configuration and DNS Configuration
  9. For access to the web interface select Web Server and then Start: It may take 5-10 seconds to start the first time:
  10. Once started, access the web interface by navigating to the URL mentioned in the information box:

The LoginTC RADIUS Connector runs CentOS 6.8 with SELinux. A firewall runs with the following open ports:

Port Protocol Purpose
22 TCP SSH access
1812 UDP RADIUS authentication
1813 UDP RADIUS accounting
8888 TCP Web interface
443 TCP Web interface
80 TCP Web interface
80 TCP Package updates (outgoing)
123 UDP NTP, Clock synchronization (outgoing)

Note: Username and Password

logintc-user is used for SSH and web access. The default password is logintcradius. You will be asked to change the default password on first boot of the appliance and will not be able to access the web interface unless it is change.


The logintc-user has sudo privileges.

Configuration

Configuration describes how the appliance will authenticate your RADIUS-speaking device with an optional first factor and LoginTC as a second factor. Each configuration has 4 Sections:

1. LoginTC

This section describes how the appliance itself authenticates against LoginTC Admin Panel with your LoginTC Application. Only users that are part of your organization and added to the domain configured will be able to authenticate.

2. First Factor

This section describes how the appliance will conduct an optional first factor. Either against an existing LDAP, Active Directory or RADIUS server. If no first factor is selected, then only LoginTC will be used for authentication.

3. Passthrough

This section describes whether the appliance will perform a LoginTC challenge for an authenticating user. The default is to challenge all users. However with either a static list or Active Directory / LDAP Group you can control whom gets challenged to facilitate seamless testing and rollout.

4. Client and Encryption

This section describes which RADIUS-speaking device (i.e., your RD Gateway) will be connecting to the appliance and whether to encrypt API Key, password and secret parameters.

Data Encryption

It is strongly recommended to enable encryption of all sensitive fields for both PCI compliance and as a general best practice.

The web interface makes setting up a configuration simple and straightforward. Each section has a Test feature, which validates each input value and reports all potential errors. Section specific validation simplifies troubleshooting and gets your infrastructure protected correctly faster.

First Configuration

Close the console and navigate to your appliance web interface URL. Use username logintc-user and the password you set upon initial launch of the appliance. You will now configure the LoginTC RADIUS Connector.

Create a new configuration file by clicking + Create your first configuration:

Web Server

LoginTC Settings

Configure which LoginTC Application to us:

Web Server

Configuration values:

Property Explanation
Application ID The 40-character Application ID, retrieve Application ID
Application API Key The 64-character Application API Key, retrieve Application API Key
Request Timeout Number of seconds that the RADIUS connector will wait for

The Application ID and Application API Key are found on the LoginTC Admin Panel.

Click Test to validate the values and then click Next:

Web Server

First Authentication Factor

The LoginTC RADIUS Connector will not be performing the first factor authentication. Choose the None option and continue.

Passthrough

Configure which users will be challenged with LoginTC. This allows you to control how LoginTC will be phased in for your users. This flexibility allows for seamless testing and roll out.

For example, with smaller or proof of concept deployments select the Static List option. Users on the static list will be challenged with LoginTC, while those not on the list will only be challenged with the configured First Authentication Factor. That means you will be able to test LoginTC without affecting existing users accessing your VPN.

For larger deployments you can elect to use the Active Directory or LDAP Group option. Only users part of a particular LDAP or Active Directory Group will be challenged with LoginTC. As your users are migrating to LoginTC your LDAP and Active Directory group policy will ensure that they will be challenged with LoginTC. Users not part of the group will only be challenged with the configured First Authentication Factor.

No Passthrough (default)

Select this option if you wish every user to be challenged with LoginTC.

Web Server

Static List

Select this option if you wish to have a static list of users that will be challenged with LoginTC. Good for small number of users.

Web Server

LoginTC challenge users: a new line separated list of usernames. For example:

  jane.doe
  jane.smith
  john.doe
  john.smith
  

Active Directory / LDAP Group

Select this option if you wish to have only users part of a particular Active Directory or LDAP group to be challenged with LoginTC. Good for medium and large number of users.

Web Server

Configuration values:

Property Explanation Examples
LoginTC challenge auth groups Comma separated list of groups for which users will be challenged with LoginTC SSLVPN-Users or two-factor-users
host Host or IP address of the LDAP server ldap.example.com or 192.168.1.42
port (optional) Port if LDAP server uses non-standard (i.e., 389/636) 4000
bind_dn DN of a user with read access to the directory cn=admin,dc=example,dc=com
bind_password The password for the above bind_dn account password
base_dn The top-level DN that you wish to query from dc=example,dc=com
attr_username The attribute containing the user’s username sAMAccountName or uid
attr_name The attribute containing the user’s real name displayName or cn
attr_email The attribute containing the user’s email address mail or email
encryption (optional) Encryption mechanism ssl or startTLS
cacert (optional) CA certificate file (PEM format) /opt/logintc/cacert.pem

Configuration Simplified

If Active Directory / LDAP Option was selected in First Authentication Factor the non-sensitive values will be pre-populated to avoid retyping and potential typos.

Click Test to validate the values and then click Next.

Client and Encryption

Configure RADIUS client (e.g. your RD Gateway):

Web Server

Client configuration values:

Property Explanation Examples
name A unique identifier of your RADIUS client CorporateGateway
ip The IP address of your RADIUS client (e.g. your RD Gateway) 192.168.1.44
secret The secret shared between the LoginTC RADIUS Connector and its client bigsecret

Under Authentication Mode select Direct

Web Server

The LoginTC RADIUS Connector will directly and automatically perform the LoginTC second factor.

Data Encryption

It is strongly recommended to enable encryption of all sensitive fields for both PCI compliance and as a general best practice.

Click Test to validate the values and then click Save.

Web Server

Testing

When you are ready to test your configuration, create a LoginTC user (if you haven’t already done so). The username should match your existing user. Provision a token by following the steps:

  1. In a new tab / window log into the LoginTC Admin Panel
  2. Click Domains
  3. Click on your domain
  4. Click on Members Web Server
  5. Click Issue Token button beside your user: Web Server
  6. A 10-character alphanumeric activation code will appear beside the user: Web Server
  7. Open the LoginTC mobile app.
  8. Enter the 10-character alphanumeric activation code:
  9. Load the token to complete the process

When you have loaded a token for your new user and domain, navigate to your appliance web interface URL:

Web Server

Click Test Configuration:

Web Server

Enter a valid username and password; if there is no password leave it blank. A simulated authentication request will be sent to the mobile or desktop device with the user token loaded. Approve the request to continue:

Web Server

Congratulations! Your appliance can successfully broker first and second factor authentication. The only remaining step is to configure your RADIUS device!

If there was an error during testing, the following will appear:

Web Server

In this case, click See logs and then click the /var/log/logintc/authenticate.log tab to view the log file and troubleshoot:

Web Server

RD Gateway Configuration

Once you have configured the LoginTC RADIUS Connector you will be able to configure your RD Gateway to use the LoginTC RADIUS Connector for second-factor authentication.

  1. Open the RD Gateway Manager from your Start Menu
  2. Right click on your RD server in the left sidebar and click on Properties
  3. Select the RD CAP Store tab
  4. Select Central server running NPS radio button
  5. Enter the IP address of your LoginTC RADIUS Connector and press Add button
  6. Enter the shared secret that you configured on the LoginTC RADIUS Connector and press OK
  7. Press the Apply button
  8. Press the OK button
  9. Open the Network Policy Server manager
  10. Expand RADIUS Clients and Servers in the left sidebar
  11. Select Remote RADIUS Server
  12. Right click on TS GATEWAY SERVER GROUP and click on Properties
  13. Select your RADIUS server and press Edit…
  14. Select the Load Balancing tab
  15. Set the timeout settings to 120 seconds
  16. Press the Apply button
  17. Press the OK button to close the dialog
  18. Expand Policies in the left sidebar
  19. Click on Connection Request Policies
  20. Right click on TS GATEWAY AUTHORIZATION POLICY and click on Properties
  21. Click on Settings tab
  22. Select Authentication and ensure that it’s set to Forward requests to the remote RADIUS server
  23. Click on Policies –> Network Policies
  24. Double click on your RDG CAP policy
  25. Click on the Conditions tab
  26. Select the Called Station ID attribute and press the Edit… button
  27. Set the value to UserAuthType:(PW|CA)
  28. Press the OK button
  29. Press the Apply button

You may now test your RD Gateway.

User Management

Create users in LoginTC corresponding to your AD/LDAP users and provision them tokens. There are several options for managing your users within LoginTC:

For more details about user management and provisioning, visit the User Management guide.

Troubleshooting

Not Authenticating

If you are unable to authenticate, navigate to your LoginTC RADIUS Connector appliance web interface URL and click Status:

Web Server

Ensure that all the status checks pass. For additional troubleshooting, click Logs:

Web Server

You may also find valuable information in the Microsoft Event Viewer under Custom Views → ServerRoles → Network Policy and Access Services

Email Support

For any additional help please email support@cyphercor.com. Expect a speedy reply.

Upgrading

Follow these instructions to upgrade your LoginTC RADIUS virtual appliance to the latest version (2.7.0):

  1. SSH into the virtual appliance or open the console (use same username / password as web GUI)
  2. cd /tmp
  3. curl -O https://www.logintc.com/downloads/logintc-radius-connector-2.7.0-upgrade.sh
  4. sudo sh logintc-radius-connector-2.7.0-upgrade.sh

The upgrade script will restart your appliance after upgrading.

Upgrade Script Download Verification

Execute: sha1sum /tmp/logintc-radius-connector-2.7.0-upgrade.sh

Output SHA‑1 should match: 656118eb907d82acf440bbd63e81957805912a51