Technical Anshu
Tutorials Blog
📡 First Client

Add a RADIUS Client in clients.conf Switch Access Point and Shared Secret

The server ignores unknown devices completely — by design. Registering your access point or switch in clients.conf, with a strong shared secret typed identically on both sides, is the step that makes requests start arriving.

✍️ Technical Anshu🐧 Ubuntu Server📡 FreeRADIUS 3
🎥 Watch the full FreeRADIUS setup in the video, step by step

A very common first-day problem: FreeRADIUS is installed, a user exists, the access point points at the server — and absolutely nothing happens when someone tries to log in. The usual cause is the missing client entry. In RADIUS, the device asking the question must be known and trusted first. This page explains what a client really is, how to write the clients.conf block, and why the shared secret is the detail that decides everything.

Config file — /etc/freeradius/3.0/clients.conf
$ sudo nano /etc/freeradius/3.0/clients.conf client office-ap { ipaddr = 192.168.1.10 secret = MyStrongSecret42 shortname = office-ap nastype = other }
👆 One client block: the device IP, the shared secret and a friendly name (secret and IP shown are examples — always use your own)
1

What a RADIUS Client Actually Is

Forget the everyday meaning of the word. In RADIUS, 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 on its ports, or the VPN gateway. That device is also called a NAS (Network Access Server).

The server will only answer devices it knows. An unknown device does not get an error or a rejection — its packets are simply dropped, because RADIUS treats unauthenticated requests as untrusted by design.

2

Add the Client Block, Field by Field

Open the file with sudo nano /etc/freeradius/3.0/clients.conf and add your block at the end:

  1. client office-ap { — the name in the heading is a label; pick something you will recognise in logs
  2. ipaddr = 192.168.1.10 — the exact IP the requests will come from. If the access point sits behind NAT, this must be the address the server actually sees
  3. secret = MyStrongSecret42 — the shared secret. Make it long and random, and never reuse the example values from any guide, including this one
  4. shortname = office-ap — a short log-friendly name, then close the block with }

You can also allow a whole subnet, for example ipaddr = 192.168.1.0/24, but one entry per device with its own secret is the safer habit: one leaked secret should not open the whole network.

3

Restart, Then Put the Same Secret on the Device

  1. Check the config before restarting: sudo freeradius -C — fix any error it reports; it names the file and line
  2. Restart: sudo systemctl restart freeradius
  3. Now open the access point or switch settings and enter the RADIUS server IP (this Ubuntu machine), port 1812, and the same secret, character for character
  4. Try a login and watch the server debug output — the request should now arrive and be answered

The classic failure is a secret that matches on one side only, or a typo in the client IP. Both produce the same symptom — total silence — which is why the debug window on the server is your best friend here.

🔴 Never do this: some old guides suggest adding client 0.0.0.0/0 so "any device" can ask the server. That lets anyone who can reach the port attempt logins with a guessable shared secret. Register each real device by its own IP, with its own secret.

🎥 Watch the Full FreeRADIUS Setup Video

The complete setup on a real Ubuntu server — install, first client, first user and the live test, all shown step by step in the video.

▶️ Watch Full Video
❓ Common Questions (FAQ)

Why does FreeRADIUS not reply to my access point at all?

Because until the access point is listed in clients.conf, the server does not know it and silently discards its packets. Check that the client IP matches the address requests actually come from, restart the service after editing, and confirm the shared secret is identical on both sides.

Can one client entry cover all my access points?

Yes, a subnet entry such as 192.168.1.0/24 with one secret will work, and it is fine in a small lab. For a real network, one entry per device with a different secret is better practice, because a single leaked or retired device then cannot expose the secret that protects every other device.

I edited clients.conf but nothing changed. Why?

FreeRADIUS reads clients.conf only when it starts. Run sudo freeradius -C to validate the file, then sudo systemctl restart freeradius. If the restart itself fails, the -C output will tell you which line is wrong instead of leaving the server down without explanation.

This guide is based on the Technical Anshu FreeRADIUS video • Stuck on any step? Ask in the video comments — you will get an answer there 🙏