1radsecproxy.conf(5)                                        radsecproxy.conf(5)
2
3
4

NAME

6       radsecproxy.conf - Radsec proxy configuration file
7
8

DESCRIPTION

10       When  the proxy server starts, it will first check the command line ar‐
11       guments, and then read the  configuration  file.  Normally  radsecproxy
12       will  read  the  configuration  file /etc/radsecproxy.conf. The command
13       line -c option can be used to instead read an alternate file (see  rad‐
14       secproxy(8) for details).
15
16       If the configuration file can not be found, the proxy will exit with an
17       error message. Note that there is also an include facility so that  any
18       configuration  file  may  include  other configuration files. The proxy
19       will also exit on configuration errors.
20
21

CONFIGURATION SYNTAX

23       When the configuration file is processed, whitespace (spaces and  tabs)
24       are  generally  ignored. For each line, leading and trailing whitespace
25       are ignored.  A line is ignored if it is empty, only consists of white‐
26       space,  or if the first non-whitespace character is a #. The configura‐
27       tion is generally case insensitive, but in some cases the option values
28       (see below) are not.
29
30       There  are  two types of configuration structures than can be used. The
31       first and simplest are lines on the format option value.  That  is,  an
32       option  name, see below for a list of valid options, followed by white‐
33       space (at least one space or tab character), followed by a value.  Note
34       that  if the value contains whitespace, then it must be quoted using ""
35       or ''. Any whitespace in front of the option or after the value will be
36       ignored.
37
38       The  other  type  of  structure  is a block. A block spans at least two
39       lines, and has the format:
40
41              blocktype name {
42                   option value
43                   option value
44                   ...
45              }
46
47
48       That is, some blocktype, see below for a list of  the  different  block
49       types,  and  then  enclosed  in braces you have zero or more lines that
50       each have the previously described option value format. Different block
51       types have different rules for which options can be specified, they are
52       listed below. The rules regarding white space, comments and quotes  are
53       as above. Hence you may do things like:
54
55              blocktype name {
56              #    option value
57                  option "value with space"
58                  ...
59              }
60
61
62       Option  value characters can also be written in hex for options requir‐
63       ing a string type value. This is done by writing the character  %  fol‐
64       lowed  by  two hexadecimal digits. If a % is used without two following
65       hexadecimal digits, the % and the  following  characters  are  used  as
66       written. If you want to write a % and not use this decoding, you may of
67       course write % in hex; i.e., %25. As %00 would terminate a string, this
68       value  is  not  converted  in most cases, except when used with rewrite
69       statements or secrets.
70
71       Some options allow or require the use of regular  expressions,  denoted
72       as regex. The POSIX extended RE system is used, see re_format(7).
73
74       There is one special option that can be used both as a basic option and
75       inside all blocks. That is the option Include where the value specifies
76       files  to  be  included.  The value can be a single file, or it can use
77       normal shell globbing to specify multiple files, e.g.:
78
79              include /etc/radsecproxy.conf.d/*.conf
80
81       The files are sorted alphabetically. Included files are read in the or‐
82       der  they are specified, when reaching the end of a file, the next file
83       is read. When reaching the end of the last included file, the proxy re‐
84       turns  to  read  the  next  line following the Include option. Included
85       files may again include other files.
86
87

BASIC OPTIONS

89       The following basic options may be specified in the configuration file.
90       Note  that  blocktypes  and  options inside blocks are discussed later.
91       Note that none of these options are required, and indeed in many  cases
92       they  are  not  needed. Note that you should specify each at most once.
93       The behaviour with multiple occurrences is undefined.
94
95       PidFile file
96              The PidFile option specifies the name of a  file  to  which  the
97              process  id  (PID) will be written. This is overridden by the -i
98              command line option.  There is no default value for the  PidFile
99              option.
100
101       LogLevel 1-5
102              This  option  specifies the debug level. It must be set to 1, 2,
103              3, 4 or 5, where 1 logs only serious errors, and 5  logs  every‐
104              thing.  The  default  is 2 which logs errors, warnings and a few
105              informational messages. Note that the  command  line  option  -d
106              overrides this.
107
108       LogDestination (file|syslog)
109              This  specifies where the log messages should go. By default the
110              messages go to syslog with facility LOG_DAEMON. Using  this  op‐
111              tion you can specify another syslog facility, or you may specify
112              that logging should be to a particular file, not  using  syslog.
113              The    value    must    be    either    a    file    URL    like
114              file:///path/to/your/logfile.log or a syslog URL using the  syn‐
115              tax: x-syslog:///FACILITY where FACILITY must be one of LOG_DAE‐
116              MON, LOG_MAIL,  LOG_USER,  LOG_LOCAL0,  LOG_LOCAL1,  LOG_LOCAL2,
117              LOG_LOCAL3,  LOG_LOCAL4,  LOG_LOCAL5,  LOG_LOCAL6or  LOG_LOCAL7.
118              You may omit the facility from the URL to specify logging to the
119              default  facility, but this is not very useful since this is the
120              default log destination. Note that this option is ignored if  -f
121              is specified on the command line.
122
123       LogThreadId (on|off)
124              This  can  be set to on to include the thread-id in the log mes‐
125              sages (useful for debugging).
126
127
128       LogFullUsername (on|off)
129              This can be set to off to  only  log  the  realm  in  Access-Ac‐
130              cept/Reject log messages (for privacy).
131
132       LogMAC opt
133              The LogMAC option can be used to control if and how Calling-Sta‐
134              tion-Id (the users Ethernet MAC address) is being logged. It can
135              be  set  to  one  of  Static, Original, VendorHashed, VendorKey‐
136              Hashed, FullyHashed or FullyKeyHashed.  The  default  value  for
137              LogMAC is Original.
138
139              See radsecproxy.conf-example for details.
140
141       LogKey key
142              The LogKey option is used to specify the key to use when produc‐
143              ing HMAC's as an effect of specifying  VendorKeyHashed  or  Ful‐
144              lyKeyHashed for the LogMAC option.
145
146       FTicksReporting fticks
147              The FTicksReporting option is used to enable F-Ticks logging and
148              can be set to None, Basic or Full.  Its default value  is  None.
149              If FTicksReporting is set to anything other than None, note that
150              the default value for FTicksMAC needs FTicksKey to be set.
151
152              See radsecproxy.conf-example for details.
153
154       FTicksMAC opt
155              The FTicksMAC option has the same function as LogMAC for FTicks.
156              The   default  for  FTicksMAC  is  VendorKeyHashed  which  needs
157              FTicksKey to be set.
158
159              Before choosing any of Original,  FullyHashed  or  VendorHashed,
160              consider  the  implications  for user privacy when MAC addresses
161              are collected. How will the logs be stored, transferred and  ac‐
162              cessed?
163
164       FTicksKey key
165              The FTicksKey option has the same function as LogKey for Fticks.
166
167       FTicksSyslogFacility syslog
168              The  FTicksSyslogFacility  option is used to specify a dedicated
169              syslog facility for F-Ticks messages.  This  allows  for  easier
170              filtering of F-Ticks messages. If no FTicksSyslogFacility option
171              is given, F-Ticks messages are written to what  the  LogDestina‐
172              tion option specifies.
173
174              F-Ticks  messages  are always logged using the log level LOG_DE‐
175              BUG. Note that specifying a file in FTicksSyslogFacility  (using
176              the file:/// prefix) is not supported.
177
178       FTicksPrefix prefix
179              The  FTicksPrefix option is used to set the prefix printed in F-
180              Ticks messages. This allows for use of F-Ticks messages in  non-
181              eduroam  environments.   If  no FTicksPrefix option is given, it
182              defaults to the prefix used for eduroam (F-TICKS/eduroam/1.0).
183
184
185       ListenUDP (address|*)[:port]
186       ListenTCP (address|*)[:port]
187       ListenTLS (address|*)[:port]
188       ListenDTLS (address|*)[:port]
189              Listen for the address and port  for  the  respective  protocol.
190              Normally  the proxy will listen to the standard ports if config‐
191              ured to handle clients with the respective protocol. The default
192              ports  are  1812  for  UDP and TCP and 2083 for TLS and DTLS. On
193              most systems it will do this for all  of  the  system's  IP  ad‐
194              dresses  (both  IPv4  and IPv6). On some systems however, it may
195              respond to only IPv4 or only IPv6. To specify an alternate  port
196              you  may  use a value on the form *:port where port is any valid
197              port number. If you also want to specify a specific address  you
198              can  do  e.g.   192.168.1.1:1812 or [2001:db8::1]:1812. The port
199              may be omitted if you want the default one. Note that  you  must
200              use brackets around the IPv6 address. These options may be spec‐
201              ified multiple times to  listen  to  multiple  addresses  and/or
202              ports for each protocol.
203
204       SourceUDP (address|*)[:port]
205       SourceTCP (address|*)[:port]
206       SourceTLS (address|*)[:port]
207       SourceDTLS (address|*)[:port]
208              This  can  be  used to specify source address and/or source port
209              that the proxy will use for connecting to clients to  send  mes‐
210              sages  (e.g.  Access  Request). The same syntax as for Listen...
211              applies.
212
213       TTLAttribute (attr|vendor:attr)
214              This can be used to  change  the  default  TTL  attribute.  Only
215              change this if you know what you are doing. The syntax is either
216              a numerical value denoting the TTL attribute, or  two  numerical
217              values separated by column specifying a vendor attribute.
218
219       AddTTL 1-255
220              If  a  TTL  attribute  is  present, the proxy will decrement the
221              value and discard the message if zero. Normally the  proxy  does
222              nothing  if  no  TTL attribute is present. If you use the AddTTL
223              option with a value 1-255, the proxy  will,  when  forwarding  a
224              message with no TTL attribute, add one with the specified value.
225              Note that this option can also be specified for a  client/server
226              which  will  override  this setting when forwarding a message to
227              that client/server.
228
229       LoopPrevention (on|off)
230              When this is enabled (on), a request will never  be  sent  to  a
231              server  named the same as the client it was received from. I.e.,
232              the names of the client block and the server block are compared.
233              Note  that  this only gives limited protection against loops. It
234              can be used as a basic option and inside server blocks where  it
235              overrides the basic setting.
236
237       IPv4Only (on|off)
238       IPv6Only (on|off)
239              Enabling IPv4Only or IPv6Only (on) makes radsecproxy resolve DNS
240              names to the corresponding address  family  only,  and  not  the
241              other. This is done for both clients and servers. At most one of
242              IPv4Only and IPv6Only can be enabled.  Note  that  this  can  be
243              overridden in client and server blocks, see below.
244
245       Include file
246              This  is  not a normal configuration option; it can be specified
247              multiple times.  It can both be used as a basic option  and  in‐
248              side  blocks.  For  the  full description, see the configuration
249              syntax section above.
250
251

BLOCKS

253       There are five types of blocks, they are client, server, realm, tls and
254       rewrite.  At least one instance of each of client and realm is required
255       for the proxy to do anything useful, and it will exit if none are  con‐
256       figured.  The  tls block is required if at least one TLS/DTLS client or
257       server is configured. Note that there can be multiple blocks  for  each
258       type.  For  each  type, the block names should be unique. The behaviour
259       with multiple occurrences of the same name for the same block  type  is
260       undefined.  Also  note  that  some  block option values may reference a
261       block by name, in which case the block name must be previously defined.
262       Hence the order of the blocks may be significant.
263
264

CLIENT BLOCK

266       client (name|fqdn|(address[/length])) {
267            ...
268       }
269
270       The client block is used to configure a client. That is, tell the proxy
271       about a client, and what parameters should be used for that client. The
272       name of the client block must (with one exception, see below) be either
273       the IP address (IPv4 or IPv6) of the client,  an  IP  prefix  (IPv4  or
274       IPv6)  on the form IpAddress/PrefixLength, or a domain name (FQDN). The
275       way an FQDN is resolved into an IP address may be influenced by the use
276       of  the IPv4Only and IPv6Only options. Note that literal IPv6 addresses
277       must be enclosed in brackets.
278
279       If a domain name is specified, then this will be  resolved  immediately
280       to  all  the addresses associated with the name, and the proxy will not
281       care about any possible DNS changes that might occur later. Hence there
282       is  no dependency on DNS after startup. However, if the name can not be
283       resolved, startup will fail.
284
285       When some client later sends a request to the  proxy,  the  proxy  will
286       look  at the IP address the request comes from, and then go through all
287       the addresses of each of the configured clients (in the order they  are
288       defined),  to determine which (if any) of the clients this is. When us‐
289       ing the IpAddress/PrefixLength form, this might  mask  clients  defined
290       later, which then will never be matched.
291
292       In  the case of TLS/DTLS, the name of the client must match the FQDN or
293       IP address in the client certificate (CN or SubectAltName:DNS  or  Sub‐
294       jectAltName:IP  respectively).  Note that this is not required when the
295       client name is an IP prefix. If overlapping clients  are  defined  (see
296       section  above), they will be searched for matching MatchCertificateAt‐
297       tribute, but they must reference the same tls block.
298
299       The allowed options in a client block are:
300
301       Host (fqdn|(address[/length]))
302              Alternatively of specifying the FQDN or  address  in  the  block
303              name,   the  host option may be used. In that case, the value of
304              the host option is used as described above, while  the  name  of
305              the block is only used as a descriptive name for the administra‐
306              tor. The host option may be used multiple times, and  can  be  a
307              mix of addresses, FQDNs and prefixes.
308
309       IPv4Only (on|off)
310       IPv6Only (on|off)
311              Enabling IPv4Only or IPv6Only (on) makes radsecproxy resolve DNS
312              names to the corresponding address  family  only,  and  not  the
313              other. At most one of IPv4Only and IPv6Only can be enabled. Note
314              that this will override the global option for this client.
315
316       Type type
317              Specify the type (protocol) of the client. Available options are
318              UDP, TCP, TLS and DTLS.
319
320       Secret secret
321              Use secret as the shared RADIUS key with this client. If the se‐
322              cret contains whitespace, the value must be quoted. This  option
323              is  optional  for  TLS/DTLS and if omitted will default to "rad‐
324              sec". (Note that using a secret other than "radsec" for TLS is a
325              violation of the standard (RFC 6614) and that the proposed stan‐
326              dard for DTLS stipulates that the secret must be "radius/dtls".)
327
328       TLS tls
329              For a TLS/DTLS client you may also specify the tls  option.  The
330              option value must be the name of a previously defined TLS block.
331              If this option is not specified, the TLS block with the name de‐
332              faultClient  or default will be used if defined (in that order).
333              If the specified TLS block name does not exist, or the option is
334              not  specified  and  none  of the defaults exist, the proxy will
335              exit with an error.
336
337       CertificateNameCheck (on|off)
338              For a TLS/DTLS client, disable the default behaviour of matching
339              CN  or  SubjectAltName  against the specified hostname or IP ad‐
340              dress.
341
342       MatchCertificateAttribute CN:/regexp/
343       MatchCertificateAttribute SubjectAltName:DNS:/regexp/
344       MatchCertificateAttribute SubjectAltName:URI:/regexp/
345       MatchCertificateAttribute SubjectAltName:IP:address
346       MatchCertificateAttribute SubjectAltName:rID:oid
347       MatchCertificateAttribute SubjectAltName:otherName:oid:/regexp/
348              Perform additional validation of  certificate  attributes.  Cur‐
349              rently  matching  of  CN  and SubjectAltName types URI, DNS, IP,
350              rID, and otherName is supported. If  specified  multiple  times,
351              all terms must match for the certificate to be considered valid.
352
353       DuplicateInterval seconds
354              Specify  for how many seconds duplicate checking should be done.
355              If a proxy receives a new request within a few seconds of a pre‐
356              vious  one,  it may be treated the same if from the same client,
357              with the same authenticator etc. The proxy will then ignore  the
358              new request (if it is still processing the previous one), or re‐
359              turned a copy of the previous reply.
360
361       AddTTL 1-255
362              The AddTTL option has the same meaning as the option used in the
363              basic  config.   See  the BASIC OPTIONS section for details. Any
364              value configured here overrides the basic one when sending  mes‐
365              sages to this client.
366
367       TCPKeepalive (on|off)
368              Enable TCP keepalive (default is off). If keepalives are not an‐
369              swered within 30s the connection is considered lost.
370
371       FticksVISCOUNTRY cc
372              Sets this client to be eligible to F-Ticks logging as defined by
373              the  FTicksReporting  basic option, and specifies the country to
374              be reported.  The country should be specified by the  two-letter
375              country code.
376
377       FticksVISINST institution
378              Set the institution to report in F-Ticks logging. If this option
379              is omitted, the name of the client block is used.
380
381       Rewrite rewrite
382              This option is deprecated. Use rewriteIn instead.
383
384       RewriteIn rewrite
385       RewriteOut rewrite
386              Apply the operations in the specified rewrite block on  incoming
387              (request)  or  outgoing  (response)  messages  from this client.
388              Rewriting incoming messages is done before, outgoing after other
389              processing.  If  the  RewriteIn  is  not configured, the rewrite
390              blocks defaultClient or default will be applied if  defined.  No
391              default blocks are applied for RewriteOut.
392
393       RewriteAttribute User-Name:/regex/replace/
394              Rewrite  the User-Name attribute in a client request for the re‐
395              quest forwarded by the proxy. The User-Name attribute is written
396              back  to the original value if a matching response is later sent
397              back to the client. Example usage:
398
399              RewriteAttribute User-Name:/^(.*)@local$/\1@example.com/
400
401
402

SERVER BLOCK

404       server (name|((fqdn|address)[:port])) {
405            ...
406       }
407
408       The server block is used to configure a server. That is, tell the proxy
409       about  a  server, and what parameters should be used when communicating
410       with that server.  The name of the server block must (with  one  excep‐
411       tion, see below) be either the IP address (IPv4 or IPv6) of the server,
412       or a domain name (FQDN). If a domain name is specified, then this  will
413       be  resolved immediately to all the addresses associated with the name,
414       and the proxy will not care about any possible DNS changes  that  might
415       occur  later. Hence there is no dependency on DNS after startup. If the
416       domain name resolves to multiple addresses, then for UDP/DTLS the first
417       address is used. For TCP/TLS, the proxy will loop through the addresses
418       until it can connect to one of them. The way an FQDN is  resolved  into
419       an IP address may be influenced by the use of the IPv4Only and IPv6Only
420       options.
421
422       In the case of TLS/DTLS, the name of the server must match the FQDN  or
423       IP address in the server certificate.
424
425       Note that the fqdn or address may include a port number (separated with
426       a column). This port number will then override the default  port  or  a
427       port  option in the server block. Also note that literal IPv6 addresses
428       must be enclosed in brackets.
429
430       The allowed options in a server block are:
431
432       Host (fqdn|address)[:port]
433              Alternatively of specifying the FQDN or  address  in  the  block
434              name the host option may be used. In that case, the value of the
435              host option is used as described above, while the  name  of  the
436              block  is only used as a descriptive name for the administrator.
437              Note that multiple host options may be used. This will  then  be
438              treated  as  multiple  names/addresses for the same server. When
439              initiating a TCP/TLS connection, all addresses of all names  may
440              be  attempted,  but  there  is no failover between the different
441              host values. For failover use separate server blocks.
442
443       Port port
444              Specify the port (UDP/TCP) to connect to. If  omitted,  UDP  and
445              TCP  will  default  to  1812  while TLS and DTLS will default to
446              2083.
447
448       Source (address|*)[:port]
449              Specify the source address and/or port to use for  this  server.
450              See Source...  options above.
451
452       DynamicLookupCommand command
453              Execute  the command to dynamically configure a server. The exe‐
454              cutable file should be given with full path and will be  invoked
455              with  the  name  of the realm as its first and only argument. It
456              should either print a valid server {...} option  on  stdout  and
457              exit  with a code of 0 or print nothing and exit with a non-zero
458              exit code.
459
460              If the command exited with 0 an provided a valid server  config,
461              it  will  be  combined with the statements in this server block,
462              with the values returned by the command taking preference.
463
464              An example of a shell script resolving the DNS NAPTR records for
465              the  realm  and then the SRV records for each NAPTR matching 'x-
466              eduroam:radius.tls' is provided in tools/naptr-eduroam.sh.
467
468       StatusServer (on|off|minimal|auto)
469              Enable the use of status-server messages for  this  server  (de‐
470              fault  off).   If  statusserver  is enabled (on), the proxy will
471              send regular status-server messages to the server to verify that
472              it is alive. Status tracking of the server will solely depend on
473              status-server message and ignore lost requests. This should only
474              be  enabled  if  the server supports it. With the option minimal
475              status-server messages are only sent when regular requests  have
476              been lost and no other replies have been received.
477
478              The  option  auto  tries to detect whether the other server sup‐
479              ports status-server. If so, status-server messages  are  enabled
480              in minimal mode.
481
482       RetryCount count
483              Set  how  many times the proxy should retry sending a request to
484              the server. Default is 2 retries.  Please note that  Radius  re‐
485              tries are normally done by the NAS.
486
487       RetryInterfval interval
488              Set the interval between each retry. Default is 5s.
489
490       Rewrite rewrite
491              This option is deprecated. Use rewriteIn instead.
492
493       RewriteOut rewrite
494       RewriteIn rewrite
495              Apply  the operations in the specified rewrite block on outgoing
496              (request) or incoming (response) messages to/from  this  server.
497              Rewriting outgoing messages is done after, incoming before other
498              processing. If the RewriteIn  is  not  configured,  the  rewrite
499              blocks  defaultServer  or default will be applied if defined. No
500              default blocks are applied for RewriteOut.
501
502       LoopPrevention (on|off)
503              This overrides the global LoopPrevention option for this server.
504              See section BASIC OPTIONS for details on this option.
505
506       BlockingStartup (on|off)
507              Start  the dynamic server in blocking mode (default off), treat‐
508              ing it as if it was already connected and  enqueue  requests  to
509              this  server.  Queued requests will be sent out when the connec‐
510              tion is established. If however the dynamic lookup or  the  con‐
511              nection  fails, the queued requests will be lost.  (This is only
512              considered for dynamic lookup servers. Ie when DynamicLookupCom‐
513              mand  is specified) Warning: when the dynamic lookup and connec‐
514              tion process is slow, this wil block the  respective  realm  for
515              that time.
516
517       The meaning and syntax of the following options are exactly the same as
518       for the client block. The details are not repeated here.  Please  refer
519       to the definitions in the CLIENT BLOCK section.
520
521       IPv4Only (on|off)
522       IPv6Only (on|off)
523       Type type
524       Secret secret
525       TLS tls
526       CertificateNameCheck (on|off)
527       MatchCertificateAttribute ...
528       AddTTL 1-255
529       TCPKeepalive (on|off)
530
531
532

REALM BLOCK

534       realm (*|realm|/regex/) {
535            ...
536       }
537
538       When  the  proxy  receives  an Access-Request it needs to figure out to
539       which server it should be forwarded. This is done  by  looking  at  the
540       Username  attribute in the request, and matching that against the names
541       of the defined realm blocks. The proxy will match against the blocks in
542       the order they are specified, using the first match if any. If no realm
543       matches, the proxy will simply ignore the  request.  Each  realm  block
544       specifies what the server should do when a match is found.
545
546       The allowed options in a realm block are:
547
548       Server server
549       AccountingServer server
550              Specify  the  server  to which requests for this realm should be
551              forwarded.  server references a previously defined server  block
552              (see the SERVER BLOCK section). Each server and accountingServer
553              can be specified multiple times, or omitted  completely.  If  no
554              server  is  configured,  the proxy will deny all Access-Requests
555              for this realm. If no accountingServer is configured, the  proxy
556              will silently ignore all Accounting-Requests for this realm. See
557              the SERVER SELECTION section below for details.
558
559       AccountingResponse (on|off)
560              Enable sending Accounting-Response instead of ignoring  Account‐
561              ing-Requests when no accoutingServer are configured.
562
563       ReplyMessage message
564              Specify  a message to be sent back to the client if a Access-Re‐
565              quest is denied because no server are configured.
566
567
568   REALM BLOCK NAMES AND MATCHING
569       In the general case the proxy will look for a @ in the username  attri‐
570       bute, and try to do an exact, case insensitive match between what comes
571       after the @ and the name of the realm block. So if you  get  a  request
572       with  the  attribute  value  anonymous@example.com,  the  proxy will go
573       through the realm names in the order they are specified, looking for  a
574       realm block named example.com.
575
576       There  are  two exceptions to this, one is the realm name * which means
577       match everything. Hence if you have a realm block named *, then it will
578       always  match.  This should then be the last realm block defined, since
579       any blocks after this would never be checked. This is useful for having
580       a default.
581
582       The  other  exception is regular expression matching. If the realm name
583       starts with a /, the name is treated as an regular expression.  A  case
584       insensitive  regexp  match  will  then be done using this regexp on the
585       value of the entire Username attribute. Optionally you may also have  a
586       trailing / after the regexp.  So as an example, if you want to use reg‐
587       exp matching the domain example.com you could have a realm block  named
588       /@example\.com$/.  If  you want to match all domains under the .com top
589       domain, you could do /@.*\.com$/. Note that since the matching is  done
590       on   the   entire   attribute  value,  you  can  also  use  rules  like
591       /^[a-k].*@example\.com$/ to get some of the users in this domain to use
592       one  server,  while other users could be matched by another realm block
593       and use another server.
594
595
596   SERVER SELECTION
597       Normally requests will be forwarded to the first server option defined.
598       If  there  are multiple server options, the proxy will do fail-over and
599       use the second server if the first is down. If the two first are  down,
600       it  will  try the third etc. If the first server comes back up, it will
601       go back to using that one.  Detection of servers being up  or  down  is
602       based  on  the  use of StatusServer (if enabled), and that TCP/TLS/DTLS
603       connections are up. Otherwise unanswered requests are  used  to  detect
604       unresponsive servers. AccountingServers are treated the same, but inde‐
605       pendently of the other servers.
606
607       If there is no Server option, the proxy will if ReplyMessage is  speci‐
608       fied,  reply back to the client with an Access Reject message. The mes‐
609       sage contains a replyMessage attribute with the value as  specified  by
610       the  ReplyMessage  option.  Note  that this is different from having no
611       match since then the request is simply ignored.  This can  be  used  to
612       catch all undefined sub-domains or even all undefined realms by config‐
613       uring either a regex match like /@.*\.example\.com/ or the realm * with
614       no  server  option.  Another use-case is to block a specific pattern in
615       the username or realm part using  a regex.
616
617       If there is no AccountingServer option,  the  proxy  will  normally  do
618       nothing, ignoring accounting requests. If instead AccountingResponse is
619       set to on, the proxy will log some of the  accounting  information  and
620       send  an  Accounting-Response back. This stops clients from retransmit‐
621       ting Accounting-Request messages when a realm has  no  accountingServer
622       configured.
623
624

TLS BLOCK

626       tls name {
627            ...
628       }
629
630       The TLS block specifies TLS configuration options and you need at least
631       one of these if you have clients or servers  using  TLS/DTLS.  As  dis‐
632       cussed  in the client and server block descriptions, a client or server
633       block may reference a particular TLS block by name. There are also how‐
634       ever  the  special  TLS block names default, defaultClient and default‐
635       Server which are used as defaults if the client or  server  block  does
636       not  reference  a TLS block. Also note that a TLS block must be defined
637       before the client or server block that would use it. If  you  want  the
638       same  TLS  configuration for all TLS/DTLS clients and servers, you need
639       just a single tls block named default, and the client and servers  need
640       not  refer  to  it. If you want all TLS/DTLS clients to use one config,
641       and all TLS/DTLS servers to use another, then you would  be  fine  only
642       defining  two  TLS blocks named defaultClient and defaultServer. If you
643       want different clients (or different servers) to have different TLS pa‐
644       rameters,  then  you  may  need  to  create other TLS blocks with other
645       names, and reference those from the client or server definitions.
646
647       As both clients and servers need to present and verify  a  certificate,
648       both  a  certificate  as  well  as a CA to verify the peers certificate
649       must be configured.
650
651       The allowed options in a tls block are:
652
653       CACertificateFile file
654              The CA certificate file used to verify the peers certificate.
655
656       CACertificatePath path
657              The path to search for CA or intermediate certificates.
658
659       CertificateFile file
660              The server certificate this proxy will use. The  file  may  also
661              contain a certificate chain.
662
663       CertificateKeyFile file
664              The  private-key  file  for  the server certificate specified in
665              CACertificateFile.
666
667       CertificateKeyPassword password
668              The password to decrypt the private-key.
669
670       PolicyOID oid
671              Require the peers certificate to adhere to the policy  specified
672              by  oid.  When specified multiple times at least one policy must
673              be valid in the peer certificate.
674
675       CRLCheck (on|off)
676              Enable checking peer certificate against the CRL (default off).
677              Note that radsecproxy does not fetch the CRLs itself.  This  has
678              to be done separately, e.g. with fetch-crl(8)
679
680       CacheExpiry seconds
681              Specify  how  many  seconds the CA and CRL information should be
682              cached. By default, the CA and CRL are  loaded  at  startup  and
683              cached  indefinetely.  After the configured time, the CA CRL are
684              re-read. Alternatively, reloading the CA and CRL  can  be  trig‐
685              gered  by  sending a SIGHUP to the radsecproxy process. This op‐
686              tion may be set to zero to disable caching.
687
688       CipherList ciphers
689              Specify the list of accepted ciphers. See openssl-ciphers(1).
690
691       CipherSuites ciphersuites
692              Specify the ciphersuites to be used for TLS1.3. See  openssl-ci‐
693              phers(1).
694              Note this requires openssl 1.1.1
695
696       TlsVersion ( version | minversion:maxversion )
697       DtlsVersion ( version | minversion:maxversion )
698              Specify the TLS/DTLS protocol version to be used.
699              Specify  the  range of allowed protocol versions between minver‐
700              sion and maxversion (inclusive). If either is left out, any ver‐
701              sion  up  to,  or  starting  from  this version is allowed. E.g.
702              "TLS1_2:" will allow TLSv1.2 or later.
703              Currently supported  values  are  SSL3,TLS1,TLS1_1,TLS1_2,TLS1_3
704              for TLS and DTLS1,DTLS1_1 for DTLS.
705
706       DhFile file
707              DH parameter file to use. See openssl-dhparam(1)
708
709
710

REWRITE BLOCK

712       rewrite name {
713            ...
714       }
715
716       The  rewrite block specifies rules that may rewrite RADIUS messages. It
717       can be used to add, remove and modify specific attributes from messages
718       received  from  and  sent  to  clients and servers. As discussed in the
719       client and server block descriptions, a client or server block may ref‐
720       erence  a  particular rewrite block by name. There are however also the
721       special rewrite block names default,  defaultClient  and  defaultServer
722       which  are used as defaults if the client or server block does not ref‐
723       erence a block. Also note that a rewrite block must be  defined  before
724       the  client or server block that would use it. If you want the same re‐
725       write rules for input from all clients and servers,  you  need  just  a
726       single rewrite block named default, and the client and servers need not
727       refer to it. If you want all clients to use one config, and all servers
728       to use another, then you would be fine only defining two rewrite blocks
729       named defaultClient and defaultServer. Note  that  these  defaults  are
730       only  used  for rewrite on input. No rewriting is done on output unless
731       explicitly specified using the RewriteOut option.
732
733       The rewrite actions are performed in this sequence:
734              1. RemoveAttribute (or WhitelistAttribute)
735              2. ModifyAttribute
736              3. SupplementAttribute
737              4. AddAttribute
738
739       All options can be specified multiple times. The allowed options  in  a
740       rewrite block are:
741
742       AddAttribute attribute:value
743              Add  an attribute to the radius message and set it to value. The
744              attribute must be specified using the  numerical  attribute  id.
745              The  value can either be numerical, a string, or a hex value. If
746              the value starts with a number, it is interpreted as a 32bit un‐
747              signed  integer.   Use the ' character at the start of the value
748              to force string interpretation. When using hex value, it is rec‐
749              ommended  to also lead with ' to avoid unintended numeric inter‐
750              pretation. See the CONFIGURATION SYNTAX section for further  de‐
751              tails.
752
753       AddVendorAttribute vendor:subattribute:value
754              Add  a vendor attribute to the radius message, specified by ven‐
755              dor and subattribute. Both vendor and subattribute must be spec‐
756              ified  as  numerical  values. The format of value is the same as
757              for addAttribute above.
758
759       SupplementAttribute attribute:value
760              Add an attribute to the radius message and set it to value, only
761              if the  attribute is not yet present on the message.  The format
762              of value is the same as for addAttribute above.
763
764       SupplementVendorAttribute vendor:subattribute:value
765              Add a vendor attribute to the radius message only if the  subat‐
766              tribute  of  this  vendor is not yet present on the message. The
767              format of is the same as for addVendorAttribute above.
768
769       ModifyAttribute attribute:/regex/replace/
770              Modify the given attribute using the regex replace  pattern.  As
771              above, attribute must be specified by a numerical value. Example
772              usage:
773
774              modifyAttribute 1:/^(.*)@local$/\1@example.com/
775
776       ModifyVendorAttribute vendor:subattribute:/regex/replace/
777              Modify the given subattribute of given vendor  using  the  regex
778              replace  pattern.   Other than the added vendor, the same syntax
779              as for ModifyAttribute applies.
780
781       RemoveAttribute attribute
782              Remove all attributes with the given id.
783
784       RemoveVendorAttribute vendor[:subattribute]
785              Remove all vendor attributes that match  the  given  vendor  and
786              subattribute.  If  the  subattribute  is omitted, all attributes
787              with the given vendor id are removed.
788
789       WhitelistMode (on|off)
790              Enable whitelist mode. All attributes  except  those  configured
791              with  WhitelistAttribute or WhitelistVendorAttribute will be re‐
792              moved.  While whitelist mode is active, RemoveAttribute and  Re‐
793              moveVendorAttribute statements are ignored.
794
795       WhitelistAttribute attribute
796              Do not remove attributes with the given id when WhitelistMode is
797              on.  Ignored otherwise.
798
799       WhitelistVendorAttribute vendor[:subattribute]
800              Do not remove vendor attributes that match the given vendor  and
801              subattribute when WhitelistMode is on. Ignored otherwise.
802
803              If the subattribute is omitted, the complete vendor attribute is
804              whitelisted. Otherwise only the specified subattribute  is  kept
805              but all other subattributes are removed.
806
807

SEE ALSO

809       radsecproxy(8)
810
811
812
813radsecproxy 1.9.0                 2021-05-28               radsecproxy.conf(5)
Impressum