Subversion Repositories ALCASAR

Rev

Rev 445 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
383 franck 1
######################################################################
2
#
3
#	As of 2.0.0, FreeRADIUS supports virtual hosts using the
4
#	"server" section, and configuration directives.
5
#
6
#	Virtual hosts should be put into the "sites-available"
7
#	directory.  Soft links should be created in the "sites-enabled"
8
#	directory to these files.  This is done in a normal installation.
9
#
10
#	$Id: alcasar-radius 764 2011-11-01 12:04:05Z stephane $
11
#
12
######################################################################
13
#
14
#	Read "man radiusd" before editing this file.  See the section
15
#	titled DEBUGGING.  It outlines a method where you can quickly
16
#	obtain the configuration you want, without running into
17
#	trouble.  See also "man unlang", which documents the format
18
#	of this file.
19
#
20
#	This configuration is designed to work in the widest possible
21
#	set of circumstances, with the widest possible number of
22
#	authentication methods.  This means that in general, you should
23
#	need to make very few changes to this file.
24
#
25
#	The best way to configure the server for your local system
26
#	is to CAREFULLY edit this file.  Most attempts to make large
27
#	edits to this file will BREAK THE SERVER.  Any edits should
28
#	be small, and tested by running the server with "radiusd -X".
29
#	Once the edits have been verified to work, save a copy of these
30
#	configuration files somewhere.  (e.g. as a "tar" file).  Then,
31
#	make more edits, and test, as above.
32
#
33
#	There are many "commented out" references to modules such
34
#	as ldap, sql, etc.  These references serve as place-holders.
35
#	If you need the functionality of that module, then configure
36
#	it in radiusd.conf, and un-comment the references to it in
37
#	this file.  In most cases, those small changes will result
38
#	in the server being able to connect to the DB, and to
39
#	authenticate users.
40
#
41
######################################################################
1 root 42
 
383 franck 43
#
44
#	In 1.x, the "authorize", etc. sections were global in
45
#	radiusd.conf.  As of 2.0, they SHOULD be in a server section.
46
#
47
#	The server section with no virtual server name is the "default"
48
#	section.  It is used when no server name is specified.
49
#
50
#	We don't indent the rest of this file, because doing so
51
#	would make it harder to read.
52
#
53
 
