| 4 |
- |
1 |
# -*- text -*-
|
|
|
2 |
##
|
|
|
3 |
## radiusd.conf -- FreeRADIUS server configuration file.
|
|
|
4 |
##
|
|
|
5 |
## http://www.freeradius.org/
|
| 34 |
- |
6 |
## $Id: 201b70b31b5bb4c2ef98c102690daa3462d5e1e3 $
|
| 4 |
- |
7 |
##
|
|
|
8 |
|
|
|
9 |
######################################################################
|
|
|
10 |
#
|
|
|
11 |
# Read "man radiusd" before editing this file. See the section
|
|
|
12 |
# titled DEBUGGING. It outlines a method where you can quickly
|
|
|
13 |
# obtain the configuration you want, without running into
|
|
|
14 |
# trouble.
|
|
|
15 |
#
|
|
|
16 |
# Run the server in debugging mode, and READ the output.
|
|
|
17 |
#
|
|
|
18 |
# $ radiusd -X
|
|
|
19 |
#
|
|
|
20 |
# We cannot emphasize this point strongly enough. The vast
|
|
|
21 |
# majority of problems can be solved by carefully reading the
|
|
|
22 |
# debugging output, which includes warnings about common issues,
|
|
|
23 |
# and suggestions for how they may be fixed.
|
|
|
24 |
#
|
|
|
25 |
# There may be a lot of output, but look carefully for words like:
|
|
|
26 |
# "warning", "error", "reject", or "failure". The messages there
|
|
|
27 |
# will usually be enough to guide you to a solution.
|
|
|
28 |
#
|
|
|
29 |
# If you are going to ask a question on the mailing list, then
|
|
|
30 |
# explain what you are trying to do, and include the output from
|
|
|
31 |
# debugging mode (radiusd -X). Failure to do so means that all
|
|
|
32 |
# of the responses to your question will be people telling you
|
|
|
33 |
# to "post the output of radiusd -X".
|
|
|
34 |
|
|
|
35 |
######################################################################
|
|
|
36 |
#
|
|
|
37 |
# The location of other config files and logfiles are declared
|
|
|
38 |
# in this file.
|
|
|
39 |
#
|
|
|
40 |
# Also general configuration for modules can be done in this
|
|
|
41 |
# file, it is exported through the API to modules that ask for
|
|
|
42 |
# it.
|
|
|
43 |
#
|
|
|
44 |
# See "man radiusd.conf" for documentation on the format of this
|
|
|
45 |
# file. Note that the individual configuration items are NOT
|
|
|
46 |
# documented in that "man" page. They are only documented here,
|
|
|
47 |
# in the comments.
|
|
|
48 |
#
|
|
|
49 |
# As of 2.0.0, FreeRADIUS supports a simple processing language
|
|
|
50 |
# in the "authorize", "authenticate", "accounting", etc. sections.
|
|
|
51 |
# See "man unlang" for details.
|
|
|
52 |
#
|
|
|
53 |
|
|
|
54 |
prefix = /usr
|
|
|
55 |
exec_prefix = /usr
|
|
|
56 |
sysconfdir = /etc
|
|
|
57 |
localstatedir = /var
|
|
|
58 |
sbindir = /usr/sbin
|
|
|
59 |
logdir = ${localstatedir}/log/radius
|
|
|
60 |
raddbdir = ${sysconfdir}/raddb
|
|
|
61 |
radacctdir = ${logdir}/radacct
|
|
|
62 |
|
|
|
63 |
#
|
|
|
64 |
# name of the running server. See also the "-n" command-line option.
|
|
|
65 |
name = radiusd
|
|
|
66 |
|
|
|
67 |
# Location of config and logfiles.
|
|
|
68 |
confdir = ${raddbdir}
|
|
|
69 |
run_dir = ${localstatedir}/run/${name}
|
|
|
70 |
|
|
|
71 |
# Should likely be ${localstatedir}/lib/radiusd
|
|
|
72 |
db_dir = ${raddbdir}
|
|
|
73 |
|
|
|
74 |
#
|
|
|
75 |
# libdir: Where to find the rlm_* modules.
|
|
|
76 |
#
|
|
|
77 |
# This should be automatically set at configuration time.
|
|
|
78 |
#
|
|
|
79 |
# If the server builds and installs, but fails at execution time
|
|
|
80 |
# with an 'undefined symbol' error, then you can use the libdir
|
|
|
81 |
# directive to work around the problem.
|
|
|
82 |
#
|
|
|
83 |
# The cause is usually that a library has been installed on your
|
|
|
84 |
# system in a place where the dynamic linker CANNOT find it. When
|
|
|
85 |
# executing as root (or another user), your personal environment MAY
|
|
|
86 |
# be set up to allow the dynamic linker to find the library. When
|
|
|
87 |
# executing as a daemon, FreeRADIUS MAY NOT have the same
|
|
|
88 |
# personalized configuration.
|
|
|
89 |
#
|
|
|
90 |
# To work around the problem, find out which library contains that symbol,
|
|
|
91 |
# and add the directory containing that library to the end of 'libdir',
|
|
|
92 |
# with a colon separating the directory names. NO spaces are allowed.
|
|
|
93 |
#
|
|
|
94 |
# e.g. libdir = /usr/local/lib:/opt/package/lib
|
|
|
95 |
#
|
|
|
96 |
# You can also try setting the LD_LIBRARY_PATH environment variable
|
|
|
97 |
# in a script which starts the server.
|
|
|
98 |
#
|
|
|
99 |
# If that does not work, then you can re-configure and re-build the
|
|
|
100 |
# server to NOT use shared libraries, via:
|
|
|
101 |
#
|
|
|
102 |
# ./configure --disable-shared
|
|
|
103 |
# make
|
|
|
104 |
# make install
|
|
|
105 |
#
|
|
|
106 |
libdir = /usr/lib64/freeradius
|
|
|
107 |
|
|
|
108 |
# pidfile: Where to place the PID of the RADIUS server.
|
|
|
109 |
#
|
|
|
110 |
# The server may be signalled while it's running by using this
|
|
|
111 |
# file.
|
|
|
112 |
#
|
|
|
113 |
# This file is written when ONLY running in daemon mode.
|
|
|
114 |
#
|
|
|
115 |
# e.g.: kill -HUP `cat /var/run/radiusd/radiusd.pid`
|
|
|
116 |
#
|
|
|
117 |
pidfile = ${run_dir}/${name}.pid
|
|
|
118 |
|
|
|
119 |
# chroot: directory where the server does "chroot".
|
|
|
120 |
#
|
|
|
121 |
# The chroot is done very early in the process of starting the server.
|
|
|
122 |
# After the chroot has been performed it switches to the "user" listed
|
|
|
123 |
# below (which MUST be specified). If "group" is specified, it switchs
|
|
|
124 |
# to that group, too. Any other groups listed for the specified "user"
|
|
|
125 |
# in "/etc/group" are also added as part of this process.
|
|
|
126 |
#
|
|
|
127 |
# The current working directory (chdir / cd) is left *outside* of the
|
|
|
128 |
# chroot until all of the modules have been initialized. This allows
|
|
|
129 |
# the "raddb" directory to be left outside of the chroot. Once the
|
|
|
130 |
# modules have been initialized, it does a "chdir" to ${logdir}. This
|
|
|
131 |
# means that it should be impossible to break out of the chroot.
|
|
|
132 |
#
|
|
|
133 |
# If you are worried about security issues related to this use of chdir,
|
|
|
134 |
# then simply ensure that the "raddb" directory is inside of the chroot,
|
|
|
135 |
# end be sure to do "cd raddb" BEFORE starting the server.
|
|
|
136 |
#
|
|
|
137 |
# If the server is statically linked, then the only files that have
|
|
|
138 |
# to exist in the chroot are ${run_dir} and ${logdir}. If you do the
|
|
|
139 |
# "cd raddb" as discussed above, then the "raddb" directory has to be
|
|
|
140 |
# inside of the chroot directory, too.
|
|
|
141 |
#
|
|
|
142 |
#chroot = /path/to/chroot/directory
|
|
|
143 |
|
|
|
144 |
# user/group: The name (or #number) of the user/group to run radiusd as.
|
|
|
145 |
#
|
|
|
146 |
# If these are commented out, the server will run as the user/group
|
|
|
147 |
# that started it. In order to change to a different user/group, you
|
|
|
148 |
# MUST be root ( or have root privleges ) to start the server.
|
|
|
149 |
#
|
|
|
150 |
# We STRONGLY recommend that you run the server with as few permissions
|
|
|
151 |
# as possible. That is, if you're not using shadow passwords, the
|
|
|
152 |
# user and group items below should be set to radius'.
|
|
|
153 |
#
|
|
|
154 |
# NOTE that some kernels refuse to setgid(group) when the value of
|
|
|
155 |
# (unsigned)group is above 60000; don't use group nobody on these systems!
|
|
|
156 |
#
|
|
|
157 |
# On systems with shadow passwords, you might have to set 'group = shadow'
|
|
|
158 |
# for the server to be able to read the shadow password file. If you can
|
|
|
159 |
# authenticate users while in debug mode, but not in daemon mode, it may be
|
|
|
160 |
# that the debugging mode server is running as a user that can read the
|
|
|
161 |
# shadow info, and the user listed below can not.
|
|
|
162 |
#
|
|
|
163 |
# The server will also try to use "initgroups" to read /etc/groups.
|
|
|
164 |
# It will join all groups where "user" is a member. This can allow
|
|
|
165 |
# for some finer-grained access controls.
|
|
|
166 |
#
|
|
|
167 |
user = radiusd
|
|
|
168 |
group = radiusd
|
|
|
169 |
|
| 34 |
- |
170 |
# panic_action: Command to execute if the server dies unexpectedly.
|
|
|
171 |
#
|
|
|
172 |
# FOR PRODUCTION SYSTEMS, ACTIONS SHOULD ALWAYS EXIT.
|
|
|
173 |
# AN INTERACTIVE ACTION MEANS THE SERVER IS NOT RESPONDING TO REQUESTS.
|
|
|
174 |
# AN INTERACTICE ACTION MEANS THE SERVER WILL NOT RESTART.
|
|
|
175 |
#
|
|
|
176 |
# The panic action is a command which will be executed if the server
|
|
|
177 |
# receives a fatal, non user generated signal, i.e. SIGSEGV, SIGBUS,
|
|
|
178 |
# SIGABRT or SIGFPE.
|
|
|
179 |
#
|
|
|
180 |
# This can be used to start an interactive debugging session so
|
|
|
181 |
# that information regarding the current state of the server can
|
|
|
182 |
# be acquired.
|
|
|
183 |
#
|
|
|
184 |
# The following string substitutions are available:
|
|
|
185 |
# - %e The currently executing program e.g. /sbin/radiusd
|
|
|
186 |
# - %p The PID of the currently executing program e.g. 12345
|
|
|
187 |
#
|
|
|
188 |
# Standard ${} substitutions are also allowed.
|
|
|
189 |
#
|
|
|
190 |
# An example panic action for opening an interactive session in GDB would be:
|
|
|
191 |
#
|
|
|
192 |
#panic_action = "gdb %e %p"
|
|
|
193 |
#
|
|
|
194 |
# Again, don't use that on a production system.
|
|
|
195 |
#
|
|
|
196 |
# An example panic action for opening an automated session in GDB would be:
|
|
|
197 |
#
|
|
|
198 |
#panic_action = "gdb -silent -x ${raddbdir}/panic.gdb %e %p > ${logdir}/gdb-%e-%p.log 2>&1"
|
|
|
199 |
#
|
|
|
200 |
# That command can be used on a production system.
|
|
|
201 |
#
|
|
|
202 |
|
| 4 |
- |
203 |
# max_request_time: The maximum time (in seconds) to handle a request.
|
|
|
204 |
#
|
|
|
205 |
# Requests which take more time than this to process may be killed, and
|
|
|
206 |
# a REJECT message is returned.
|
|
|
207 |
#
|
|
|
208 |
# WARNING: If you notice that requests take a long time to be handled,
|
|
|
209 |
# then this MAY INDICATE a bug in the server, in one of the modules
|
|
|
210 |
# used to handle a request, OR in your local configuration.
|
|
|
211 |
#
|
|
|
212 |
# This problem is most often seen when using an SQL database. If it takes
|
|
|
213 |
# more than a second or two to receive an answer from the SQL database,
|
|
|
214 |
# then it probably means that you haven't indexed the database. See your
|
|
|
215 |
# SQL server documentation for more information.
|
|
|
216 |
#
|
|
|
217 |
# Useful range of values: 5 to 120
|
|
|
218 |
#
|
|
|
219 |
max_request_time = 30
|
|
|
220 |
|
|
|
221 |
# cleanup_delay: The time to wait (in seconds) before cleaning up
|
|
|
222 |
# a reply which was sent to the NAS.
|
|
|
223 |
#
|
|
|
224 |
# The RADIUS request is normally cached internally for a short period
|
|
|
225 |
# of time, after the reply is sent to the NAS. The reply packet may be
|
|
|
226 |
# lost in the network, and the NAS will not see it. The NAS will then
|
|
|
227 |
# re-send the request, and the server will respond quickly with the
|
|
|
228 |
# cached reply.
|
|
|
229 |
#
|
|
|
230 |
# If this value is set too low, then duplicate requests from the NAS
|
|
|
231 |
# MAY NOT be detected, and will instead be handled as seperate requests.
|
|
|
232 |
#
|
|
|
233 |
# If this value is set too high, then the server will cache too many
|
|
|
234 |
# requests, and some new requests may get blocked. (See 'max_requests'.)
|
|
|
235 |
#
|
|
|
236 |
# Useful range of values: 2 to 10
|
|
|
237 |
#
|
|
|
238 |
cleanup_delay = 5
|
|
|
239 |
|
|
|
240 |
# max_requests: The maximum number of requests which the server keeps
|
|
|
241 |
# track of. This should be 256 multiplied by the number of clients.
|
|
|
242 |
# e.g. With 4 clients, this number should be 1024.
|
|
|
243 |
#
|
|
|
244 |
# If this number is too low, then when the server becomes busy,
|
|
|
245 |
# it will not respond to any new requests, until the 'cleanup_delay'
|
|
|
246 |
# time has passed, and it has removed the old requests.
|
|
|
247 |
#
|
|
|
248 |
# If this number is set too high, then the server will use a bit more
|
|
|
249 |
# memory for no real benefit.
|
|
|
250 |
#
|
|
|
251 |
# If you aren't sure what it should be set to, it's better to set it
|
|
|
252 |
# too high than too low. Setting it to 1000 per client is probably
|
|
|
253 |
# the highest it should be.
|
|
|
254 |
#
|
|
|
255 |
# Useful range of values: 256 to infinity
|
|
|
256 |
#
|
|
|
257 |
max_requests = 1024
|
|
|
258 |
|
|
|
259 |
# listen: Make the server listen on a particular IP address, and send
|
|
|
260 |
# replies out from that address. This directive is most useful for
|
|
|
261 |
# hosts with multiple IP addresses on one interface.
|
|
|
262 |
#
|
|
|
263 |
# If you want the server to listen on additional addresses, or on
|
|
|
264 |
# additionnal ports, you can use multiple "listen" sections.
|
|
|
265 |
#
|
|
|
266 |
# Each section make the server listen for only one type of packet,
|
|
|
267 |
# therefore authentication and accounting have to be configured in
|
|
|
268 |
# different sections.
|
|
|
269 |
#
|
|
|
270 |
# The server ignore all "listen" section if you are using '-i' and '-p'
|
|
|
271 |
# on the command line.
|
|
|
272 |
#
|
|
|
273 |
listen {
|
|
|
274 |
# Type of packets to listen for.
|
|
|
275 |
# Allowed values are:
|
|
|
276 |
# auth listen for authentication packets
|
|
|
277 |
# acct listen for accounting packets
|
|
|
278 |
# proxy IP to use for sending proxied packets
|
|
|
279 |
# detail Read from the detail file. For examples, see
|
|
|
280 |
# raddb/sites-available/copy-acct-to-home-server
|
|
|
281 |
# status listen for Status-Server packets. For examples,
|
|
|
282 |
# see raddb/sites-available/status
|
|
|
283 |
# coa listen for CoA-Request and Disconnect-Request
|
|
|
284 |
# packets. For examples, see the file
|
| 34 |
- |
285 |
# raddb/sites-available/coa
|
| 4 |
- |
286 |
#
|
|
|
287 |
type = auth
|
|
|
288 |
|
|
|
289 |
# Note: "type = proxy" lets you control the source IP used for
|
|
|
290 |
# proxying packets, with some limitations:
|
|
|
291 |
#
|
|
|
292 |
# * A proxy listener CANNOT be used in a virtual server section.
|
|
|
293 |
# * You should probably set "port = 0".
|
|
|
294 |
# * Any "clients" configuration will be ignored.
|
|
|
295 |
#
|
|
|
296 |
# See also proxy.conf, and the "src_ipaddr" configuration entry
|
|
|
297 |
# in the sample "home_server" section. When you specify the
|
|
|
298 |
# source IP address for packets sent to a home server, the
|
|
|
299 |
# proxy listeners are automatically created.
|
|
|
300 |
|
|
|
301 |
# IP address on which to listen.
|
|
|
302 |
# Allowed values are:
|
|
|
303 |
# dotted quad (1.2.3.4)
|
|
|
304 |
# hostname (radius.example.com)
|
|
|
305 |
# wildcard (*)
|
|
|
306 |
ipaddr = *
|
|
|
307 |
|
|
|
308 |
# OR, you can use an IPv6 address, but not both
|
|
|
309 |
# at the same time.
|
|
|
310 |
# ipv6addr = :: # any. ::1 == localhost
|
|
|
311 |
|
|
|
312 |
# Port on which to listen.
|
|
|
313 |
# Allowed values are:
|
|
|
314 |
# integer port number (1812)
|
|
|
315 |
# 0 means "use /etc/services for the proper port"
|
|
|
316 |
port = 0
|
|
|
317 |
|
|
|
318 |
# Some systems support binding to an interface, in addition
|
|
|
319 |
# to the IP address. This feature isn't strictly necessary,
|
|
|
320 |
# but for sites with many IP addresses on one interface,
|
|
|
321 |
# it's useful to say "listen on all addresses for eth0".
|
|
|
322 |
#
|
|
|
323 |
# If your system does not support this feature, you will
|
|
|
324 |
# get an error if you try to use it.
|
|
|
325 |
#
|
|
|
326 |
# interface = eth0
|
|
|
327 |
|
|
|
328 |
# Per-socket lists of clients. This is a very useful feature.
|
|
|
329 |
#
|
|
|
330 |
# The name here is a reference to a section elsewhere in
|
|
|
331 |
# radiusd.conf, or clients.conf. Having the name as
|
|
|
332 |
# a reference allows multiple sockets to use the same
|
|
|
333 |
# set of clients.
|
|
|
334 |
#
|
|
|
335 |
# If this configuration is used, then the global list of clients
|
|
|
336 |
# is IGNORED for this "listen" section. Take care configuring
|
|
|
337 |
# this feature, to ensure you don't accidentally disable a
|
|
|
338 |
# client you need.
|
|
|
339 |
#
|
|
|
340 |
# See clients.conf for the configuration of "per_socket_clients".
|
|
|
341 |
#
|
|
|
342 |
# clients = per_socket_clients
|
|
|
343 |
}
|
|
|
344 |
|
|
|
345 |
# This second "listen" section is for listening on the accounting
|
|
|
346 |
# port, too.
|
|
|
347 |
#
|
|
|
348 |
listen {
|
|
|
349 |
ipaddr = *
|
|
|
350 |
# ipv6addr = ::
|
|
|
351 |
port = 0
|
|
|
352 |
type = acct
|
|
|
353 |
# interface = eth0
|
|
|
354 |
# clients = per_socket_clients
|
|
|
355 |
}
|
|
|
356 |
|
|
|
357 |
# hostname_lookups: Log the names of clients or just their IP addresses
|
|
|
358 |
# e.g., www.freeradius.org (on) or 206.47.27.232 (off).
|
|
|
359 |
#
|
|
|
360 |
# The default is 'off' because it would be overall better for the net
|
|
|
361 |
# if people had to knowingly turn this feature on, since enabling it
|
|
|
362 |
# means that each client request will result in AT LEAST one lookup
|
|
|
363 |
# request to the nameserver. Enabling hostname_lookups will also
|
|
|
364 |
# mean that your server may stop randomly for 30 seconds from time
|
|
|
365 |
# to time, if the DNS requests take too long.
|
|
|
366 |
#
|
|
|
367 |
# Turning hostname lookups off also means that the server won't block
|
|
|
368 |
# for 30 seconds, if it sees an IP address which has no name associated
|
|
|
369 |
# with it.
|
|
|
370 |
#
|
|
|
371 |
# allowed values: {no, yes}
|
|
|
372 |
#
|
|
|
373 |
hostname_lookups = no
|
|
|
374 |
|
|
|
375 |
# Core dumps are a bad thing. This should only be set to 'yes'
|
|
|
376 |
# if you're debugging a problem with the server.
|
|
|
377 |
#
|
|
|
378 |
# allowed values: {no, yes}
|
|
|
379 |
#
|
|
|
380 |
allow_core_dumps = no
|
|
|
381 |
|
|
|
382 |
# Regular expressions
|
|
|
383 |
#
|
|
|
384 |
# These items are set at configure time. If they're set to "yes",
|
|
|
385 |
# then setting them to "no" turns off regular expression support.
|
|
|
386 |
#
|
|
|
387 |
# If they're set to "no" at configure time, then setting them to "yes"
|
|
|
388 |
# WILL NOT WORK. It will give you an error.
|
|
|
389 |
#
|
|
|
390 |
regular_expressions = yes
|
|
|
391 |
extended_expressions = yes
|
|
|
392 |
|
|
|
393 |
#
|
|
|
394 |
# Logging section. The various "log_*" configuration items
|
|
|
395 |
# will eventually be moved here.
|
|
|
396 |
#
|
|
|
397 |
log {
|
|
|
398 |
#
|
|
|
399 |
# Destination for log messages. This can be one of:
|
|
|
400 |
#
|
|
|
401 |
# files - log to "file", as defined below.
|
|
|
402 |
# syslog - to syslog (see also the "syslog_facility", below.
|
|
|
403 |
# stdout - standard output
|
|
|
404 |
# stderr - standard error.
|
|
|
405 |
#
|
|
|
406 |
# The command-line option "-X" over-rides this option, and forces
|
|
|
407 |
# logging to go to stdout.
|
|
|
408 |
#
|
|
|
409 |
destination = files
|
|
|
410 |
|
|
|
411 |
#
|
|
|
412 |
# The logging messages for the server are appended to the
|
|
|
413 |
# tail of this file if destination == "files"
|
|
|
414 |
#
|
|
|
415 |
# If the server is running in debugging mode, this file is
|
|
|
416 |
# NOT used.
|
|
|
417 |
#
|
|
|
418 |
file = ${logdir}/radius.log
|
|
|
419 |
|
|
|
420 |
#
|
|
|
421 |
# If this configuration parameter is set, then log messages for
|
|
|
422 |
# a *request* go to this file, rather than to radius.log.
|
|
|
423 |
#
|
|
|
424 |
# i.e. This is a log file per request, once the server has accepted
|
|
|
425 |
# the request as being from a valid client. Messages that are
|
|
|
426 |
# not associated with a request still go to radius.log.
|
|
|
427 |
#
|
|
|
428 |
# Not all log messages in the server core have been updated to use
|
|
|
429 |
# this new internal API. As a result, some messages will still
|
|
|
430 |
# go to radius.log. Please submit patches to fix this behavior.
|
|
|
431 |
#
|
|
|
432 |
# The file name is expanded dynamically. You should ONLY user
|
|
|
433 |
# server-side attributes for the filename (e.g. things you control).
|
|
|
434 |
# Using this feature MAY also slow down the server substantially,
|
|
|
435 |
# especially if you do thinks like SQL calls as part of the
|
|
|
436 |
# expansion of the filename.
|
|
|
437 |
#
|
|
|
438 |
# The name of the log file should use attributes that don't change
|
|
|
439 |
# over the lifetime of a request, such as User-Name,
|
|
|
440 |
# Virtual-Server or Packet-Src-IP-Address. Otherwise, the log
|
|
|
441 |
# messages will be distributed over multiple files.
|
|
|
442 |
#
|
|
|
443 |
# Logging can be enabled for an individual request by a special
|
|
|
444 |
# dynamic expansion macro: %{debug: 1}, where the debug level
|
|
|
445 |
# for this request is set to '1' (or 2, 3, etc.). e.g.
|
|
|
446 |
#
|
|
|
447 |
# ...
|
|
|
448 |
# update control {
|
|
|
449 |
# Tmp-String-0 = "%{debug:1}"
|
|
|
450 |
# }
|
|
|
451 |
# ...
|
|
|
452 |
#
|
|
|
453 |
# The attribute that the value is assigned to is unimportant,
|
|
|
454 |
# and should be a "throw-away" attribute with no side effects.
|
|
|
455 |
#
|
|
|
456 |
#requests = ${logdir}/radiusd-%{%{Virtual-Server}:-DEFAULT}-%Y%m%d.log
|
|
|
457 |
|
|
|
458 |
#
|
|
|
459 |
# Which syslog facility to use, if ${destination} == "syslog"
|
|
|
460 |
#
|
|
|
461 |
# The exact values permitted here are OS-dependent. You probably
|
|
|
462 |
# don't want to change this.
|
|
|
463 |
#
|
|
|
464 |
syslog_facility = daemon
|
|
|
465 |
|
|
|
466 |
# Log the full User-Name attribute, as it was found in the request.
|
|
|
467 |
#
|
|
|
468 |
# allowed values: {no, yes}
|
|
|
469 |
#
|
|
|
470 |
stripped_names = no
|
|
|
471 |
|
|
|
472 |
# Log authentication requests to the log file.
|
|
|
473 |
#
|
|
|
474 |
# allowed values: {no, yes}
|
|
|
475 |
#
|
|
|
476 |
auth = no
|
|
|
477 |
|
|
|
478 |
# Log passwords with the authentication requests.
|
|
|
479 |
# auth_badpass - logs password if it's rejected
|
|
|
480 |
# auth_goodpass - logs password if it's correct
|
|
|
481 |
#
|
|
|
482 |
# allowed values: {no, yes}
|
|
|
483 |
#
|
|
|
484 |
auth_badpass = no
|
|
|
485 |
auth_goodpass = no
|
|
|
486 |
|
|
|
487 |
# Log additional text at the end of the "Login OK" messages.
|
|
|
488 |
# for these to work, the "auth" and "auth_goopass" or "auth_badpass"
|
|
|
489 |
# configurations above have to be set to "yes".
|
|
|
490 |
#
|
|
|
491 |
# The strings below are dynamically expanded, which means that
|
|
|
492 |
# you can put anything you want in them. However, note that
|
|
|
493 |
# this expansion can be slow, and can negatively impact server
|
|
|
494 |
# performance.
|
|
|
495 |
#
|
|
|
496 |
# msg_goodpass = ""
|
|
|
497 |
# msg_badpass = ""
|
|
|
498 |
}
|
|
|
499 |
|
|
|
500 |
# The program to execute to do concurrency checks.
|
|
|
501 |
checkrad = ${sbindir}/checkrad
|
|
|
502 |
|
|
|
503 |
# SECURITY CONFIGURATION
|
|
|
504 |
#
|
|
|
505 |
# There may be multiple methods of attacking on the server. This
|
|
|
506 |
# section holds the configuration items which minimize the impact
|
|
|
507 |
# of those attacks
|
|
|
508 |
#
|
|
|
509 |
security {
|
|
|
510 |
#
|
|
|
511 |
# max_attributes: The maximum number of attributes
|
|
|
512 |
# permitted in a RADIUS packet. Packets which have MORE
|
|
|
513 |
# than this number of attributes in them will be dropped.
|
|
|
514 |
#
|
|
|
515 |
# If this number is set too low, then no RADIUS packets
|
|
|
516 |
# will be accepted.
|
|
|
517 |
#
|
|
|
518 |
# If this number is set too high, then an attacker may be
|
|
|
519 |
# able to send a small number of packets which will cause
|
|
|
520 |
# the server to use all available memory on the machine.
|
|
|
521 |
#
|
|
|
522 |
# Setting this number to 0 means "allow any number of attributes"
|
|
|
523 |
max_attributes = 200
|
|
|
524 |
|
|
|
525 |
#
|
|
|
526 |
# reject_delay: When sending an Access-Reject, it can be
|
|
|
527 |
# delayed for a few seconds. This may help slow down a DoS
|
|
|
528 |
# attack. It also helps to slow down people trying to brute-force
|
|
|
529 |
# crack a users password.
|
|
|
530 |
#
|
|
|
531 |
# Setting this number to 0 means "send rejects immediately"
|
|
|
532 |
#
|
|
|
533 |
# If this number is set higher than 'cleanup_delay', then the
|
|
|
534 |
# rejects will be sent at 'cleanup_delay' time, when the request
|
|
|
535 |
# is deleted from the internal cache of requests.
|
|
|
536 |
#
|
|
|
537 |
# Useful ranges: 1 to 5
|
|
|
538 |
reject_delay = 1
|
|
|
539 |
|
|
|
540 |
#
|
|
|
541 |
# status_server: Whether or not the server will respond
|
|
|
542 |
# to Status-Server requests.
|
|
|
543 |
#
|
|
|
544 |
# When sent a Status-Server message, the server responds with
|
|
|
545 |
# an Access-Accept or Accounting-Response packet.
|
|
|
546 |
#
|
|
|
547 |
# This is mainly useful for administrators who want to "ping"
|
|
|
548 |
# the server, without adding test users, or creating fake
|
|
|
549 |
# accounting packets.
|
|
|
550 |
#
|
|
|
551 |
# It's also useful when a NAS marks a RADIUS server "dead".
|
|
|
552 |
# The NAS can periodically "ping" the server with a Status-Server
|
|
|
553 |
# packet. If the server responds, it must be alive, and the
|
|
|
554 |
# NAS can start using it for real requests.
|
|
|
555 |
#
|
|
|
556 |
# See also raddb/sites-available/status
|
|
|
557 |
#
|
|
|
558 |
status_server = yes
|
| 34 |
- |
559 |
|
|
|
560 |
|
| 4 |
- |
561 |
}
|
|
|
562 |
|
|
|
563 |
# PROXY CONFIGURATION
|
|
|
564 |
#
|
|
|
565 |
# proxy_requests: Turns proxying of RADIUS requests on or off.
|
|
|
566 |
#
|
|
|
567 |
# The server has proxying turned on by default. If your system is NOT
|
|
|
568 |
# set up to proxy requests to another server, then you can turn proxying
|
|
|
569 |
# off here. This will save a small amount of resources on the server.
|
|
|
570 |
#
|
|
|
571 |
# If you have proxying turned off, and your configuration files say
|
|
|
572 |
# to proxy a request, then an error message will be logged.
|
|
|
573 |
#
|
|
|
574 |
# To disable proxying, change the "yes" to "no", and comment the
|
|
|
575 |
# $INCLUDE line.
|
|
|
576 |
#
|
|
|
577 |
# allowed values: {no, yes}
|
|
|
578 |
#
|
|
|
579 |
proxy_requests = yes
|
|
|
580 |
$INCLUDE proxy.conf
|
|
|
581 |
|
|
|
582 |
|
|
|
583 |
# CLIENTS CONFIGURATION
|
|
|
584 |
#
|
| 34 |
- |
585 |
# Client configuration is defined in "clients.conf".
|
| 4 |
- |
586 |
#
|
|
|
587 |
|
|
|
588 |
# The 'clients.conf' file contains all of the information from the old
|
|
|
589 |
# 'clients' and 'naslist' configuration files. We recommend that you
|
|
|
590 |
# do NOT use 'client's or 'naslist', although they are still
|
|
|
591 |
# supported.
|
|
|
592 |
#
|
|
|
593 |
# Anything listed in 'clients.conf' will take precedence over the
|
|
|
594 |
# information from the old-style configuration files.
|
|
|
595 |
#
|
|
|
596 |
$INCLUDE clients.conf
|
|
|
597 |
|
|
|
598 |
|
|
|
599 |
# THREAD POOL CONFIGURATION
|
|
|
600 |
#
|
|
|
601 |
# The thread pool is a long-lived group of threads which
|
|
|
602 |
# take turns (round-robin) handling any incoming requests.
|
|
|
603 |
#
|
|
|
604 |
# You probably want to have a few spare threads around,
|
|
|
605 |
# so that high-load situations can be handled immediately. If you
|
|
|
606 |
# don't have any spare threads, then the request handling will
|
|
|
607 |
# be delayed while a new thread is created, and added to the pool.
|
|
|
608 |
#
|
|
|
609 |
# You probably don't want too many spare threads around,
|
|
|
610 |
# otherwise they'll be sitting there taking up resources, and
|
|
|
611 |
# not doing anything productive.
|
|
|
612 |
#
|
|
|
613 |
# The numbers given below should be adequate for most situations.
|
|
|
614 |
#
|
|
|
615 |
thread pool {
|
|
|
616 |
# Number of servers to start initially --- should be a reasonable
|
|
|
617 |
# ballpark figure.
|
|
|
618 |
start_servers = 5
|
|
|
619 |
|
|
|
620 |
# Limit on the total number of servers running.
|
|
|
621 |
#
|
|
|
622 |
# If this limit is ever reached, clients will be LOCKED OUT, so it
|
|
|
623 |
# should NOT BE SET TOO LOW. It is intended mainly as a brake to
|
|
|
624 |
# keep a runaway server from taking the system with it as it spirals
|
|
|
625 |
# down...
|
|
|
626 |
#
|
|
|
627 |
# You may find that the server is regularly reaching the
|
|
|
628 |
# 'max_servers' number of threads, and that increasing
|
|
|
629 |
# 'max_servers' doesn't seem to make much difference.
|
|
|
630 |
#
|
|
|
631 |
# If this is the case, then the problem is MOST LIKELY that
|
|
|
632 |
# your back-end databases are taking too long to respond, and
|
|
|
633 |
# are preventing the server from responding in a timely manner.
|
|
|
634 |
#
|
|
|
635 |
# The solution is NOT do keep increasing the 'max_servers'
|
|
|
636 |
# value, but instead to fix the underlying cause of the
|
|
|
637 |
# problem: slow database, or 'hostname_lookups=yes'.
|
|
|
638 |
#
|
|
|
639 |
# For more information, see 'max_request_time', above.
|
|
|
640 |
#
|
|
|
641 |
max_servers = 32
|
|
|
642 |
|
|
|
643 |
# Server-pool size regulation. Rather than making you guess
|
|
|
644 |
# how many servers you need, FreeRADIUS dynamically adapts to
|
|
|
645 |
# the load it sees, that is, it tries to maintain enough
|
|
|
646 |
# servers to handle the current load, plus a few spare
|
|
|
647 |
# servers to handle transient load spikes.
|
|
|
648 |
#
|
|
|
649 |
# It does this by periodically checking how many servers are
|
|
|
650 |
# waiting for a request. If there are fewer than
|
|
|
651 |
# min_spare_servers, it creates a new spare. If there are
|
|
|
652 |
# more than max_spare_servers, some of the spares die off.
|
|
|
653 |
# The default values are probably OK for most sites.
|
|
|
654 |
#
|
|
|
655 |
min_spare_servers = 3
|
|
|
656 |
max_spare_servers = 10
|
|
|
657 |
|
|
|
658 |
# When the server receives a packet, it places it onto an
|
|
|
659 |
# internal queue, where the worker threads (configured above)
|
|
|
660 |
# pick it up for processing. The maximum size of that queue
|
|
|
661 |
# is given here.
|
|
|
662 |
#
|
|
|
663 |
# When the queue is full, any new packets will be silently
|
|
|
664 |
# discarded.
|
|
|
665 |
#
|
|
|
666 |
# The most common cause of the queue being full is that the
|
|
|
667 |
# server is dependent on a slow database, and it has received
|
|
|
668 |
# a large "spike" of traffic. When that happens, there is
|
|
|
669 |
# very little you can do other than make sure the server
|
|
|
670 |
# receives less traffic, or make sure that the database can
|
|
|
671 |
# handle the load.
|
|
|
672 |
#
|
|
|
673 |
# max_queue_size = 65536
|
|
|
674 |
|
|
|
675 |
# There may be memory leaks or resource allocation problems with
|
|
|
676 |
# the server. If so, set this value to 300 or so, so that the
|
|
|
677 |
# resources will be cleaned up periodically.
|
|
|
678 |
#
|
|
|
679 |
# This should only be necessary if there are serious bugs in the
|
|
|
680 |
# server which have not yet been fixed.
|
|
|
681 |
#
|
|
|
682 |
# '0' is a special value meaning 'infinity', or 'the servers never
|
|
|
683 |
# exit'
|
|
|
684 |
max_requests_per_server = 0
|
|
|
685 |
}
|
|
|
686 |
|
|
|
687 |
# MODULE CONFIGURATION
|
|
|
688 |
#
|
|
|
689 |
# The names and configuration of each module is located in this section.
|
|
|
690 |
#
|
|
|
691 |
# After the modules are defined here, they may be referred to by name,
|
|
|
692 |
# in other sections of this configuration file.
|
|
|
693 |
#
|
|
|
694 |
modules {
|
|
|
695 |
#
|
|
|
696 |
# Each module has a configuration as follows:
|
|
|
697 |
#
|
|
|
698 |
# name [ instance ] {
|
|
|
699 |
# config_item = value
|
|
|
700 |
# ...
|
|
|
701 |
# }
|
|
|
702 |
#
|
|
|
703 |
# The 'name' is used to load the 'rlm_name' library
|
|
|
704 |
# which implements the functionality of the module.
|
|
|
705 |
#
|
|
|
706 |
# The 'instance' is optional. To have two different instances
|
|
|
707 |
# of a module, it first must be referred to by 'name'.
|
|
|
708 |
# The different copies of the module are then created by
|
|
|
709 |
# inventing two 'instance' names, e.g. 'instance1' and 'instance2'
|
|
|
710 |
#
|
|
|
711 |
# The instance names can then be used in later configuration
|
|
|
712 |
# INSTEAD of the original 'name'. See the 'radutmp' configuration
|
|
|
713 |
# for an example.
|
|
|
714 |
#
|
|
|
715 |
|
|
|
716 |
#
|
|
|
717 |
# As of 2.0.5, most of the module configurations are in a
|
|
|
718 |
# sub-directory. Files matching the regex /[a-zA-Z0-9_.]+/
|
|
|
719 |
# are loaded. The modules are initialized ONLY if they are
|
|
|
720 |
# referenced in a processing section, such as authorize,
|
|
|
721 |
# authenticate, accounting, pre/post-proxy, etc.
|
|
|
722 |
#
|
|
|
723 |
$INCLUDE ${confdir}/modules/
|
|
|
724 |
|
|
|
725 |
# Extensible Authentication Protocol
|
|
|
726 |
#
|
|
|
727 |
# For all EAP related authentications.
|
|
|
728 |
# Now in another file, because it is very large.
|
|
|
729 |
#
|
|
|
730 |
$INCLUDE eap.conf
|
|
|
731 |
|
|
|
732 |
# Include another file that has the SQL-related configuration.
|
|
|
733 |
# This is another file only because it tends to be big.
|
|
|
734 |
#
|
|
|
735 |
# $INCLUDE sql.conf
|
|
|
736 |
|
|
|
737 |
#
|
|
|
738 |
# This module is an SQL enabled version of the counter module.
|
|
|
739 |
#
|
|
|
740 |
# Rather than maintaining seperate (GDBM) databases of
|
|
|
741 |
# accounting info for each counter, this module uses the data
|
|
|
742 |
# stored in the raddacct table by the sql modules. This
|
|
|
743 |
# module NEVER does any database INSERTs or UPDATEs. It is
|
|
|
744 |
# totally dependent on the SQL module to process Accounting
|
|
|
745 |
# packets.
|
|
|
746 |
#
|
|
|
747 |
# $INCLUDE sql/mysql/counter.conf
|
|
|
748 |
|
|
|
749 |
#
|
|
|
750 |
# IP addresses managed in an SQL table.
|
|
|
751 |
#
|
|
|
752 |
# $INCLUDE sqlippool.conf
|
|
|
753 |
}
|
|
|
754 |
|
|
|
755 |
# Instantiation
|
|
|
756 |
#
|
|
|
757 |
# This section orders the loading of the modules. Modules
|
|
|
758 |
# listed here will get loaded BEFORE the later sections like
|
|
|
759 |
# authorize, authenticate, etc. get examined.
|
|
|
760 |
#
|
|
|
761 |
# This section is not strictly needed. When a section like
|
|
|
762 |
# authorize refers to a module, it's automatically loaded and
|
|
|
763 |
# initialized. However, some modules may not be listed in any
|
|
|
764 |
# of the following sections, so they can be listed here.
|
|
|
765 |
#
|
|
|
766 |
# Also, listing modules here ensures that you have control over
|
|
|
767 |
# the order in which they are initalized. If one module needs
|
|
|
768 |
# something defined by another module, you can list them in order
|
|
|
769 |
# here, and ensure that the configuration will be OK.
|
|
|
770 |
#
|
|
|
771 |
instantiate {
|
|
|
772 |
#
|
|
|
773 |
# Allows the execution of external scripts.
|
|
|
774 |
# The entire command line (and output) must fit into 253 bytes.
|
|
|
775 |
#
|
|
|
776 |
# e.g. Framed-Pool = `%{exec:/bin/echo foo}`
|
|
|
777 |
exec
|
|
|
778 |
|
|
|
779 |
#
|
|
|
780 |
# The expression module doesn't do authorization,
|
|
|
781 |
# authentication, or accounting. It only does dynamic
|
|
|
782 |
# translation, of the form:
|
|
|
783 |
#
|
|
|
784 |
# Session-Timeout = `%{expr:2 + 3}`
|
|
|
785 |
#
|
| 34 |
- |
786 |
# This module needs to be instantiated, but CANNOT be
|
| 4 |
- |
787 |
# listed in any other section. See 'doc/rlm_expr' for
|
|
|
788 |
# more information.
|
|
|
789 |
#
|
| 34 |
- |
790 |
# rlm_expr is also responsible for registering many
|
|
|
791 |
# other xlat functions such as md5, sha1 and lc.
|
|
|
792 |
#
|
|
|
793 |
# We do not recommend removing it's listing here.
|
| 4 |
- |
794 |
expr
|
|
|
795 |
|
|
|
796 |
#
|
|
|
797 |
# We add the counter module here so that it registers
|
|
|
798 |
# the check-name attribute before any module which sets
|
|
|
799 |
# it
|
|
|
800 |
# daily
|
|
|
801 |
expiration
|
|
|
802 |
logintime
|
|
|
803 |
|
|
|
804 |
# subsections here can be thought of as "virtual" modules.
|
|
|
805 |
#
|
|
|
806 |
# e.g. If you have two redundant SQL servers, and you want to
|
|
|
807 |
# use them in the authorize and accounting sections, you could
|
|
|
808 |
# place a "redundant" block in each section, containing the
|
|
|
809 |
# exact same text. Or, you could uncomment the following
|
|
|
810 |
# lines, and list "redundant_sql" in the authorize and
|
|
|
811 |
# accounting sections.
|
|
|
812 |
#
|
|
|
813 |
#redundant redundant_sql {
|
|
|
814 |
# sql1
|
|
|
815 |
# sql2
|
|
|
816 |
#}
|
|
|
817 |
}
|
|
|
818 |
|
|
|
819 |
######################################################################
|
|
|
820 |
#
|
|
|
821 |
# Policies that can be applied in multiple places are listed
|
|
|
822 |
# globally. That way, they can be defined once, and referred
|
|
|
823 |
# to multiple times.
|
|
|
824 |
#
|
|
|
825 |
######################################################################
|
|
|
826 |
$INCLUDE policy.conf
|
|
|
827 |
|
|
|
828 |
######################################################################
|
|
|
829 |
#
|
|
|
830 |
# Load virtual servers.
|
|
|
831 |
#
|
|
|
832 |
# This next $INCLUDE line loads files in the directory that
|
|
|
833 |
# match the regular expression: /[a-zA-Z0-9_.]+/
|
|
|
834 |
#
|
|
|
835 |
# It allows you to define new virtual servers simply by placing
|
|
|
836 |
# a file into the raddb/sites-enabled/ directory.
|
|
|
837 |
#
|
|
|
838 |
$INCLUDE sites-enabled/
|
|
|
839 |
|
|
|
840 |
######################################################################
|
|
|
841 |
#
|
|
|
842 |
# All of the other configuration sections like "authorize {}",
|
|
|
843 |
# "authenticate {}", "accounting {}", have been moved to the
|
|
|
844 |
# the file:
|
|
|
845 |
#
|
|
|
846 |
# raddb/sites-available/default
|
|
|
847 |
#
|
|
|
848 |
# This is the "default" virtual server that has the same
|
|
|
849 |
# configuration as in version 1.0.x and 1.1.x. The default
|
|
|
850 |
# installation enables this virtual server. You should
|
|
|
851 |
# edit it to create policies for your local site.
|
|
|
852 |
#
|
|
|
853 |
# For more documentation on virtual servers, see:
|
|
|
854 |
#
|
|
|
855 |
# raddb/sites-available/README
|
|
|
856 |
#
|
|
|
857 |
######################################################################
|