Linux PAM Integration with AuthPoint
Deployment Overview
This document describes how to set up multi-factor authentication (MFA) for Linux PAM with AuthPoint. Linux PAM must already be configured and deployed before you set up MFA with AuthPoint.
Your Linux can be configured to support MFA in several modes. For this integration, we set up RADIUS authentication with AuthPoint. RADIUS authentication requires that you install the AuthPoint Gateway on your network, which functions as a RADIUS server.
Contents
Integration Summary
The hardware and software used in this guide include:
- AuthPoint Gateway v7.3.0 or higher
- Linux distributions:
- Ubuntu
- Red Hat Enterprise Linux (RHEL)
- CentOS
- PAM with the Radius Authentication Module
- SSH client
Linux PAM Authentication Data Flow with AuthPoint
AuthPoint communicates with various cloud-based services and service providers with the Radius protocol. This diagram shows the data flow of an MFA transaction for Linux.
Before You Begin
Before you begin these procedures, make sure that:
- You have installed and configured the AuthPoint Gateway (see About Gateways)
- You have installed the PAM with the RADIUS Authentication Module in your Linux server.
- The secure shell daemon (SSHD) is running and connectivity is being tested from a suitable SSH client.
- A token is assigned to a user in AuthPoint
The steps to configure multi-factor authentication for Linux PAM with AuthPoint vary depending on your Linux distribution version.
The Ubuntu and the PAM RADIUS versions tested in this section include:
- Ubuntu 12.04 LTS with libpam-radius-auth_1.3.17-0ubuntu3.1
- Ubuntu 16.04.6 LTS with libpam-radius-auth_1.3.17-0ubuntu4.1
- Ubuntu 16.04.7 LTS with libpam-radius-auth_1.3.17-0ubuntu4.1
- Ubuntu 20.04.5 LTS with libpam-radius-auth_1.4.0-3
- Ubuntu 20.04.6 LTS with libpam-radius-auth_1.4.0-3
- Ubuntu 22.04.2 LTS with libpam-radius-auth_2.0.0-1
- Ubuntu 22.04.3 LTS with libpam-radius-auth_2.0.0-1
- Ubuntu 24.04.1 LTS with libpam-radius-auth_2.0.1-1
Before you can configure your Ubuntu, make sure the PAM with the Radius Authentication Module has been installed on your Linux server. If you have not installed the PAM with Radius Authentication Module, type $ sudo apt-get install libpam-radius-auth and press Enter to install it.
- Log in to your Linux server as a root user.
- Edit the /etc/ssh/sshd_config file to enable PAM authentication in the ssh service. Make sure KbdInteractiveAuthentication yes is enabled and does not include a #.
- Edit the /etc/ssh/sshd_config file to make sure that UsePAM yes is enabled and does not include a #.
- Save and quit.
- Edit the /etc/pam.d/sshd file and add the line auth sufficient pam_radius_auth.so at the beginning of the file to enable PAM with Radius in the PAM module.
- Edit the /etc/pam.d/sshd file and comment out the @include common-auth line to disable the default password authentication.
- Save and quit.
- Edit the /etc/pam_radius_auth.conf file and comment out the default lines.
- Edit the /etc/pam_radius_auth.conf file and add a line that specifies the IP address of the RADIUS server (AuthPoint Gateway), the shared secret of your RADIUS server, and the timeout of the RADIUS request.
- Save and quit.
- Type $ sudo service ssh restart and press Enter to restart the SSH service.
- Type $ sudo adduser <user name> and press Enter to create a user on the Linux server. You must create a user with the same user name in AuthPoint.
Due to the differences in OpenSSH versions, you may see ChallengeResponseAuthentication instead, in this case, make sure ChallengeResponseAuthentication yes is enabled and does not include a #.
Normally, you do not need to specify the source_ip and vrf fields, and in some lower versions of the PAM Radius Authentication Module, you might not see the source_ip and vrf fields.
If you want to specify the vrf field and the source_ip field, you should create a VRF device with an associated route table, and assign a network interface to the VRF. For more information about how to create VRF, refer to Virtual Routing and Forwarding (VRF).
After you create a VRF, you can use the command $ ip -br link show type vrf to list the VRF, and the command $ ip -br link show vrf vrf name to display the device assigned to the VRF.
Refer to the screenshot below for an example of a line that specifies the vrf field and the source_ip field.
The RHEL / CentOS and the PAM RADIUS versions tested in this section include:
- CentOS 6.9 with pam_radius-1.4.0-4.el6
- CentOS 7 with pam_radius-1.4.0-4.el7
- Red Hat Enterprise Linux 5.8 with pam_radius-1.3.17-2.el5
- Red Hat Enterprise Linux 6 with pam_radius-1.4.0-4.el6
- Red Hat Enterprise Linux 7.9 with pam_radius-1.4.0-4.el7
- Red Hat Enterprise Linux 9.4 with pam_radius-2.0.0-3.el9
Before you can configure your RHEL or CentOS, make sure the PAM with Radius Authentication Module has been installed on your Linux server.
- Log in to your Linux server as a root user.
- Edit the /etc/ssh/sshd_config file to enable PAM authentication in the ssh service. Make sure KbdInteractiveAuthentication yes is enabled and does not include a #.
- Edit the /etc/ssh/sshd_config file to make sure that UsePAM yes is enabled and does not include a #.
- Save and quit.
- Edit the /etc/pam.d/sshd file and add the line auth sufficient pam_radius_auth.so at the beginning of the file to enable PAM with Radius in the PAM module.
- Edit the /etc/pam.d/sshd file and comment out the auth substack password-auth line to disable the default password authentication.
- Save and quit.
- Edit the /etc/pam_radius_auth.conf file and comment out the default lines.
- Edit the /etc/pam_radius_auth.conf file and add a line that specifies the IP address of the RADIUS server (AuthPoint Gateway), the shared secret of your RADIUS server, and the timeout of the RADIUS request.
- Save and quit.
- Type $ sudo systemctl restart sshd and press Enter to restart the SSH service.
- Type $ sudo adduser user name and press Enter to create a user on the Linux server. You must create a user with the same user name in AuthPoint.
Due to the differences in OpenSSH versions, you may see ChallengeResponseAuthentication instead, in this case, make sure ChallengeResponseAuthentication yes is enabled and does not include a #.
Due to the differences in OpenSSH versions, you might see auth include system-auth or auth include password-auth instead. Make sure you comment them out.
Due to the differences in the PAM Radius Authentication Module versions, this profile is also named pam_radius.conf.
Normally, you do not need to specify the source_ip and vrf fields, and in some lower versions of the PAM Radius Authentication Module, you may not see the source_ip and vrf fields.
If you want to specify the vrf field and the source_ip field, you should create a VRF device with an associated route table, and assign a network interface to the VRF. For more information about how to create VRF, refer to Virtual Routing and Forwarding (VRF).
After you create a VRF, you can use the command $ ip -br link show type vrf to list the VRF, and the command $ ip -br link show vrf vrf name to display the device assigned to the VRF.
Refer to the screenshot below for an example of a line that specifies the vrf field and the source_ip field.
Configure AuthPoint
Before AuthPoint can receive authentication requests from Linux PAM, you must:
- Specify Linux PAM as a RADIUS client resource in AuthPoint.
- Add an authentication policy for the Linux PAM RADIUS client resource or add the Linux PAM RADIUS client resource to an existing authentication policy.
- Bind the Linux PAM RADIUS client resource to the AuthPoint Gateway.
Add a Radius Resource in AuthPoint
From the AuthPoint management UI:
- From the navigation menu, select Resources.
Click Add Resource.
The Add Resource page opens.
- From the Type drop-down list, select RADIUS Client.
Additional fields appear.
- In the Name text box, type a descriptive name for the resource.
- In the RADIUS client trusted IP or FQDN text box, type the IP address that your RADIUS client uses to send RADIUS packets to the AuthPoint Gateway. This must be a private IP address. If you specified the vrf field in the previous section, this address is the IP address of the network interface assigned to the VRF device.
- From the Value sent for RADIUS attribute 11 drop-down list, specify what is sent for the attribute 11 (Filter-ID) value in RADIUS responses. You can choose to send the user's AuthPoint group or the user's Active Directory groups.
- In the Shared Secret text box, type the shared secret key. This is the password that the RADIUS server (AuthPoint Gateway) and the RADIUS client (Linux Server) will use to communicate. The shared secret key must be the same one you configured in the /etc/pam_radius_auth.conf file.
- Click Save.
Add a Group in AuthPoint
You must have at least one user group in AuthPoint to configure MFA. If you already have a group, you do not have to add another group.
To add a WatchGuard Cloud-hosted group to the WatchGuard Cloud Directory:
- Go to Configure > Directories and Domain Services.
- Click the WatchGuard Cloud Directory domain name. If you have not yet added the WatchGuard Cloud Directory, click Add Authentication Domain and select the WatchGuard Cloud Directory.
The New Group page appears.
- In the Groups tab, click Add Group.
- In the Group Name text box, type a descriptive name for the group.
- (Optional) In the Description text box, type a description of the group.
- Click Save.
Your group is added to the WatchGuard Cloud Directory and to AuthPoint.
Add an Authentication Policy to AuthPoint
Authentication policies specify which resources users can authenticate to and which authentication methods they can use (Push, QR code, and OTP).
You must have at least one authentication policy in AuthPoint that includes the Linux PAM RADIUS client resource. If you already have authentication policies, you do not have to create a new authentication policy. You can add this resource to your existing authentication policies.
Users who not have an authentication policy for a specific resource cannot authenticate to log in to that resource.
For the Linux PAM RADIUS client resource, you must select the password authentication option in your authentication policies.
To configure an authentication policy:
- From the navigation menu, select Authentication Policies.
The Authentication Policies page opens.
- Click Add Policy.
The Add Policy page opens.
- In the Name text box, type a name for this policy.
- From the Select the Authentication Options drop-down list, select Authentication Options, then select which authentication options users can choose from when they authenticate.
If you enable the push and OTP authentication methods for a policy, RADIUS client resources associated with that policy use push notifications to authenticate users.
QR code authentication is not supported for RADIUS client resources.
- From the Groups drop-down list, select which groups this policy applies to. You can select more than one group. To configure this policy to apply to all groups, select All Groups.
- From the Resources drop-down list, select the resource that you created in the previous section. If you want this policy to apply to additional resources, select each resource this policy applies to. To configure this policy to apply to all resources, select All Resources.
-
(Optional) If you have configured policy objects such as a Network Location, select which policy objects apply to this policy. When you add a policy object to a policy, the policy only applies to user authentications that match the conditions of the policy objects. For example, if you add a Network Location to a policy, the policy only applies to user authentications that come from that Network Location. Users who only have a policy that includes a Network Location do not get access to the resource when they authenticate outside of that Network Location (because they do not have a policy that applies, not because authentication is denied).
For RADIUS authentication, policies that have a Network Location do not apply because AuthPoint does not have the IP address of the user.
If you configure policy objects, we recommend that you create a second policy for the same groups and resources without the policy objects. The policy with the policy objects should have a higher priority.
- Click Save.
Your policy is created and added to the end of the policy list.When you create a new policy, we recommend that you review the order of your policies. AuthPoint always adds new policies to the end of the policy list.
Bind the RADIUS Resource to a Gateway
To use RADIUS authentication with AuthPoint, you must have the AuthPoint Gateway installed on your corporate network and you must assign your RADIUS resources to the Gateway in the AuthPoint web UI. The Gateway functions as a RADIUS server.
If you have not configured and installed the AuthPoint Gateway, see About Gateways.
- From the navigation menu, select Gateway.
- Select the Name of the Gateway.
-
From the RADIUS section, in the Port text box, type the port number used to communicate with the Gateway. The default ports are 1812 and 1645.
If you already have a RADIUS server installed that uses port 1812 or 1645, you must use a different port for the AuthPoint Gateway.
- From the Select a RADIUS Resource drop-down list, select your RADIUS client resource.
- Click Save.
Add Users to AuthPoint
Before you assign users to a group, you must add the users to AuthPoint. There are two ways to add AuthPoint user accounts:
- Sync users from an external user database
- Add WatchGuard Cloud-hosted AuthPoint users
Each user must be a member of a group. You must add at least one group before you can add users to AuthPoint.
To import users from Active Directory, Microsoft Entra ID, or an LDAP database, you must add an external identity in the AuthPoint management UI. External identities connect to user databases to get user account information and validate passwords.
- To sync users from Active Directory or an LDAP database, you must add an LDAP external identity
- To sync users from Microsoft Entra ID, you must add a Microsoft Entra ID external identity
When you sync users from an external user database, you can sync any number of users and they are all added to AuthPoint at one time. Users synced from an external user database use the password defined for their user account as their AuthPoint password.
To learn how to sync users, go to Sync Users from Active Directory or LDAP and Sync Users from Azure Active Directory.
You create WatchGuard Cloud-hosted users and groups from the WatchGuard Cloud Directory in WatchGuard Cloud. Directories and Domain Services is where you add shared authentication domains for WatchGuard Cloud devices and services, such as AuthPoint.
Users that you add to the WatchGuard Cloud Directory are automatically added to AuthPoint as well.
You add local AuthPoint users form Directories and Domain Services. You manage the users in AuthPoint on the Users page.
When you add WatchGuard Cloud-hosted AuthPoint users, you choose whether the user is an MFA user or a non-MFA user.
- MFA users are user accounts that will use AuthPoint multi-factor authentication to authenticate. This is not related to the AuthPoint Multi-Factor Authentication license type.
- Non-MFA users are users that will only ever authenticate with a password, such as a service account user. Non-MFA users do not consume an AuthPoint user license and cannot authenticate to resources that require MFA. They can only authenticate to protected resources if the non-MFA user account has a password only authentication policy for that resource.
After you add a user, you can edit the user account if you need to change their account type. When you change a user account from MFA to non-MFA, AuthPoint deletes the tokens and password vault (if applicable) that belong to the user. This action cannot be undone.
Unlike users synced from an external user database, WatchGuard Cloud-hosted AuthPoint users define and manage their own AuthPoint password. When you add a WatchGuard Cloud-hosted user account, the user receives an email that prompts them to set their password.
To learn how to add WatchGuard Cloud-hosted AuthPoint user accounts to the WatchGuard Cloud Directory, go to Add Local Users to an Authentication Domain.
Test the Integration
To test the integration of AuthPoint and the configuration of your Linux, you can authenticate with a mobile token on your mobile device. For RADIUS resources, you can choose a one-time password (OTP) or push. If you enable both the Push and OTP authentication methods for a policy, the RADIUS client resources will use push notifications to authenticate users. To allow users to authenticate with OTP, you must select only the password and OTP authentication methods.
In this example, we show the push authentication method.
- In an SSH client, connect to the Linux server.
- Type your AuthPoint password.
- Approve the authentication request that is sent to your mobile device.
You are logged in to your Linux server.