54
#  Authorization. First preprocess (hints and huntgroups files),
55
#  then realms, and finally look in the "users" file.
56
#
57
#  The order of the realm modules will determine the order that
58
#  we try to find a matching realm.
59
#
60
#  Make *sure* that 'preprocess' comes before any realm if you
61
#  need to setup hints for the remote radius server
62
authorize {
63
	#
64
	#  The preprocess module takes care of sanitizing some bizarre
65
	#  attributes in the request, and turning them into attributes
66
	#  which are more standard.
67
	#
68
	#  It takes care of processing the 'raddb/hints' and the
69
	#  'raddb/huntgroups' files.
70
	#
71
	#  It also adds the %{Client-IP-Address} attribute to the request.
72
	preprocess
73
 
74
	#
75
	#  If you want to have a log of authentication requests,
76
	#  un-comment the following line, and the 'detail auth_log'
77
	#  section, above.
78
#	auth_log
79
 
80
	#
81
	#  The chap module will set 'Auth-Type := CHAP' if we are
82
	#  handling a CHAP request and Auth-Type has not already been set
83
#	chap
84
 
85
	#
86
	#  If the users are logging in with an MS-CHAP-Challenge
87
	#  attribute for authentication, the mschap module will find
88
	#  the MS-CHAP-Challenge attribute, and add 'Auth-Type := MS-CHAP'
89
	#  to the request, which will cause the server to then use
90
	#  the mschap module for authentication.
91
#	mschap
92
	#
93
	#  If you have a Cisco SIP server authenticating against
94
	#  FreeRADIUS, uncomment the following line, and the 'digest'
95
	#  line in the 'authenticate' section.
96
#	digest
97
 
98
	#
99
	#  Look for IPASS style 'realm/', and if not found, look for
100
	#  '@realm', and decide whether or not to proxy, based on
101
	#  that.
102
#	IPASS
103
 
104
	#
105
	#  If you are using multiple kinds of realms, you probably
106
	#  want to set "ignore_null = yes" for all of them.
107
	#  Otherwise, when the first style of realm doesn't match,
108
	#  the other styles won't be checked.
109
	#
110
#	suffix
111
#	ntdomain
112
 
113
	#
114
	#  This module takes care of EAP-MD5, EAP-TLS, and EAP-LEAP
115
	#  authentication.
116
	#
117
	#  It also sets the EAP-Type attribute in the request
118
	#  attribute list to the EAP type from the packet.
119
	#
120
	#  As of 2.0, the EAP module returns "ok" in the authorize stage
121
	#  for TTLS and PEAP.  In 1.x, it never returned "ok" here, so
122
	#  this change is compatible with older configurations.
123
	#
124
	#  The example below uses module failover to avoid querying all
125
	#  of the following modules if the EAP module returns "ok".
126
	#  Therefore, your LDAP and/or SQL servers will not be queried
127
	#  for the many packets that go back and forth to set up TTLS
128
	#  or PEAP.  The load on those servers will therefore be reduced.
129
	#
130
#	eap {
131
#		ok = return
132
#	}
133
 
134
	#
135
	#  Pull crypt'd passwords from /etc/passwd or /etc/shadow,
136
	#  using the system API's to get the password.  If you want
137
	#  to read /etc/passwd or /etc/shadow directly, see the
138
	#  passwd module in radiusd.conf.
139
	#
140
#	unix
141
 
142
	#
143
	#  Read the 'users' file
144
#	files
145
 
146
	#
147
	#  Look in an SQL database.  The schema of the database
148
	#  is meant to mirror the "users" file.
149
	#
150
	#  See "Authorization Queries" in sql.conf
151
	sql
152
	noresetcounter
153
	dailycounter
154
	monthlycounter
155
	#
156
	#  If you are using /etc/smbpasswd, and are also doing
157
	#  mschap authentication, the un-comment this line, and
158
	#  configure the 'etc_smbpasswd' module, above.
159
#	etc_smbpasswd
160
 
161
	#
162
	#  The ldap module will set Auth-Type to LDAP if it has not
163
	#  already been set
764 stephane 164
#	ldap {
165
#		fail = 1
166
#	}
383 franck 167
 
168
	#
169
	#  Enforce daily limits on time spent logged in.
170
#	daily
171
 
172
	#
173
	# Use the checkval module
174
#	checkval
175
 
176
	expiration
177
	logintime
178
 
179
	#
180
	#  If no other module has claimed responsibility for
181
	#  authentication, then try to use PAP.  This allows the
182
	#  other modules listed above to add a "known good" password
183
	#  to the request, and to do nothing else.  The PAP module
184
	#  will then see that password, and use it to do PAP
185
	#  authentication.
186
	#
187
	#  This module should be listed last, so that the other modules
188
	#  get a chance to set Auth-Type for themselves.
189
	#
190
#	pap
191
 
192
	#
193
	#  If "status_server = yes", then Status-Server messages are passed
194
	#  through the following section, and ONLY the following section.
195
	#  This permits you to do DB queries, for example.  If the modules
196
	#  listed here return "fail", then NO response is sent.
197
	#
198
#	Autz-Type Status-Server {
199
#
200
#	}
201
}
202
 
203
 
204
#  Authentication.
205
#
206
#
207
#  This section lists which modules are available for authentication.
208
#  Note that it does NOT mean 'try each module in order'.  It means
209
#  that a module from the 'authorize' section adds a configuration
210
#  attribute 'Auth-Type := FOO'.  That authentication type is then
211
#  used to pick the apropriate module from the list below.
212
#
213
 
