Silently skip empty subgroups
[freeradius.git] / README.rst
1 The FreeRADIUS server
2 =====================
3
4 0. BRANCH STATE
5 ---------------
6 |BuildStatus|_
7
8 .. |BuildStatus| image:: https://travis-ci.org/FreeRADIUS/freeradius-server.png?branch=v2.x.x
9 .. _BuildStatus: https://travis-ci.org/FreeRADIUS/freeradius-server
10
11 1. INTRODUCTION
12 ---------------
13
14 The FreeRADIUS Server Project is a high performance and highly
15 configurable AAA server.  Is available under the terms of the GNU
16 GPLv2.  It has been in steady development for over a decade.  It is
17 the most widely used RADIUS server in the world, by quite a large
18 margin.
19
20 AAA stands for "Authentication, Authorization, and Accounting".  The
21 server can do any or all of the AAA functions, across three protocols:
22 RADIUS, DHCP, and VMPS.  The reason is that at its core, it is a
23 policy engine.  The policy engine connects network protocols to
24 back-end systems such as SQL, LDAP, Active Directory, etc.
25
26 FreeRADIUS started out as a RADIUS server, of course.  We then added
27 VMPS and DHCP when it became clear that doing so was both easy and
28 useful.
29
30 It supports all popular authentication methods for RADIUS.  This
31 includes PAP, CHAP, MS-CHAP, EAP, etc.  It works with all known
32 networking equipment.  The authors of FreeRADIUS have written the
33 official specifications for how RADIUS works (RFC 5080 and RFC 6158,
34 among others).  It is compliant with all RADIUS standards.  This means
35 that if a NAS does not inter-operate with FreeRADIUS, the most likely
36 reason is that the NAS is wrong.
37
38 FreeRADIUS can authenticate users on systems such as 802.1x (WiFi),
39 dialup, PPPoE, VPN's, VoIP, and many others.  It supports back-end
40 databases such as MySQL, PostgreSQL, Oracle, Microsoft Active
41 Directory, OpenLDAP, and many more.  It is used daily to authenticate
42 the Internet access for hundreds of millions of people, in sites
43 ranging from 10 users, to 10 million and more users.  It is used in
44 appliances, WiFi boxes, ISPs, enterprises, and large
45 telecommunications providers.
46
47 Version 2.2 of the server is intended to be backwards compatible with
48 previous versions.  It has features not available in Version 1, many
49 of which are also not available in any commercial server.
50
51 * simple policy language (see ``man unlang``)
52 * virtual servers (raddb/sites-available/README)
53 * DHCP support (server and relay)
54 * VMPS support
55 * IPv6 support
56 * better proxy support (raddb/proxy.conf)
57 * More EAP types
58 * verbose and descriptive Debugging output
59 * Almost 50 "stable" modules, and many more experimental ones.
60 * Sample SQL configuration for all major SQL databases.
61 * Some support for on-the-fly changing of configuration (HUP)
62 * check configuration test (``radiusd -C``)
63 * Event-based server core.
64
65 Please see http://freeradius.org and http://wiki.freeradius.org for
66 more information.
67
68
69 2. INSTALLATION
70 ---------------
71
72 To install the server, please see the INSTALL file in this directory.
73 In general, we recommend using a pre-packaged installation for your
74 operating system.
75
76
77 3. DEBUGGING THE SERVER
78 -----------------------
79
80 RADIUS systems can be complicated to configure.  Unlike a simple
81 "query-response" protocol such as DNS, RADIUS systems need to juggle
82 large amounts of information.  There may be dozens of attributes in
83 the request.  Processing the request may involve querying any or all
84 of LDAP, SQL, flat files, external scripts, etc.
85
86 There is no easy solution to creating a working RADIUS configuration.
87 The only method that works is to run the server in debugging mode,
88 (``radiusd -X``) and READ the output.  We cannot emphasize this point
89 strongly enough.  The vast majority of problems can be solved by
90 carefully reading the debugging output, which includes WARNINGs about
91 common issues, and suggestions for how they may be fixed.
92
93 Read the FAQ.  Many questions are answered there.  See the Wiki
94
95 http://wiki.freeradius.org
96
97 Read the configuration files.  Many parts of the server have NO
98 documentation, other than comments in the configuration file.  That
99 being said, there are dozens of examples in the configuration files.
100 The configuration items are extensively commented, with all of their
101 behavior documented.
102
103 Search the mailing lists.  Many questions come up repeatedly, and are
104 answered there.  There is a Google link on the bottom of the page:
105
106 http://www.freeradius.org/list/users.html
107
108 Type some key words into the search box, and you should find
109 discussions about common problems and solution.
110
111
112 4. ADDITIONAL INFORMATION
113 -------------------------
114
115 See 'doc/README' for more information about FreeRADIUS.
116
117 See raddb/sites-available/README for documentation on virtual servers.
118
119 5. PROBLEMS AND CONCERNS
120 ------------------------
121
122 We understand that the server may be difficult to configure,
123 install, or administer.  It is, after all, a complex system with many
124 different configuration possibilities.
125
126 The most common problem is that people change large amounts of the
127 configuration without understanding what they're doing, and without
128 testing their changes.  The preferred method of operation is the
129 following:
130
131 1. Start off with the default configuration files.
132 2. Save a copy of the default configuration: It WORKS.  Don't change it!
133 3. Run the server in debugging mode. (radiusd -X)
134 4. Send it test packets using "radclient", or a NAS or AP.
135 5. Verify that the server does what you expect.
136       - If it does not work, change the configuration, and go to step (3) 
137         If you're stuck, revert to using the "last working" configuration.
138       - If it works, proceed to step (6).
139 6. Save a copy of the working configuration, along with a note of what 
140    you changed, and why.
141 7. Make a SMALL change to the configuration.
142 8. Repeat from step (3).
143
144 This method will ensure that you have a working configuration that
145 is customized to your site as quickly as possible.  While it may seem
146 frustrating to proceed via a series of small steps, the alternative
147 will always take more time.  The "fast and loose" way will be MORE
148 frustrating than quickly making forward progress!
149
150
151 6. FEEDBACK
152 -----------
153
154 If you have any comments, bug reports, problems, or concerns, please
155 send them to the 'freeradius-users' list (see the URL above).  We will
156 do our best to answer your questions, to fix the problems, and to
157 generally improve the server in any way we can.
158
159 Please do NOT complain that the developers aren't answering your
160 questions quickly enough, or aren't fixing the problems quickly
161 enough.  Please do NOT complain if you're told to go read
162 documentation.  We recognize that the documentation isn't perfect, but
163 it *does* exist, and reading it can solve most common questions.
164
165 The list policy changed in mid 2012, due to the high volume of
166 inappropriate posts from a subset of users.  These users would refuse
167 to read the documentation, even when asked to.  They would ask
168 questions, and then refuse to follow the instructions given them on
169 the list.  They would argue over the answers given on the list, even
170 when it was clear that they understood less about RADIUS than the
171 people trying to help them.
172
173 The new policy is to warn people engaging in this asocial behavior.
174 If they continue after a warning, they are unsubscribed and banned
175 permanently from the list.
176
177 The decision to enforce etiquette came after over 10 years of having a
178 more open policy.  Sadly, a small subset of users abused the help
179 given by the volunteers on the list.  This behavior is unacceptable,
180 and will not be tolerated.
181
182 FreeRADIUS is the cumulative effort of many years of work by many
183 people, and you've gotten it for free.  No one gets paid to work on
184 FreeRADIUS, and no one is getting paid to answer your questions.
185
186 If you want the community to help you, you need to make it easy for
187 the community to help you.
188
189 Support is available.  See http://networkradius.com/.
190
191 Please submit bug reports, suggestions, or patches.  That feedback
192 gives the developers a guide as to where they should focus their work.
193 If you like the server, feel free to mail the list and say so.