Introduction

The purpose of this page is to collect all information needed to set up a Radius server that can use the pam_yubico module to provide user authentication via Radius.

Details

We currently use FreeRadius. The paths below may be specific to Debian’s packages, please update this if you have paths for other systems.

Build pam_yubico and install FreeRadius

Build instructions for pam_yubico are found in the pam_yubico ReadMe.

Install FreeRadius from your OS vendor packages:

Debian/Ubuntu:

sudo apt-get install freeradius

Add a Radius client stanza to /etc/freeradius/clients.conf

For testing, add something like:

client 0.0.0.0/0 {
        secret          = pencil
        shortname       = radius.yubico.com
}

Configure FreeRadius so that it uses PAM

In /etc/freeradius/radiusd.conf, check that pam is uncommented in the authenticate section.

Configure PAM for the Radius server

The PAM service is radiusd, and the configuration file is stored in /etc/pam.d/radiusd. Add something like:

auth sufficient pam_yubico.so id=16 debug

Start FreeRadius in debug mode and test it

As root, run:

/usr/sbin/freeradiusd -X

Then invoke a test client as follows:

radtest yubico vlrlcingbbkrctguicnijbegfjhrdhccefdthcuifkgr 127.0.0.1 0 pencil

If you get errors about non-existing user, you may need to create a Unix user yubico. Whether this should be needed or not depends on PAM configuration.