The LoginTC RADIUS Connector is a complete two-factor authentication virtual machine packaged to run within your corporate network. The LoginTC RADIUS Connector enables OpenVPN Community Software to use LoginTC for the most secure two-factor authentication.
Architecture
Prefer Reading a PDF?
Download a PDF file with configuration instructions:
Before proceeding, please ensure you have the following:
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.
Installationhttps://172.20.221.105:8443
):
NOTE
These instructions assume a new environment. For a complete 2.X / 3.X to 4.X upgrade guide: LoginTC RADIUS Connector Upgrade Guide
Port | Protocol | Purpose |
---|---|---|
1812 | UDP | RADIUS authentication |
443 | TCP | API traffic |
8443 | TCP | Web interface |
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.
Endpoints describe how the appliance will authenticate your RADIUS-speaking device with an optional first factor and LoginTC as a second factor. Each endpoint has 4 Sections:
1. LoginTC SettingsThis 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. User DirectoryThis 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. Challenge Strategy / PassthroughThis 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 SettingsThis section describes which RADIUS-speaking device will be connecting to the appliance and whether to encrypt API Key, password and secret parameters.
The web interface makes setting up an endpoint 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.
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 endpoint file by clicking + Create your first endpoint:
A list of available Applications will be displayed from your LoginTC organization. Select which LoginTC Application to use:
Configure the application:
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.
Make a note of what you set the Request Timeout to as you will need to use a larger timeout value in your RADIUS client. We recommend setting the Request Timeout value to 60 seconds in the LoginTC RADIUS Connector and setting the RADIUS authentication server timeout to 70 seconds in RADIUS Client. For more information see: Recommended settings for an optimal user experience for VPN access
Click Test to validate the values and then click Next:
Configure the user directory to be used for first authentication factor in conjunction with LoginTC. You may use Active Directory / LDAP or an existing RADIUS server. You may also opt not to use a first factor, in which case LoginTC will be the only authentication factor.
Active Directory / Generic LDAP Option
Select Active Directory if you have an AD Server. For all other LDAP-speaking directory services, such as OpenDJ or OpenLDAP, select Generic LDAP:
Configuration values:
Property | Explanation | Examples |
---|---|---|
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 |
LDAP Group (optional) |
The name of the LDAP group to be sent back to the authenticating server. | SSLVPN-Users |
encryption (optional) |
Encryption mechanism | ssl or startTLS |
cacert (optional) |
CA certificate file (PEM format) | /opt/logintc/cacert.pem |
Click Test to validate the values and then click Next.
Existing RADIUS Server Option
If you want to use your existing RADIUS server, select RADIUS:
Configuration values:
Property | Explanation | Examples |
---|---|---|
IP Address or Host Name |
Host or IP address of the RADIUS server | radius.example.com or 192.168.1.43 |
Authentication Port (optional) |
Port if the RADIUS server uses non-standard (i.e., 1812 ) |
1812 |
Shared Secret |
The secret shared between the RADIUS server and the LoginTC RADIUS Connector | testing123 |
Click Test to validate the values and then click Next.
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.
Challenge All Users
Select this option if you wish every user to be challenged with LoginTC.
Challenge Users Based on Static Username 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.
LoginTC challenge users: a new line separated list of usernames. For example:
jane.doe jane.smith john.doe john.smith
Challenge Users Based on Group Membership
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.
Configuration values:
Property | Explanation | Examples |
---|---|---|
Challenge Groups (Optional) |
Comma separated list of groups for which users will be challenged with LoginTC | SSLVPN-Users or two-factor-users |
Challenge Groups (Optional) |
Comma separated list of groups for which users will always bypass LoginTC | NOMFA-Users |
Click Test to validate the values and then click Next.
Configure RADIUS client (e.g. your RADIUS-speaking VPN):
Client configuration values:
Property | Explanation | Examples |
---|---|---|
name |
A unique identifier of your RADIUS client | CorporateVPN |
IP Addresss |
The IP address of your RADIUS client (e.g. your RADIUS-speaking VPN). Add additional IP Addresses by clicking plus. | 192.168.1.44 |
Shared Secret |
The secret shared between the LoginTC RADIUS Connector and its client | bigsecret |
Under Authentication Mode select Challenge
The user will be prompted on how they wish to proceed with second-factor authentication (e.g. LoginTC Push, OTP, bypass code). Your RADIUS client must support RADIUS challenges to use this. Challenging the user will often result in a better user experience. See User Experience for more information.
Click Test to validate the values and then click Save.
TestingWhen 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:
When you have loaded a token for your new user and domain, navigate to your appliance web interface URL:
Click Test Configuration:
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:
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:
In this case, click See logs (or click the Logs section):
OpenVPN 2FA ConfigurationOnce you are satisfied with your setup, configure your OpenVPN server to use the LoginTC RADIUS Connector.
For your reference, the appliance web interface Settings page displays the appliance IP address and RADIUS ports:
The instructions can be used for existing setups as well. For in depth instructions on setting up OpenVPN please see: OpenVPN Community Open Source Software Project.
yum -y install libgcrypt libgcrypt-devel gcc-c++ make
wget http://www.nongnu.org/radiusplugin/radiusplugin_v2.1a_beta1.tar.gz
tar xvfz radiusplugin_v2.1a_beta1.tar.gz
cd radiusplugin_v2.1a_beta1/
make
cp radiusplugin.so /etc/openvpn
cp radiusplugin.cnf /etc/openvpn
vi /etc/openvpn/server.conf
:
local 10.0.10.100
port 1194
proto udp
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/office.crt
key /etc/openvpn/easy-rsa/2.0/keys/office.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf
# plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login
client-cert-not-required
username-as-common-name
push "redirect-gateway def1"
server 10.0.10.0 255.255.255.0
push "dhcp-option WINS 10.0.10.1"
push "dhcp-option DNS 10.0.10.1"
ifconfig-pool-persist ipp.txt
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log
verb 5
management localhost 7505
reneg-sec 0
Property | Explanation | Example |
---|---|---|
local |
Address of OpenVPN server | 10.0.10.100 |
ca |
Location of root certificate | /etc/openvpn/easy-rsa/2.0/keys/ca.crt |
cert |
Location of OpenVPN server certificate | /etc/openvpn/easy-rsa/2.0/keys/office.crt |
key |
Location of OpenVPN server private key | /etc/openvpn/easy-rsa/2.0/keys/office.key |
dh |
Diffie hellman parameters | /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem |
server |
VPN subnet for OpenVPN to draw client addresses from. | server 10.0.10.0 255.255.255.0 |
push |
Push routes to the client to allow it to reach other private subnets behind the server. | “dhcp-option WINS 10.0.10.1”, “dhcp-option DNS 10.0.10.1” |
For a more in-depth look at OpenVPN server configuration please consult: Sample OpenVPN 2.0 configuration files.
vi /etc/openvpn/radiusplugin.cnf
:
NAS-Identifier=openvpn-server
Service-Type=5
Framed-Protocol=1
NAS-Port-Type=5
NAS-IP-Address=10.0.10.100
OpenVPNConfig=/etc/openvpn/server.conf
subnet=255.255.255.0
overwriteccfiles=true
nonfatalaccounting=false
server
{
# The UDP port for radius accounting.
acctport=1813
# The UDP port for radius authentication.
authport=1812
# The name or ip address of the radius server.
name=logintc-radius
# How many times should the plugin send the if there is no response?
retry=1
# How long should the plugin wait for a response?
wait=90
# The shared secret.
sharedsecret=bigsecret
}
Property | Explanation | Example |
---|---|---|
NAS-Identifier |
The NAS identifier which is sent to the RADIUS server | openvpn-server |
Service-Type |
The service type which is sent to the RADIUS server | 5 |
Framed-Protocol |
The framed protocol which is sent to the RADIUS server | 1 |
NAS-Port-Type |
The NAS port type which is sent to the RADIUS server | 5 |
NAS-IP-Address |
The NAS IP address which is sent to the RADIUS server | 10.0.10.100 |
OpenVPNConfig |
Path to the OpenVPN configfile | /etc/openvpn/server.conf |
subnet |
Support for topology option in OpenVPN 2.1 | 255.255.255.0 |
overwriteccfiles |
Allows the plugin to overwrite the client config in client config file directory | true |
nonfatalaccounting |
Allows the plugin to use auth control files if OpenVPN (>= 2.1 rc8) provides them | false |
server: acctport |
The UDP port for radius accounting | 1813 |
server: authport |
The UDP port for radius authentication | 1812 |
server: name |
The name or ip address of the LoginTC RADIUS Connector | logintc-radius |
server: retry |
How many times should the plugin send the if there is no response? | 1 |
server: wait |
How long should the plugin wait for a response? | 90 |
server: sharedsecret |
The shared secret | bigsecret |
service openvpn restart
To test, navigate to your OpenVPN clientless VPN portal or use OpenVPN Connect and attempt access.
User ManagementThere are several options for managing your users within LoginTC:
Logs can be found on the Logs tab:
Troubleshootingeth0
/etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
eth0
is not enabled, then check driver messages for more information:
dmesg | grep eth
eth1
. If this is the case, rename /etc/sysconfig/network-scripts/ifcfg-eth0
to ifcfg-eth1
.
mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
Open the file and update the DEVICE="eth0"
line to DEVICE="eth1"
If you are unable to authenticate, navigate to your appliance web interface URL and click Status:
Ensure that all the status checks pass. For additional troubleshooting, click Logs:
Email Support
For any additional help please email support@cyphercor.com. Expect a speedy reply.
NOTE: Upgrade time
Upgrade can take 10-15 minutes, please be patient.
Important: LoginTC RADIUS Connector 3.X End-of-life
The LoginTC RADIUS Connector 3.X virtual appliance is built with CentOS 7.9. CentOS 7.X is End of Lifetime (EOL) June 30th, 2024. Although the appliance will still function it will no longer receive updates and nor will it be officially supported.
New LoginTC RADIUS Connector 4.X
A new LoginTC RADIUS Connector 4.X virtual appliance has been created. The Operating System will be supported for many years. Inline upgrade is not supported. As a result upgrade is deploying a new appliance. The appliance has been significantly revamped and although the underlying functionality is identical, it has many new features to take advantage of.
Complete 3.X to 4.X upgrade guide: LoginTC RADIUS Connector Upgrade Guide
Additional Resources Related ConnectorsYou may also be interested in our: