Technical Anshu Home › Tutorials › FreeRADIUS on Ubuntu
📡 RADIUS Server on Ubuntu

1-Minute FreeRADIUS Setup on Ubuntu

The install itself is the quick part — about a minute of commands. But a freshly installed FreeRADIUS authenticates nobody: no client device and no user exists yet. This guide does the install, then the short finishing steps that make it a real login server, and proves the result locally before any device is pointed at it.

✍️ Technical Anshu🐧 Ubuntu Server🎧 Multi-Language Audio
1-Minute FreeRADIUS Setup on Ubuntu
🎧 Multi-Language Audio: In the video player, click [Settings] (⚙️) ➔ [Audio track] to select your preferred audio.

📑Chapters

  1. What RADIUS does — the gatekeeper behind WiFi, switch-port and VPN logins
  2. Install FreeRADIUS and the freeradius-utils test tools
  3. Check the service is running and listening on UDP 1812
  4. Register the first client in clients.conf, with its shared secret
  5. Add the first user in the users file
  6. Check the configuration and restart the service
  7. Prove it locally with radtest — Access-Accept, Access-Reject, or silence
  8. Point a real device at the server, and lock the test setup down

📋 Overview & Step-by-Step Guide

1

Install FreeRADIUS and the Test Tools

RADIUS is the quiet gatekeeper behind office WiFi logins, 802.1X switch ports and VPN sign-ins: the device asks the server, and the server says yes or no. FreeRADIUS on Ubuntu is the standard free way to run that gatekeeper. Two packages give you everything this guide uses — the server itself and the utilities package that contains the radtest tool — and Ubuntu starts the service on its own after the install.

Terminal
sudo apt update
sudo apt install -y freeradius freeradius-utils

All of the server's configuration lives in one folder: /etc/freeradius/3.0/. Out of everything in there, this setup mainly touches two files — clients.conf (which devices may ask) and users (who may log in).

2

Confirm the Service Is Running and Listening

Before changing any configuration, confirm the freshly installed server is alive and waiting for requests. The service should report active (running), and the port check should show UDP 1812 — that is the authentication port. Its partner, UDP 1813, handles accounting.

Terminal
sudo systemctl status freeradius
sudo ss -lunp | grep 1812

If the service is not running at this point, fix that first — every later step depends on a server that is actually up.

3

Add a Client in clients.conf

A RADIUS server trusts nothing by default. In RADIUS language, a "client" is not the laptop or phone logging in — it is the network device that asks the server for a decision: the access point carrying the WiFi login, the switch running 802.1X, or the VPN gateway (also called a NAS). That device must be registered with its IP address and a shared secret — a password both sides know. An unregistered device gets no error and no rejection: its packets are silently dropped, by design.

Open the clients file and add one block per device, at the end of the file:

Terminal
sudo nano /etc/freeradius/3.0/clients.conf
Configuration — clients.conf
client office-ap {
    ipaddr = 192.168.1.10
    secret = MyStrongSecret42
    shortname = office-ap
}

The IP address and the secret above are examples — always replace both with your own. The ipaddr is the exact address the requests will come from, and the same secret must later be typed into the access point or switch itself, character for character. If the two sides do not match exactly, the server silently ignores the device: no error, just nothing.

⚠️ The shared secret is password-grade — treat it that way. Use a long, random secret, a different one for every client device, and never reuse it anywhere else. One leaked secret should never open the whole network. And never register a catch-all client such as 0.0.0.0/0 so that "any device" can ask — that lets anyone who can reach the port attempt logins.
4

Add a Test User in the Users File

Now give the server somebody to authenticate. Open the users file and add one test account at the top of the file — FreeRADIUS reads this file from top to bottom and the first matching entry wins, so order matters.

Terminal
sudo nano /etc/freeradius/3.0/users
Configuration — users
testuser Cleartext-Password := "TestPass123"

The password shown is an example — pick your own, and remember what you set, because the test in the next step uses it. A plain-text test user like this is perfect for proving the setup works; on a real office server you would later connect FreeRADIUS to your existing user database or Active Directory instead of keeping passwords in this file.

