[![Travis CI build status][BuildStatus]][BuildStatusLink] [![Coverity Status][CoverityStatus]][CoverityStatusLink]
## Introduction
+
The FreeRADIUS Server Project is a high performance and highly
configurable multi-protocol policy server, supporting RADIUS, DHCPv4
and VMPS. It is available under the terms of the GNU GPLv2.
used daily to authenticate the Internet access for hundreds of millions
of people, in sites ranging from 10 to 10 million+ users.
-## Upgrading
-Version 4.0.x of the server is largely compatible with version 3.0.x,
-but be sure to address any warnings when starting v3.0.x before
-attempting to use en existing configuration with v4.0.x.
-
-For a list of changes in version 4.0, please see
-[doc/ChangeLog](https://github.com/FreeRADIUS/freeradius-server/blob/master/doc/ChangeLog)
-
-See
-[raddb/README.md](https://github.com/FreeRADIUS/freeradius-server/blob/master/raddb/README.md)
-for information on what to do to update your configuration.
+## Documentation
-Administrators upgrading from a previous version should install this
-version in a different location from their existing systems. Any
-existing configuration should be carefully migrated to the new
-version, in order to take advantage of the new features which can
-greatly simply configuration.
-
-Please see https://freeradius.org and https://wiki.freeradius.org for
-more information.
+Please see the [documentation](doc/) directory, which has full
+documentation for version 4.
+Please also see https://freeradius.org and https://wiki.freeradius.org
+for additional documentation.
## Installation
-To install the server, please see the
-[INSTALL.md](https://github.com/FreeRADIUS/freeradius-server/blob/master/INSTALL.md) file in this directory.
+
+To install the server, please see the [installation
+instrictions](doc/howto/INSTALL.md) document.
## Configuring the server
+
We understand that the server may be difficult to configure,
install, or administer. It is, after all, a complex system with many
different configuration possibilities.
https://freeradius.org/support/
-
## Feedback, Defects, and Community Support
If you have any comments, or are having difficulty getting FreeRADIUS
-to do what you want, please post to the 'freeradius-users' list
-(see the URL above). The FreeRADIUS mailing list is operated, and
+to do what you want, please post to the 'freeradius-users' list (see
+the URL above). The FreeRADIUS mailing list is operated, and
contributed to, by the FreeRADIUS community. Users of the list will be
-more than happy to answer your questions, with the caveat that you've
-read documentation relevant to your issue first.
+more than happy to answer your questions, with the caveat that you
+have read the documentation relevant to your issue first.
If you suspect a defect in the server, would like to request a feature,
or submit a code patch, please use the GitHub issue tracker for the
it *does* exist, and reading it can solve most common questions.
FreeRADIUS is the cumulative effort of many years of work by many
-people, and you've gotten it for free. No one is getting paid to answer
-your questions. This is free software, and the only way it gets better
-is if you make a contribution back to the project ($$, code, or
-documentation).
-
-We will note that the people who get most upset about any answers to
-their questions usually do not have any intention of contributing to
-the project. We will repeat the comments above: no one is getting
-paid to answer your questions or to fix your bugs. If you don't like
-the responses you are getting, then fix the bug yourself, or pay
-someone to address your concerns. Either way, make sure that any fix
-is contributed back to the project so that no one else runs into the
-same issue.
-
-## Books on RADIUS
-
-See ``doc/README.md`` for more information about FreeRADIUS.
-
-There is an O'Reilly book available. It serves as a good
-introduction for anyone new to RADIUS. However, it is from 2002
-and is not much more than a basic introduction to the subject.
-
-https://www.amazon.com/exec/obidos/ASIN/0596003226/freeradiusorg-20/
+people, and you have gotten it for free. No one is getting paid to
+answer your questions. This is free software, and the only way it
+gets better is if you make a contribution back to the project ($$,
+code, or documentation).
## Commercial support
For more complex requirements, FreeRADIUS can be extremely difficult
to configure. The reason for this difficulty is that the server can
-do almost anything, which means that there are near-infinite ways to
-configure it. The question for an administrator, then, is which piece
-of the configuration to change, and how to change it.
+do almost anything, which means that there are a near-infinite number
+of ways to configure it. The question for an administrator, then, is
+what piece of the configuration to change, and how to change it.
This documentation will answer those questions. The FreeRADIUS team
has put substantial effort into writing the documentation for this
ensures that (for example) the "how-to" guides are split into a series
of small steps, each of which can be performed quickly.
-The documentation here is substantially more complete and in-depth
-than in any previous version of the server. We hope that this level
-of detail will address any lingering concerns about the quality of the
-FreeRADIUS documentation.
+We hope that this extended documentation will address any lingering
+concerns about the quality of the FreeRADIUS documentation.
## Getting Started
-We recommend installing FreeRADIUS from the pre-built packages
-available at [Network RADIUS](http://packages.networkradius.com).
+We recommend installing FreeRADIUS via the pre-built packages
+available from [Network RADIUS](http://packages.networkradius.com).
Many Operating System distributions ship versions of FreeRADIUS which
-are years out of date. The page given above contains recent packages
+are years out of date. That page contains recent FreeRADIUS packages
for all common OS distributions. For historical purposes, packages of
-older releases are also available.
+older releases are also available from that site.
Administrators who are new to FreeRADIUS should read the
[introduction](introduction/) documentation. That section describes
familiarity with them.
Administrators who have version 3 and wish to upgrade to version 4
-should read the [upgrading](upgrade/) documentatin. That section
+should read the [upgrading](upgrade/) documentation. That section
explains the differences between the two versions, and how an existing
-configuration can be reproduced in the latest release.
+configuration can be reproduced in the latest release. We do _not_
+recommend using version 3 configuration files with version 4. The
+server does not have compatible files across a major version upgrade.
-A detailed [Unlang Reference](unlang/) guide is also available. This
+A detailed [unlang](unlang/) reference guide is also available. This
section describes the syntax and functionality of the keywords, data
types, etc. used in the "unlang" processing language.
## Debugging
-If you have ANY problems, concerns, or surprises when running
-the server, then run it in debugging mode, as root, from the
-command line:
+If you have ANY problems, concerns, or surprises when running the
+server, the the server should be run in debugging mode as root, from
+the command line:
# radiusd -X
It will produce a large number of messages. The answers to many
questions, and the solution to many problems, can usually be found in
-these messages. When running in a terminal window, error messages
-will be shown in red text, and warning messages will be shown in
-yellow text.
+these messages. When run in a terminal window, error messages will be
+shown in red text, and warning messages will be shown in yellow text.
For other use-cases, please look for `ERROR` or `WARNING` in the debug
output. In many cases, those messages describe exactly what is going
# Installation
-## Introduction
-Ignore the installation instructions in this file if you have a
-pre-installed binary package.
+We recommend installing FreeRADIUS via the pre-built packages
+available from [Network RADIUS](http://packages.networkradius.com).
+Many Operating System distributions ship versions of FreeRADIUS which
+are years out of date. That page contains recent FreeRADIUS packages
+for all common OS distributions. For historical purposes, packages of
+older releases are also available from that site.
-When upgrading from older versions of FreeRADIUS, you should read
-ALL of this file, especially the section on [Upgrading](#upgrading)
-which gives information on how to update your configuration.
+The rest of this document describes how to install FreeRADIUS from
+source. i.e. a "tar.gz" file.
-**WARNING** Failure to properly update your configurations may cause
-your previously working FreeRADIUS server to no longer authenticate
-your users.
+## Building from Source
-Whether you are installing from source or a pre-built binary
-package, you should read the section [Running The Server](#running-the-server).
+The [build dependencies](doc/source/dependencies.adoc) must be
+installed before FreeRADIUS can build. These dependencies are
+libtalloc and libkqueue, which FreeRADIUS uses for memory management,
+and platform-independent event handling.
+Download the latest version of the FreeRADIUS source from the
+FreeRADIUS ftp site:
-## Simple build from Source
+```
+ftp://ftp.freeradius.org/pub/freeadius/
+```
+
+The file wil be name something like: `freeradius-server-4.0.0.tar.gz`.
+Later version will be `4.0.1`, or `4.1.0`, etc.
-If you do not need to modify the default configuration, then take
-the following steps to build and install the server from source:
+Un-tar the file, and change to the FreeRADIUS directory, where
+`VERSION` is the version of the server that you have downloaded.
+
+```bash
+tar -zxf freeradius-server-VERSION.tar.gz
+cd freeradius-server-VERSION
+```
+
+Take the following steps to build and install the server from source:
```bash
./configure
FreeRADIUS has GNU autoconf support. This means you have to run
``./configure``, and then run ``make``. To see which configuration options
-are supported, run ``./configure --help``, and read it's output. The
-following list is a selection from the available flags:
-
-```text
- --with-logdir=DIR Directory for logfiles [LOCALSTATEDIR/log]
- --with-radacctdir=PATH Directory for detail files [LOGDIR/radacct]
- --with-raddbdir=DIR Directory for config files [SYSCONFDIR/raddb]
- --with-threads Use threads, if available. (default=yes)
- --with-snmp Compile in SNMP support. (default=yes)
- --with-dhcp Compile in DHCP support. (default=yes)
- --with-experimental-modules Use experimental and unstable modules.
- (default=no)
- --enable-developer Turns on super-duper-extra-compile-warnings
- when using gcc, as well as experimental modules.
-```
+are supported, run ``./configure --help``, and read it's output.
The ``make install`` stage will install the binaries, the 'man' pages,
and MAY install the configuration files. If you have not installed a
configuration, so you MUST verify and install any problem files by
hand, for example using ``diff(1)`` to check for changes.
-It is EXTREMELY helpful to read the output of ``./configure``,
-``make``, and ``make install``. If a particular module you expected to be
-installed was not installed, then the output of the
-``./configure; make; make install`` sequence will tell you why that module
-was not installed. Please do NOT post questions to the FreeRADIUS
-users list without first carefully reading the output of this process as it
-often contains the information needed to resolve a problem.
+When installing fro, source, it is EXTREMELY helpful to read the
+output of ``./configure``, ``make``, and ``make install``. If a
+particular module you expected to be installed was not installed, then
+the output of the ``./configure; make; make install`` sequence will
+tell you why that module was not installed. Please do NOT post
+questions to the FreeRADIUS users list without first carefully reading
+the output of this process as it often contains the information needed
+to resolve a problem.
-## Upgrading
+## Upgrading To A New Minor Release
The installation process will not over-write your existing
configuration files. It will, however, warn you about the files it
did not install. These will require manual integration with the existing files.
It is generally not possible to re-use configurations between
-different major versions of the server. (For example - 2.x to 3.x)
+different major versions of the server. (For example - version 2 to
+version 3, or version 3 to version 4.
-For details on what has changed between the version, see ``raddb/README.md``.
+For details on what has changed between the version, see the
+[upgade](../upgrade/) guide.
-We STRONGLY recommend that new major versions be installed in a different
+We STRONGLY recommend that new major versions be installed in a different
location than any existing installations. Any local policies can
then be migrated gradually to the configuration format of the new major
version. The number of differences in the new configuration mean that is
## Running the server
If the server builds and installs, but doesn't run correctly, then
-you should first use debugging mode (``radiusd -X``) to figure out the problem.
+you should first use debugging mode (``radiusd -X``) to figure out the problem.
This is your BEST HOPE for understanding the problem. Read ALL of
the messages which are printed to the screen, the answer to your
problem will often be in a warning or error message.
-We really can't emphasize that last sentence enough. Configuring a
+We really cannot emphasize that last sentence enough. Configuring a
RADIUS server for complex local authentication isn't a trivial task.
Your BEST and ONLY method for debugging it is to read the debug messages, where
the server will tell you exactly what it's doing, and why. You should
critical resource such as your authentication servers.
Configuring and running the server MAY be complicated. Many modules
-have ``man`` pages. See ``man rlm_pap``, or ``man rlm_*`` for
+have ``man`` pages. See ``man rlm_pap``, or ``man rlm_*`` for
information.
Please read the documentation in the doc/ directory. The comments in
the configuration files also contain a lot of documentation.
start.
https://wiki.freeradius.org/guide/FAQ
-
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/raddb/experimental.conf
# install doc files omitted by standard install
-for f in COPYRIGHT CREDITS INSTALL.md README.md; do
+for f in COPYRIGHT CREDITS README.md; do
cp $f $RPM_BUILD_ROOT/%{docdir}
done
cp LICENSE $RPM_BUILD_ROOT/%{docdir}/LICENSE.gpl
[root@08a222f5fdfe freeradius-server]# ls
acinclude.m4 config.guess configure.ac debian install-sh main.mk man raddb scripts suse
aclocal.m4 config.sub COPYRIGHT doc LICENSE Makefile mibs README.md share VERSION
-autogen.sh configure CREDITS INSTALL.md m4 Make.inc.in missing redhat src
+autogen.sh configure CREDITS m4 Make.inc.in missing redhat src
```
To run FreeRADIUS, use: