Setting up a centralized authentication system is essential for managing network users and maintaining security. FreeRADIUS is a powerful and reliable open-source RADIUS server that allows organizations to authenticate and authorize users efficiently. To make managing FreeRADIUS easier, system administrators can pair it with daloRADIUS, a web-based front-end that simplifies user management, monitoring, and reporting tasks. This guide explains how to install FreeRADIUS and daloRADIUS on an Ubuntu 20.04 server.
Step 1: System Preparation
Before installing any packages, update the system’s package list to ensure access to the latest software versions:
sudo apt update && sudo apt upgrade -y
Install essential dependencies:
sudo apt install apache2 mariadb-server php php-mysql php-pear php-gd php-db php-mbstring php-curl php-xml git unzip build-essential -y
Enable and start the Apache and MariaDB services:
sudo systemctl enable apache2 mariadb
sudo systemctl start apache2 mariadb
Step 2: Install and Configure FreeRADIUS
Install FreeRADIUS:
sudo apt install freeradius freeradius-mysql -y
Enable and start the FreeRADIUS service:
sudo systemctl enable freeradius
sudo systemctl start freeradius
Next, configure FreeRADIUS to use the MariaDB database for storing user credentials and authentication logs.
Set Up the FreeRADIUS Database
Log in to the MariaDB shell:
sudo mysql -u root -p
Then create a database and user for FreeRADIUS:
CREATE DATABASE radius;
GRANT ALL ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'radpass';
FLUSH PRIVILEGES;
EXIT;
Import the FreeRADIUS schema into the new database:
sudo mysql -u root -p radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
Next, edit the SQL module configuration file:
sudo nano /etc/freeradius/3.0/mods-enabled/sql
Update the following lines:
- dialect = “mysql”
- driver = “rlm_sql_mysql”
- server = “localhost”
- login = “radius”
- password = “radpass”
- radius_db = “radius”
Restart FreeRADIUS to apply changes:
sudo systemctl restart freeradius

Step 3: Install daloRADIUS
Download the latest version of daloRADIUS from GitHub:
cd /var/www/html
sudo git clone https://github.com/lirantal/daloradius.git
sudo mv daloradius /var/www/html/daloradius
Import the daloRADIUS SQL schema:
sudo mysql -u root -p radius < /var/www/html/daloradius/contrib/db/mysql-daloradius.sql
Set the correct permissions:
sudo chown -R www-data:www-data /var/www/html/daloradius
Create a new Apache configuration to host daloRADIUS:
sudo nano /etc/apache2/sites-available/daloradius.conf
Insert the following:
<VirtualHost *:80>
DocumentRoot /var/www/html/daloradius
<Directory /var/www/html/daloradius>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Enable the configuration and reload Apache:
sudo a2ensite daloradius.conf
sudo systemctl reload apache2

Accessing daloRADIUS
Navigate to the IP address or domain name of your server using a web browser:
http://your_server_ip/daloradius
The default login is:
- Username: administrator
- Password: radius
Once logged in, you will have access to an intuitive interface for managing users, groups, NAS devices, and more.
FAQ
-
Q: What is FreeRADIUS used for?
A: FreeRADIUS is used to authenticate and authorize users in a network using protocols like PPP, VPN, and 802.1x. -
Q: Can daloRADIUS manage multiple NAS devices?
A: Yes, daloRADIUS supports managing multiple Network Access Servers (NAS) through its intuitive web interface. -
Q: Is it secure to use default login credentials?
A: No. It is highly recommended to change the default login for security reasons immediately after installation. -
Q: What databases does FreeRADIUS support?
A: FreeRADIUS supports several databases, including MySQL, PostgreSQL, and SQLite. This guide uses MariaDB, a MySQL-compatible database. -
Q: Can FreeRADIUS be used with wireless networks?
A: Yes, FreeRADIUS is commonly used to authenticate users connecting to WPA2-Enterprise wireless networks.