This site contains documentation for FreeRADIUS. This documentation is in development and will be expanded over time. In the meantime, if any links are missing, please check back soon. New pages are being added weekly.

For those new to RADIUS, we suggest reading the introduction to RADIUS and FreeRADIUS.

The concepts chapter describes basic RADIUS concepts. It documents which systems are involved in RADIUS and what those systems do. The later chapters assume familiarity with these concepts, so be sure to read this chapter first.

This site documents version 3 of the server. The upgrading chapter describes how to upgrade from version 2 to version 3.

FreeRADIUS has many files in its configuration. These files are documented in the raddb chapter. The directory structure mirrors that used by the running server, so the files should be easy to find; e.g., raddb/mods-available/ contains documentation for the modules included with the server.

The unlang chapter documents the unlang policy language. While unlang derives from the normal syntax for configuration files, it is complicated enough to warrant a chapter on its own.

If something goes wrong, the server will print out many messages in debugging mode. The messages chapter describes these messages. It gives an example of each one, why it is produced, and what can be done to fix the underlying issue.

Finally, the debugging chapter describes how to debug a configuration. The complex nature of the server and of RADIUS policies can make debugging difficult. This chapter gives step by step instructions which help to narrow down the problem and solve it as quickly as possible.

The following table contains links to a number of useful lists.

Link Description

Conditional Syntax

How to use if statements in unlang.

Data types

Data types used in the configuration files. Not the dictionaries.


Run-time dynamic expansions such as %{...}.

Unlang keywords

Keywords used in unlang, such as if, else, etc.


Available modules, and documentation of their configuration.