214
#  In general, you SHOULD NOT set the Auth-Type attribute.  The server
215
#  will figure it out on its own, and will do the right thing.  The
216
#  most common side effect of erroneously setting the Auth-Type
217
#  attribute is that one authentication method will work, but the
218
#  others will not.
219
#
220
#  The common reasons to set the Auth-Type attribute by hand
221
#  is to either forcibly reject the user (Auth-Type := Reject),
222
#  or to or forcibly accept the user (Auth-Type := Accept).
223
#
224
#  Note that Auth-Type := Accept will NOT work with EAP.
225
#
226
#  Please do not put "unlang" configurations into the "authenticate"
227
#  section.  Put them in the "post-auth" section instead.  That's what
228
#  the post-auth section is for.
229
#
230
authenticate {
231
#	#
232
#	#  PAP authentication, when a back-end database listed
233
#	#  in the 'authorize' section supplies a password.  The
234
#	#  password can be clear-text, or encrypted.
235
#	Auth-Type PAP {
236
#		pap
237
#	}
238
#
239
#	#
240
#	#  Most people want CHAP authentication
241
#	#  A back-end database listed in the 'authorize' section
242
#	#  MUST supply a CLEAR TEXT password.  Encrypted passwords
243
#	#  won't work.
244
#	Auth-Type CHAP {
245
#		chap
246
#	}
247
#
248
#	#
249
#	#  MSCHAP authentication.
250
#	Auth-Type MS-CHAP {
251
#		mschap
252
#	}
253
#
254
#	#
255
#	#  If you have a Cisco SIP server authenticating against
256
#	#  FreeRADIUS, uncomment the following line, and the 'digest'
257
#	#  line in the 'authorize' section.
258
#	digest
259
#
260
#	#
261
#	#  Pluggable Authentication Modules.
262
#	pam
263
#
264
#	#
265
#	#  See 'man getpwent' for information on how the 'unix'
266
#	#  module checks the users password.  Note that packets
267
#	#  containing CHAP-Password attributes CANNOT be authenticated
268
#	#  against /etc/passwd!  See the FAQ for details.
269
#	#
270
#	unix
271
#
272
#	# Uncomment it if you want to use ldap for authentication
273
#	#
274
#	# Note that this means "check plain-text password against
275
#	# the ldap database", which means that EAP won't work,
276
#	# as it does not supply a plain-text password.
277
#	Auth-Type LDAP {
278
#		ldap
279
#	}
280
#
281
#	#
282
#	#  Allow EAP authentication.
283
#	eap
284
}
285
 
286
 
287
#
288
#  Pre-accounting.  Decide which accounting type to use.
289
#
290
preacct {
291
	preprocess
292
 
293
	#
294
	#  Ensure that we have a semi-unique identifier for every
295
	#  request, and many NAS boxes are broken.
296
#	acct_unique
297
 
298
	#
299
	#  Look for IPASS-style 'realm/', and if not found, look for
300
	#  '@realm', and decide whether or not to proxy, based on
301
	#  that.
302
	#
303
	#  Accounting requests are generally proxied to the same
304
	#  home server as authentication requests.
305
#	IPASS
306
#	suffix
307
#	ntdomain
308
 
309
	#
310
	#  Read the 'acct_users' file
311
#	files
312
}
313
 
314
#
315
#  Accounting.  Log the accounting data.
316
#
317
accounting {
318
	#
319
	#  Create a 'detail'ed log of the packets.
320
	#  Note that accounting requests which are proxied
321
	#  are also logged in the detail file.
322
#	detail
323
#	daily
324
 
325
	#  Update the wtmp file
326
	#
327
	#  If you don't use "radlast", you can delete this line.
328
#	unix
329
 
330
	#
331
	#  For Simultaneous-Use tracking.
332
	#
333
	#  Due to packet losses in the network, the data here
334
	#  may be incorrect.  There is little we can do about it.
335
#	radutmp
336
	sradutmp
337
 
338
	#  Return an address to the IP Pool when we see a stop record.
339
#	main_pool
340
 
341
	#
342
	#  Log traffic to an SQL database.
343
	#
344
	#  See "Accounting queries" in sql.conf
345
	sql
346
 
347
	#
348
	#  Instead of sending the query to the SQL server,
349
	#  write it into a log file.
350
	#
351
#	sql_log
352
 
353
	#  Cisco VoIP specific bulk accounting
354
#	pgsql-voip
355
 
356
	#  Filter attributes from the accounting response.
357
	attr_filter.accounting_response
358
 
359
	#
360
	#  See "Autz-Type Status-Server" for how this works.
361
	#
362
#	Acct-Type Status-Server {
363
#
364
#	}
365
}
366
 
367
 
368
#  Session database, used for checking Simultaneous-Use. Either the radutmp
369
#  or rlm_sql module can handle this.
370
#  The rlm_sql module is *much* faster
371
session {
372
#	radutmp
373
 
374
	#
375
	#  See "Simultaneous Use Checking Queries" in sql.conf
376
	sql
377
}
378
 
