Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Add RADIUS support to E220 router

The RADIUS server (Remote Authentication Dial-In User Service) is a service that allows to authenticate users in an centralised manner. In our case, we will give to each user an username and password so they can get access to the WiFi network.

Install Freeradius server

On the virtual machine, install freeradius:
Background Color
colorblack

sudo apt-get install freeradius


Check the default configuration:
Background Color
colorblack

sudo freeradius -CX


Last line should be Configuration appears to be OK. Add your router as a new client that can request a user to be authenticated:
Background Color
colorblack

sudo vim /etc/freeradius/clients.conf


Search for the line client localhost { and add the following content just above it (then save and quit):
Background Color
colorblack

client openwrt {

    ipaddr = 192.168.1.1

    secret = hackathon

}


Edit the users files:
Background Color
colorblack

sudo vim /etc/freeradius/users


and a new user at the end of the file:
Background Color
colorblack

maestro Cleartext-Password := "wireless"


Now it is time to test the server setup:
Background Color
colorblack

// Stop the freeradius service

sudo service freeradius stop

// Open a terminal and start the server in debug mode

sudo freeradius -X

// Open a new terminal and try to authenticate your user

radtest maestro wireless 127.0.0.1 0 testing123

// If you receive this line, it means that your authentication has been accepted

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=11, length=20


Close both terminals and open a new one. Execute following command so the freeradius service is started:
Background Color
colorblack

sudo service freeradius start


Add support for 802.1x in the router

Once the RADIUS server is working and allows us to authenticate our users, it is time to configure our router to forward the authentication requests to the server when a new user tries to connect to the WiFi network. Get SSH access to your router and execute following command:
Background Color
colorblack

opkg remove wpad-mini


Go to the GUI and from System > Software > Configuration configure the default OpenWrt repositories. Click Submit at the bottom of the page:
Go back to the SSH console and execute the following commands:


Background Color
colorblack

opkg updateopkg install wpad


Create the WiFi network

Go to Network > Wifi and click on Add to create a new wireless SSID as Access Point:
  • Mode has to be Access Point
  • ESSID can be anything that identifies your AP
  • Tick lan on Network
  • All other fields may be left with the default values


Click on the Wireless Security tab and set following settings:
  • Encryption has to be WPA2-EAP
  • Cipher can be auto
  • Radius-Authentication-Server is the IP of the virtual machine (192.168.1.125 in this case)
  • Radius-Authentication-Port is 1812 as we are using the default one
  • Radius-Authentication-Secret is hackathon as configured when adding the client openwrt to the configuration file
  • All other fields can be empty
  • Click Save & Apply at the bottom of the page

Test the RADIUS authentication

The configuration is all done and it is time to test that it works. From your smartphone, search for the wireless network Hackathon and connect to it:
  • EAP method is PEAP
  • CA certificate set it to Do not validate
  • Identity is maestro (the username added to the users file)
  • Anonymous identity is left blank
  •  
  • Password is wireles
After pressing on Connect, the smartphone will send the authentication request to the router which will forward it to the RADIUS server. If the username is authorised to have wireless connectivity, you will see that in the Status > Overview tab of your router there is a new DHCP lease:

...