radiusd.conf(5)

πŸ“¦
version 3.2.10 Β· 4 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, fedora 43, fedora 44, opensuse-leap 16.0

πŸŽ€ radiusd.conf(5) πŸŽ€

okay so bestie, listen β€” this is the manual page for radiusd.conf, the configuration file for the FreeRADIUS server. yes THE FreeRADIUS server. let's get into it ✨


πŸ’– NAME πŸ’–

radiusd.conf β€” the configuration file for the FreeRADIUS server, periodt.


🌸 DESCRIPTION 🌸

The radiusd.conf file lives in the radius database directory β€” by default that's /etc/raddb. It's the main character of global config, fr fr: it defines the global configuration for the FreeRADIUS RADIUS server. πŸ‘‘


πŸ¦‹ CONTENTS πŸ¦‹

okay so there are, like, a large number of configuration parameters for the server. most of them are documented right there in the file itself as comments πŸ’…. this page? it documents only the format of the file. so please, bestie, go read the radiusd.conf file itself for more info. i'm begging πŸ™

here's the iconic part: the configuration file parser is independent of the server configuration. which means you can put almost anything into the configuration file. so long as it's properly formatted, the server will start. no cap.

when the server parses the config file, it looks only for those configurations it understands. everything extra? ignored. and this "feature" can be (ab)used in certain interesting ways 😏 β€” put that in your notes.


🧚 FILE FORMAT 🧚

the format is line-based, like so many other Unix config files. each entry in the file must be placed on a line by itself β€” although continuations are supported (more on that below, don't worry).

the file consists of configuration items (variable = value pairs), sections, and comments. slay.

⭐ Variables ⭐

variables get set like this:

name = value

single and double-quoted strings are permitted, bestie:

string1 = "hello world"
string2 = 'hello mom'

⭐ Sections ⭐

a section begins with a section name, followed on the same line by an open bracket {. a section may contain other sections, comments, or variables. sections may be nested to any depth, limited only by available memory (so, like, go off i guess πŸ’€). a section ends with a close bracket } on a line by itself.

section {
     ...
}

sections can sometimes have a second name following the first one. the situations where this is legal depend on the context β€” check the examples and comments in the radiusd.conf file for more info 🫢

section foo {
     ...
}

⭐ Comments ⭐

any line beginning with a # is deemed to be a comment and is ignored. comments can also appear after a variable or section definition. cute, right?

# comment
foo = bar # set variable 'foo' to value 'bar'
section { # start of section
...
}         # end of section

⭐ Continuations ⭐

long lines can be broken up via continuations, using \ as the last character of the line. for example, this entry:

foo = "blah \
blah \
blah"

will set the value of the variable foo to "blah blah blah". now here's the fine print, don't skip it πŸ‘€ β€” any CR or LF is not turned into a space, but all other whitespace is preserved in the final value.


🌈 REFERENCES 🌈

the value of a variable can reference another variable. these references are evaluated when the configuration file is loaded, which means there is literally no run-time cost associated with them. icon behavior. this feature is most useful for turning long, repeated pieces of text into short ones πŸ’…

variables are referenced by ${variable_name}, as in the following examples:

foo = bar       # set variable 'foo' to value 'bar'
who = ${foo}    # sets variable 'who' to value of variable 'foo'
my = "${foo} a" # sets variable 'my' to "bar a"

if the variable exists in a section or subsection, it can be referenced as ${section.subsection.variable}. forward references are not allowed 🚫. relative references are allowed, by pre-pending the name with one or more periods.

blogs = ${.foo}

will set variable blogs to the value of variable foo, from the current section.

blogs = ${..foo}

will set variable blogs to the value of variable foo, from the section which contains the current section. one more dot, one more level up, iykyk.

blogs = ${modules.detail.filename}

will set variable blogs to the value of variable filename, of the detail module, which is in the modules section of the configuration file.

properties of anonymous parent sections may also be referenced β€” currently name and instance are supported. πŸŽ€

modules {
    example foo {
        file = ${.:name}
    }
}

will set variable file to the name of the containing section (example).

modules {
    example foo {
        file = ${.:instance}
    }
}

will set variable file to the instance name of the containing section (foo).

modules {
    example foo {
        file = ${..:name}
    }
}

will set variable file to the name of the parent of the containing section (modules).


πŸ“ FILES πŸ“

  • /etc/raddb/radiusd.conf

πŸ’œ SEE ALSO πŸ’œ


πŸ‘‘ AUTHOR πŸ‘‘

Alan DeKok <aland@freeradius.org>


ok bestie that's the whole page, you're literally a FreeRADIUS config expert now πŸ’…βœ¨

β€” mwah, this was radiusd.conf(5), FreeRADIUS configuration file, dated 28 Jun 2013. go forth and parse responsibly πŸ¦‹πŸ’–

πŸ“¦ where this page comes from