====== Installing FreeRADIUS on Ubuntu 22.04 ======
===== Introduction =====
* Install FreeRADIUS and MySQL module.
sudo apt-get -y install libdatetime-perl libdbd-mysql-perl libdigest-hmac-perl eapoltest libdatetime-format-rfc3339-perl
sudo apt-get -y install freeradius freeradius-mysql
# Answer yes to the question to install these packages with their dependencies
# Please note that the installation of this package generates some things that can take a lot of time on slower computers.
* Activating and starting FreeRADIUS
sudo systemctl enable freeradius
sudo systemctl start freeradius
sudo systemctl status freeradius
====== Configure FreeRADIUS ======
* Proceed as follows to configure FreeRADIUS to work with RADIUSdesk
# Stop the service if it is already running
sudo systemctl stop freeradius
# Backup the original FreeRADIUSdirectory
sudo mv /etc/freeradius /etc/freeradius.orig
# Extract the RADIUSdesk modified FreeRADIUS directory
sudo tar xzf /var/www/html/cake4/rd_cake/setup/radius/freeradius-radiusdesk.tar.gz --directory /etc
sudo chown -R freerad. /etc/freeradius/3.0/
sudo mkdir /var/run/freeradius
sudo chown freerad. /var/run/freeradius
* Configure the site-wide shared secret. This is the value used by ALL dynamic clients.
sudo vi /etc/freeradius/3.0/sites-enabled/dynamic-clients
* Locate this part of the file and change FreeRADIUS-Client-Secret to the value you want to use.
# Echo the IP address of the client.
FreeRADIUS-Client-IP-Address = "%{Packet-Src-IP-Address}"
# require_message_authenticator
FreeRADIUS-Client-Require-MA = no
# secret
FreeRADIUS-Client-Secret = "testing123"
# shortname
FreeRADIUS-Client-Shortname = "%{Packet-Src-IP-Address}"
* Comment out the following two lines in the systemd unit file
sudo vi /lib/systemd/system/freeradius.service
* Take a look at this example to see which two lines you need to comment out. If you do not do this, the system will not work and FreeRADIUS will not start at boot time.
[Unit]
Description=FreeRADIUS multi-protocol policy server
After=syslog.target network.target
Documentation=man:radiusd(8) man:radiusd.conf(5) http://wiki.freeradius.org/ http://networkradius.com/doc/
[Service]
Type=forking
PIDFile=/run/freeradius/freeradius.pid
#EnvironmentFile=-/etc/default/freeradius
#ExecStartPre=/usr/sbin/freeradius $FREERADIUS_OPTIONS -Cxm -lstdout
ExecStart=/usr/sbin/freeradius $FREERADIUS_OPTIONS
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
* After you have executed these commands, you can test whether FreeRADIUS starts without any problems.
sudo systemctl daemon-reload
sudo systemctl restart freeradius
sudo systemctl status freeradius
===== Correction of a small error =====
* There is a small bug that prevents FreeRADIUS from starting after a restart.
* It was reported here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=954911
* There also seems to be a fix, but it has not yet arrived in the Ubuntu repositories.
* So here is the solution from the discussion in the link
* Create a file called **/usr/lib/tmpfiles.d/freeradius.conf**
sudo vi /usr/lib/tmpfiles.d/freeradius.conf
* Add the following line
d /run/freeradius 750 freerad freerad -
* If you are curious about what we did, you can find a report on **tmpfiles.d** here
* https://www.commandlinux.com/man-page/man5/tmpfiles.d.5.html
===== Next steps =====
* You will need to make a few small adjustments to your environment
* [[install_tweak|Tweak Your Install]]