RADMIN(8)
β¨ NAME β¨
radmin β the FreeRADIUS Administration tool π
okay so real quick, before anything else: this is radmin(8), the FreeRADIUS Server Administration Tool, and she is that girl. Let's get into it π
πΈ SYNOPSIS πΈ
radmin [-d config_directory] [-D dictionary_directory] [-e command] [-E]
[-f socket_file] [-h] [-i input_file] [-n name] [-q]
π¦ DESCRIPTION π¦
So radmin is the FreeRADIUS Server administration tool β she connects to the control socket of a server that's already running and gives you a whole command-line interface to it. Bestie, it's giving remote control but make it Unix π«Ά
rn? only a few commands are supported. That's not me being shady, that's literally the manpage. Type help at the command prompt for the detailed tea on what's actually supported π
π₯ WARNING π₯
okay listen, this part matters so pay attention π
The security protections this command offers are limited to the permissions on the Unix domain socket, and the server configuration. That's it. That's the whole vibe check.
If someone can connect to the Unix domain socket, they have a substantial amount of control over the server. Like, a lot. Not a little. A substantial amount. no cap π
β OPTIONS β
here's every command-line option the program accepts, no skips, no skips, we don't do that here β¨
-dconfig_directory β Defaults to/etc/raddb.radminlooks here for the server configuration files so she can find thelistensection that defines the control socket filename π-Ddictionary_directory β Set the main dictionary directory. Defaults to/usr/share/freeradius. π-ecommand β Run command and exit. In and out, main character energy π¨-Eβ Echo commands as they're being executed. Narration mode ποΈ-fsocket_file β Specify the socket filename directly. Theradiusd.conffile is not read. (she's going straight to the source, no middleman π )-hβ Print usage help information. π«Ά-iinput_file β Reads input from the specified file. If not specified,stdinis used. This also sets-q. π-nmname β Readraddb/name.confinstead ofraddb/radiusd.conf. π§-qβ Quiet mode. π€«
π COMMANDS π
The commands implemented by the command-line interface are almost completely controlled by the server β she's not the boss, the server is. But there are a few commands interpreted locally by radmin:
reconnectβ Reconnect to the server. πquitβ Exit fromradmin.exitβ Exit fromradmin.
The other commands are implemented by the server. Type help at the prompt for more information π
π EXAMPLES π
π debug file /var/log/radius/bob.log
Set debug logs to /var/log/radius/bob.log.
ngl bestie, there is very little checking of this filename. Rogue administrators may be able to use this command to over-write almost any file on the system. And if those administrators have write access toradius.conf, they can do the same thing withoutradmintoo. so likeβ¦ the door was already open π
π debug condition '(User-Name == "bob")'
Enable debugging output for all requests that match the condition. Any unlang condition is valid here.
The condition is parsed as a string, so it must be enclosed in single or double quotes. Strings enclosed in double-quotes must have back-slashes and the quotation marks escaped inside of the string. π
Only one debug condition can be active at a time. One. Periodt.
π debug condition '((User-Name == "bob") || (Packet-Src-IP-Address == 192.0.2.22))'
A more complex condition that enables debugging output for requests containing User-Name "bob", or requests that originate from source IP address 192.0.2.22. look at her go, she's doing boolean logic ππ₯
π debug condition
Disable debug conditionals. bye bye debugging βοΈ
π FULL LIST OF COMMANDS π
okay this is the big one, grab a snack π
add <command>β do sub-command ofaddadd client <command>β Add client configuration commandsadd client file <filename>β Add new client definition from<filename>debug <command>β debugging commandsdebug condition [condition]β Enable debugging for requests matching[condition]debug level <number>β Set debug level to<number>. Higher is more debugging. πdebug file [filename]β Send all debugging output to[filename]del <command>β do sub-command ofdeldel client <command>β Delete client configuration commandsdel client ipaddr <ipaddr>β Delete a dynamically created clienthup [module]β sends aHUPsignal to the server, or optionally to one moduleinject <command>β commands to inject packets into a running serverinject to <ipaddr> <port>β Inject packets to the destination IP and port.inject from <ipaddr>β Inject packets as if they came from<ipaddr>inject file <input-file> <output-file>β Inject packet from<input-file>, with results sent to<output-file>reconnectβ reconnect to a running serverterminateβ terminates the server, and cause it to exit. (she said what she said π)set <command>β do sub-command ofsetset module <command>β set module commandsset module config <module> variable valueβ set configuration for<module>set module status [alive|dead]β set the module to be alive or dead (always return"fail")set home_server <command>β set home server commandsset home_server state <ipaddr> <port> [alive|dead]β set state for given home servershow <command>β do sub-command ofshowshow client <command>β do sub-command ofclientshow client config <ipaddr> [udp|tcp]β shows configuration for a given client.show client listβ shows list of global clientsshow debug <command>β show debug propertiesshow debug conditionβ Shows current debugging condition.show debug levelβ Shows current debugging level.show debug fileβ Shows current debugging file.show home_server <command>β do sub-command ofhome_servershow home_server config <ipaddr> <port>β show configuration for given home servershow home_server listβ shows list of home serversshow home_server state <ipaddr> <port>β shows state of given home servershow module <command>β do sub-command ofmoduleshow module config <module>β show configuration for given moduleshow module flags <module>β show other module propertiesshow module listβ shows list of loaded modulesshow module methods <module>β show sections where<module>may be usedshow uptimeβ shows time at which server startedshow versionβ Prints version of the running servershow xml <reference>β Prints out configuration as XMLstats <command>β do sub-command ofstatsstats client [auth/acct] <ipaddr>β show statistics for given client, or for all clients (authoracct)stats home_server [<ipaddr>|auth|acct] <port>β show statistics for given home server (ipaddr and port), or for all home servers (authoracct)stats detail <filename>β show statistics for the given detail file
π§ SEE ALSO π§
unlang(5), radiusd.conf(5), raddb/sites-available/control-socket β go read them, they're iconic π
π AUTHOR π
Alan DeKok <aland@freeradius.org> β thank you for your service king π«Ά
that's the whole page bestie, you ate it, you devoured, no crumbs π β¨
this cutie was brought to you by RADMIN(8), dated 11 Mar 2019, and yes she's still serving looks π
π¦ where this page comes from
- alpine 3.22: freeradius-doc 3.0.27-r1 Β· GPL-2.0-or-later
- alpine 3.23: freeradius-doc 3.0.27-r2 Β· GPL-2.0-or-later
- alpine 3.24: freeradius-doc 3.0.27-r3 Β· GPL-2.0-or-later
- arch rolling: freeradius 3.2.10-4 Β· GPL-2.0-or-later
- centos-stream 10: freeradius 3.2.8-2.el10 Β· GPL-2.0-or-later AND LGPL-2.0-or-later
- centos-stream 9: freeradius 3.0.27-4.el9 Β· GPLv2+ and LGPLv2+
- fedora 43: freeradius 3.2.7-6.fc43 Β· GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 43: freeradius 3.2.7-6.fc43 Β· GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 43: freeradius 3.2.8-2.fc43 Β· GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 43: freeradius 3.2.8-2.fc43 Β· GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 44: freeradius 3.2.8-3.fc44 Β· GPL-2.0-or-later AND LGPL-2.0-or-later
- fedora 44: freeradius 3.2.8-3.fc44 Β· GPL-2.0-or-later AND LGPL-2.0-or-later
- opensuse-leap 16.0: freeradius-server 3.2.5-160000.2.2 Β· GPL-2.0-only AND LGPL-2.1-only
- opensuse-leap 16.0: freeradius-server 3.2.5-160000.2.2 Β· GPL-2.0-only AND LGPL-2.1-only
- opensuse-leap 16.0: freeradius-server 3.2.5-160000.2.2 Β· GPL-2.0-only AND LGPL-2.1-only
- opensuse-leap 16.0: freeradius-server 3.2.5-160000.2.2 Β· GPL-2.0-only AND LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms