Subversion Repositories ALCASAR

Rev

Rev 445 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

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