Save the file, then check the whole configuration before restarting — the check must end with "Configuration appears to be OK":

Terminal
sudo freeradius -C
sudo systemctl restart freeradius
5

Prove It Works with Radtest

Never test a new RADIUS server by pointing real users at it. The radtest tool (it ships in the freeradius-utils package you installed in Step 1) sends one fake login from the server itself, using the built-in localhost client. Its answer separates two questions beginners constantly mix up: is the server working, and is my access point talking to it correctly? Radtest answers the first one with no network device involved.

Terminal
radtest testuser TestPass123 localhost 0 testing123

The five parts are: username, password, server address, NAS port (0 is fine for a test), and the shared secret of the client the request pretends to come from. Testing from the server itself uses that built-in localhost client, whose stock secret is testing123. Read the answer like this:

Received Access-Accept — the server checked the password and said yes. Your users entry, password and localhost secret are all correct; the server side is finished.
Received Access-Reject — the server answered but said no: wrong password, or the user line is in the wrong place in the file. A configuration detail, not a network problem.
No answer at all — the request never got a reply: the service is down, the port is wrong, or the secret did not match (a wrong secret is dropped silently, deliberately).

📌 The testing123 secret is public knowledge — it ships in the stock configuration. It is fine for this local test only. It is not a secret worth the name, and it must never be the secret protecting a real device on a real network (see Step 6).
6

Lock It Down Before Real Devices Use It

Only after the local test passes should you configure a real access point or switch: enter the RADIUS server's IP (this Ubuntu machine), port 1812, and the same shared secret you put in its client block in Step 3 — then try one real login. If something fails at that point, the fault is in the device's settings, because the server side is already proven.

⚠️ Do not leave a test setup running on a real network. Before this server serves real logins: give every client device its own long, unique shared secret (Step 3); change or remove the example test account and never leave an example password in the users file; and keep UDP 1812 and 1813 reachable only from your own LAN in the firewall — a RADIUS server has no business being open to the internet. A quick setup with a default or weak secret left running is an open door with a login prompt.
✅ When a device gets silence, debug on the server. Stop the service and run sudo freeradius -X to watch requests arrive live in the terminal. A request that never appears points at the client IP or the network path; a request that appears and fails points at the secret or the user entry. Remember that radtest proves the server only — WPA2 Enterprise WiFi adds EAP methods and certificates on top, which are a separate layer.

🏷️Topic Search Variables & Keywords

🔍 FreeRADIUS 🔍 RADIUSServer 🔍 Ubuntu 🔍 clients.conf 🔍 radtest 🔍 802.1X 🔍 WPA2Enterprise 🔍 TechnicalAnshu 🔍 FreeRADIUS Setup on Ubuntu 🔍 RADIUS Authentication Server 🔍 UDP 1812 🔍 Network Access Server 🔍 AAA Server
🎙️ Full Transcript — tap to expand

Step-by-Step Troubleshooting Guide & Solutions - SETUP RADIUS SERVER NOW Step-by-Step Guide. On-screen demonstration by Technical Anshu.

Install FreeRADIUS on Ubuntu in about a minute, then finish the parts that make it a real login server: add a client in clients.conf, add a user, and prove it with radtest before any device uses it.

(The transcript available on the source page ends at this point — watch the video above for the full walkthrough.)

❓ Frequently Asked Questions

Is this tutorial 100% free to follow?

Yes! All guides and methods demonstrated by Technical Anshu use free, legal, and educational resources.

Can beginners follow this guide?

Absolutely! Every step is demonstrated on-screen with detailed instructions so anyone can follow along easily.

Where can I ask questions if I get stuck?

Leave a comment directly on the YouTube video, and our community and Technical Anshu will help you out.

🚀 Watch the Full Tutorial on YouTube

🚀 Watch the full step-by-step video tutorial on YouTube: https://www.youtube.com/watch?v=pEBThSAcf9w

Subscribe to Technical Anshu for IT support, Windows troubleshooting, and server management.

▶️ Watch Full Video
This tutorial is based on Technical Anshu's 1-Minute FreeRADIUS Setup on Ubuntu video • Stuck on any step? Ask in the video comments — you will get help there 🙏