379
 
380
#  Post-Authentication
381
#  Once we KNOW that the user has been authenticated, there are
382
#  additional steps we can take.
383
post-auth {
384
	#  Get an address from the IP Pool.
385
#	main_pool
386
 
387
	#
388
	#  If you want to have a log of authentication replies,
389
	#  un-comment the following line, and the 'detail reply_log'
390
	#  section, above.
391
#	reply_log
392
 
393
	#
394
	#  After authenticating the user, do another SQL query.
395
	#
396
	#  See "Authentication Logging Queries" in sql.conf
397
#	sql
398
 
399
	#
400
	#  Instead of sending the query to the SQL server,
401
	#  write it into a log file.
402
	#
403
#	sql_log
404
 
405
	#
406
	#  Un-comment the following if you have set
407
	#  'edir_account_policy_check = yes' in the ldap module sub-section of
408
	#  the 'modules' section.
409
	#
410
#	ldap
411
 
412
#	exec
413
 
414
	#
415
	#  Access-Reject packets are sent through the REJECT sub-section of the
416
	#  post-auth section.
417
	#
418
	#  Add the ldap module name (or instance) if you have set
419
	#  'edir_account_policy_check = yes' in the ldap module configuration
420
	#
421
	Post-Auth-Type REJECT {
422
		attr_filter.access_reject
423
	}
424
}
425
 
426
#
427
#  When the server decides to proxy a request to a home server,
428
#  the proxied request is first passed through the pre-proxy
429
#  stage.  This stage can re-write the request, or decide to
430
#  cancel the proxy.
431
#
432
#  Only a few modules currently have this method.
433
#
434
pre-proxy {
435
#	attr_rewrite
436
 
437
	#  Uncomment the following line if you want to change attributes
438
	#  as defined in the preproxy_users file.
439
#	files
440
 
441
	#  Uncomment the following line if you want to filter requests
442
	#  sent to remote servers based on the rules defined in the
443
	#  'attrs.pre-proxy' file.
444
#	attr_filter.pre-proxy
445
 
446
	#  If you want to have a log of packets proxied to a home
447
	#  server, un-comment the following line, and the
448
	#  'detail pre_proxy_log' section, above.
449
#	pre_proxy_log
450
}
451
 
452
#
453
#  When the server receives a reply to a request it proxied
454
#  to a home server, the request may be massaged here, in the
455
#  post-proxy stage.
456
#
457
post-proxy {
458
 
459
	#  If you want to have a log of replies from a home server,
460
	#  un-comment the following line, and the 'detail post_proxy_log'
461
	#  section, above.
462
#	post_proxy_log
463
 
464
#	attr_rewrite
465
 
466
	#  Uncomment the following line if you want to filter replies from
467
	#  remote proxies based on the rules defined in the 'attrs' file.
468
#	attr_filter.post-proxy
469
 
470
	#
471
	#  If you are proxying LEAP, you MUST configure the EAP
472
	#  module, and you MUST list it here, in the post-proxy
473
	#  stage.
474
	#
475
	#  You MUST also use the 'nostrip' option in the 'realm'
476
	#  configuration.  Otherwise, the User-Name attribute
477
	#  in the proxied request will not match the user name
478
	#  hidden inside of the EAP packet, and the end server will
479
	#  reject the EAP request.
480
	#
481
#	eap
482
 
483
	#
484
	#  If the server tries to proxy a request and fails, then the
485
	#  request is processed through the modules in this section.
486
	#
487
	#  The main use of this section is to permit robust proxying
488
	#  of accounting packets.  The server can be configured to
489
	#  proxy accounting packets as part of normal processing.
490
	#  Then, if the home server goes down, accounting packets can
491
	#  be logged to a local "detail" file, for processing with
492
	#  radrelay.  When the home server comes back up, radrelay
493
	#  will read the detail file, and send the packets to the
494
	#  home server.
495
	#
496
	#  With this configuration, the server always responds to
497
	#  Accounting-Requests from the NAS, but only writes
498
	#  accounting packets to disk if the home server is down.
499
	#
500
#	Post-Proxy-Type Fail {
501
#			detail
502
#	}
503
 
504
}
505