Index Index for
Section 5
Index Alphabetical
listing for E
Bottom of page Bottom of
page

ENGINE.CONFIG(5)

NAME

engine.config - RADIUS Local Authorization Server

SYNOPSIS

../raddb/engine.config

DESCRIPTION

The engine.config file resides in the Interlink AAA Server configuration directory (named .../raddb somewhere). It contains keyword-value entries, one-per-line, which allow the user to override compiled-in default values in the Interlink AAA Server. The engine.config file may be used for performance tuning, debugging or specifying of defaults which would otherwise require code changes and recompilation of the Interlink AAA Server.

FILE SYNTAX

Comments are indicated by leading pound sign ('#') characters. All such comment lines are ignored, as are lines entirely made up of blanks. All lines are counted for the purpose of reporting errors, warnings, or changes. Each line in the engine.config configuration file is formatted as a <variable> = <value> tuple, that is: default_reply_holdtime = 6 even when that format isn't very appropriate. A hostname prefix (such as is used in the clients(5) file) also may be allowed. For example: radserver1.myisp.net/default_reply_holdtime = 6 radserver2.myisp.net/default_reply_holdtime = 0 Note: The hostname here is the hostname returned by the hostname(1) command, not the fully-qualified DNS name. Note: processing of this file terminates when "end" is encountered. Note: Any whitespace characters (blanks and tabs) surrounding the equal sign ("=") character are ignored, as is leading whitespace. Trailing whitespace MAY be significant! Most changes to configuration values are reported. The old and new values are reported, although not necessarily in a way that can be used to feed back into the engine.config file itself. The engine.config file is read in during initialization time, and whenever the server receives an INT or HUP signal. The engine.config file has a maximum input line length of 255 characters. NO checking is done to insure that a configuration statement has exceeded this limit.

FUNCTIONAL GROUPING OF FEATURES

The following items are useful for general server performance tuning: · default_reply_holdtime · global_acct_q.limit · global_auth_q.limit The following items are useful for configuration specific performance tuning (i.e., UNIX passwords, Kerberos, etc.): · aatv.proc_max The following items are useful for responding to network faults, DNS problems, and other issues outside the direct control of the server operator: · aatv.proc_max · dns_address_aging · dns_address_window The following items are useful for tracing the behaviour of the server in order to determine where an external fault might lie: · log_forwarding · packet_log · reply_check The following items are useful for diagnosing load related issues with the server by providing additional information using the radcheck(8) command: · radcheck=+packets · radcheck=+queues

DETAILED DESCRIPTION OF CONFIGURATION ITEMS

Configuration Item Related Config Example aatv.direct none aatv.direct=FILE Override the compiled in type of an AATV to be of type AA_DIRECT. This is VERY dangerous, especially for socket type AATVs, or AATVs that depend on the forked environment to be "reset" for every fork. But, it is useful for debugging some AA_FORK type AATVs or even AA_FREPLY type AATVs without disabling forking in the server with the "-s" option. Configuration Item Related Config Example aatv.forking none aatv.forking=UNIX-PW Override the compiled in type of an AATV to be of type AA_FORK. This is VERY dangerous, especially for AA_SOCKET or AA_DIRECT type AATVs that depend on sharing the address space with the main process. Configuration Item Related Config Example aatv.forkreply none aatv.forkreply=MKERB aatv.forkreply=AKERB aatv.forkreply=TAC_PLUS Override the compiled in type of an AATV to be of type AA_FREPLY. This is VERY dangerous, especially for socket type AATVs, or AATVs that depend on the forked environment to be "reset" for every fork. This is useful for converting an AA_FORK type AATV into an AA_FREPLY type AATV for testing or addtional error messages being returned to the user (i.e., convert the AKERB or MKERB AATVs from type AA_FORK to AA_FREPLY to pass error messages back to the NAS/user or client RADIUS server). Configuration Item Related Config Example aatv.socket none none Override the compiled in type of an AATV to be of type AA_SOCKET. This is VERY dangerous, as most of the socket type AATVs have a socket in the AATV header and this doesn't do anything to put a socket there. This was included for completeness, not because it had any useful purpose. Configuration Item Related Config Example aatv.proc_max aatv.proc_max=UNIX-PW 8 none - See also "radcheck = +queues" aatv.proc_max=AKERB 8 Set the maximum simultaneous number of processes for an AA_FORK or AA_FREPLY type AATV. This value is normally compiled into the header of a forking type AATV. This is a performance enhancing feature intended to prevent a UNIX platform from being consumed by too many simultaneously forked processes. The default value of zero means that NO maximum is applied. When a maximum value is set, the AAA server keeps track of the number of outstanding child processes for the specified AATV. When that limit is exceeded, the authentication (or accounting) request is queued on the AATV until the current number of child processes drops below the maximum. NOTE: an authentication or accounting request CAN time-out from this state if the child processes take too long to respond! Setting this value to one allows only one simultaneous child process at a time (for the specified AATV), which may solve certain timing issues involving AATVs that communicate with external databases, etc., while still allowing the normal AAA engine functions of duplicate detection, queueing and timeouts to occur (i.e., try using this first instead of 'aatv.direct' on a forking type AATV). Information suitable for tailoring this value may be found from the radcheck(8) command. Each forking-type AATV is listed by radcheck(8) one per line. Tailoring of this value should be influenced by the "total" and "holding" values reported on a per-request basis. Configuration Item Related Config Example avpair_checking avpair_checking=on none - Server needs to be compiled with AVPAIR_CHECKING enabled avpair_checking=off This is a feature to assist developers. It enables a simple check of each internal attribute value pair in many circumstances throughout the Interlink AAA Server. If a corrupted attribute value pair is detected, the server crashes with a core dump. See also the "cwd" configuration item and version prefixing. Configuration Item Related Config Example default_reply_holdtime default_reply_holdtime=0 "clients" file "reply_holdtime = <seconds>" See also the TTL and TTL_SLICE AATVs for related configuration options. default_reply_holdtime=6 Specify the number of seconds to hold on to a request after it has been replied to by the REPLY AATV in the finite state machine (FSM) table. This should be two times the default retransmission period of the NASes involved. This value is applied if no 'reply_holdtime' is specified for a particular NAS client. This does NOT apply to packets that are forwarded to a client in the clients(5) file. A value of zero invokes special behaviour whereby the REPLY AATV does NOT change the hold time for a request. This would cause all received authentication or accounting requests to be held for the full TTL (time-to-live), no matter if the request took a short time to process before being replied to. NOTE: Using the special value of zero, or using a hold time greatly in excess of the retransmission policy of a NAS may cause the authentication and accounting queues to grow too large. See 'global_acct_q.limit' and 'global_auth_q.limit' below. The TTL AATV and TIMEOUT AATVs may be used to modify the TTL of a request. The default TTL of a received request is 30 seconds. The TTL of a request is normally reset to the ttlslice value when a duplicate request is received, except after the the request has been replied to. The TTL_SLICE AATV may be used to reset the default ttlslice value. Tailoring of this value should be influenced by the "total" and "holding" values reported on a per-request basis. Configuration Item Related Config Example default_retry_limit default_retry_limit=8 See also 'default_seqch_limit', and the AATVs RETRY_LIMIT, SEQCH_LIMIT, FAIL and WAIT. default_retry_limit=0 Limit the maximum number of retransmissions allowed before a RETRY event occurs. A RETRY event is similar to a TIMEOUT event and should be caught by the built-in (default) FSM table. If the value is zero, the default, then no limits are imposed. The purpose of this is to catch an authentication request and perform some action when a certain number of retransmissions from a NAS occur. In particular, it may be useful to have a primary authentication server deny access (using the FAIL AATV) before a backup server starts to authenticate, allowing the backup server to backup just the primary and not the whole AAA system. Configuration Item Related Config Example default_seqch_limit See above default_seqch_limit=3 default_seqch_limit=0 Consider reply-vector and reply-id changes when counting retransmissions. When the limit is exceeded, cause a RETRY event to occur on the request which should be handled by the built-in (default) FSM table. Configuration Item Related Config Example dns_address_aging dns_address_aging=5400 dns_address_window - See also 'dns_refresh_floor' and 'dns_refresh_window' The default value is one hour. DNS entries in the clients(5) file are refreshed periodically. There is a designed in randomness to the aging process so that all the client entries don't expire at once. The 'dns_address_aging' value is used to set the base-value, to which zero, 15, 30 or 45 minutes is added. Configuration Item Related Config Example dns_address_window dns_address_window=300 dns_address_aging - See also 'dns_refresh_floor' and 'dns_refresh_window' The default value is 60 seconds. When a DNS entry in the clients(5) file expires (needs refreshing), all other client entries that might be refreshed within this window are refreshed, too. DNS entries are refreshed by forking a process that calls the gethostbyname(3) library function for all entries that need refreshing, and then passing the results back via UDP datagrams. This serves to limit the amount of forking which occurs to support refreshing of the clients(5) file entries. Increasing this value means that less forking will occur for the same number of client entries in the clients(5) file. That is, more expired client entries will fit into a larger window. This may be useful if DNS updates can take a long time, such as when the DNS server for a particular client entry has gone bad or missing, or when a single clients(5) file has a very large number of entries. Configuration Item Related Config Example dns_refresh_floor dns_refresh_floor=300 dns_refresh_window - See also 'dns_address_aging' and 'dns_address_window' The default value is three (3) minutes. If a clients(5) file expires (needs refreshing), all other clients that might be refreshed within this window are refreshed, too. DNS entries are refreshed by forking a process that calls the gethostbyname(3) library function for all entries that need refreshing, and then passing the results back via UDP datagrams. This serves to limit the amount of forking that occurs to support refreshing of the clients(5) file entries. Increasing this value means that less forking will occur for the same number of client entries in the clients(5) file. This may be useful if DNS updates take a long time, such as when the DNS server has gone bad or missing for a particular clients(5) file entry, or if there are a large number of entries in a single clients(5) file. Configuration Item Related Config Example global_acct_q.limit none global_acct_q.limit=2400 Set the maximum number of simultaneous accounting requests to be handled by the system. When this limit is exceeded, the requests are dropped with a message in the logfile. Configuration Item Related Config Example global_acct_q.hold none global_acct_q.hold=300 For debugging purposes only. Enables holding of old requests for a specific period of time after they've otherwise been freed from the system. See also 'reply_check'. Specifies a value in seconds. Configuration Item Related Config Example global_auth_q.limit none global_auth_q.limit=1800 Set the maximum number of active authentication requests to be handled by the system. When this limit is exceeded, an Access-Reject reply is returned and a message added to the logfile. Note that when the authentication queue limit is exceeded, the server stops responding to the radcheck(8) command. Configuration Item Related Config Example global_auth_q.hold none global_auth_q.hold=600 For debugging purposes only. Enables holding of old requests for a specific period of time after they've otherwise been freed from the system. See also 'reply_check'. Specifies a value in seconds. Configuration Item Related Config Example list_copy_limit none list_copy_limit=1024 For certain kinds of custom Interlink AAA Servers that accumuluate attribute/value pairs or generate large responses. The default value is 512. See also 'send_buffer_size'. When this limit is exceeded, the Interlink AAA Server will crash with a message in the logfile and a core-dump. Configuration Item Related Config Example log_forwarding none log_forwarding=on log_forwarding=off log_forwarding=+vector log_forwarding=+digest log_forwarding=+dump log_forwarding=-vector log_forwarding=-digest log_forwarding=-dump log_forwarding=clear Turn on (or off) logging in the "logfile" when packets are forwarded via RADIUS to another RADIUS or Interlink AAA Server. Also, turn on (or off) logging of the forwarding vector, reply vector, or dumping of the packet (in hexadecimal) in the logfile of the packet being forwarded. This allows finer detail when tracking problems, at the expense of increased sizes of logfiles. Configuration Item Related Config Example log_generated_request none log_generated_request=on log_generated_request=off Turn on (or off) logging of internally generated packets when they are created and when they reach their end-state. This is used for certain custom Interlink AAA Servers that produce accounting requests based on internal state transitions rather than on an externally delivered request. Configuration Item Related Config Example merit_grandfather none merit_grandfather=on This feature is available only if the server is compiled with the MERIT_GRANDFATHER feature enabled. If on, it treats certain kinds of authentication requests as Status-Server requests. Configuration Item Related Config Example monitor none monitor=on monitor=off monitor=reset monitor=new Turn on (or off) monitoring of the server's engine performance and throughput. It does this by storing information in a shared memory area for access by the radmon(8) performance monitor program. The setting of this feature (to on or off) will take affect when the server starts operation or when it receives a HUP signal. Two options are available for modifying the monitoring behaviour. These are reset and new. The former will zero the shared memory area when the server starts or receives a HUP signal. In the latter case, all information is deleted in the shared memory area when the server receives a HUP signal. Configuration Item Related Config Example ourhostname none ourhostname=* Change the internal hostname that the Interlink AAA Server believes itself to be. This is useful for situations when a machine is being configured at a different IP address than where it will final reside. It is also useful for situations where a machine will be renamed and some configurations need to be readied before the renaming. If no hostname is given, or the special value '*' (without quotes), the machine's true hostname will be set. Configuration Item Related Config Example packet_log packet_log=default none - See also 'reply_check' packet_log=clear (or none) packet_log=+abort packet_log=+both (or +comp) packet_log=+current (or +cur) packet_log=+original (or +orig) packet_log=-abort packet_log=-both (or -comp) packet_log=-current (or -cur) packet_log=-original (or -orig) When logging certain attributes in a request log (NAS-Identifier, NAS-Port, User-Name, et. al.), a check MAY be made to see if the current request matches the original request and to crash and core- dump as a possible action. This is useful for tracking situations where a remote RADIUS or Interlink AAA Server is responding with incorrect values. Also, it may be used to investigate if an AATV is corrupting the current request. The value of "default" means to set only +current and +original. The value of "+current" (or +cur) means to report only from the modified request. The value of "+original" (or +orig) means to report only from the original request. The value of "+abort" means to crash and core-dump if there is a mismatch. Configuration Item Related Config Example radcheck none radcheck=+packets radcheck=+queues radcheck=-packets radcheck=-queues Enable (or disable) certain reports produced by the radcheck(8) command. New reports produced by the radcheck(8) command may now be enbled or disabled with this option. Currently, only two classes of reports are so affected. The plus ("+") character enables the report, while the minus ("-") disables the report: · +/-queues (default is +/enable) This shows queue information such as: number of unique requests, number of queue overflows, number of duplicate requests, for all of the queues in the system (e.g., authentication and accounting). If the number of accounting requests greatly exceeds the number of authentication requests, then a NAS/network configuration error is possible. · +/-packets (default -/disabled) Show statistics about the number of octets/packets received, replied, forwarded, replies received, and redone. These counters are reset on an INT or HUP signal. Configuration Item Related Config Example radius_log_fmt -l option none Override the "-l" option to specify the logfile format string used. Configuration Item Related Config Example reply_check none reply_check=first reply_check=all reply_check=+abort reply_check=+dump reply_check=+ignore reply_check=+verbose reply_check=clear reply_check=none reply_check=Nas-Identifier Specify which attributes to check on a reply from a forwarded request to insure that they are the same as the forwarded request. Besides specifying which attributes to check, it's possible to specify the action to take when a mismatch occurs: ignore the reply, ignore the mismatch or crash and core-dump. Useful attributes to check are Nas-Identifier, Acct-Session-Id, Class, User-Name. Note: This feature might not work well in situations that communicate with servers that are not derived from the Interlink AAA Server. The value of "first" (default) means to check only the first match. The value of "all" means to check all the attributes for matches. The value of "+abort" means to crash and core-dump if a check fails. The value of "+dump" means to dump (log) the offending packet (in hexadecimal). Configuration Item Related Config Example send_buffer_size none send_buffer_size=1472 Decrease the send buffer size. The current size is 16K (16536). Limiting the send_buffer_size to be the UDP MTU for the network will prevent excessively large packets from being forwarded (or replied to) in certain circumstances. This configuration item serves only a debugging function for certain custom Interlink AAA Servers which might transmit very large packets, and helps to debug code intended to prevent an excessively large packet from corrupting the server. Configuration Item Related Config Example send_proxy_action none send_proxy_action=off When the Interlink AAA Server forwards an authentication or an accounting request, it adds a Merit vendor specific attribute (VSA), Proxy-Action, at the begining of the request, if this is "on". This is the default behaviour for the Advanced Interlink AAA Servers. This feature allows an Interlink Advanced AAA Server to act as a backup server. Configuration Item Related Config Example users_file_maxlen none users_file_maxlen=1024 Set the maximum line length for reading the users(5), file and/or realm files. The values may range from 1024 to 16534 characters per line. Configuration Item Related Config Example year_2000 none year_2000=on year_2000=off y2k=on y2k=off Turn on and off the Year 2000 compatibility mode. Dates that were formerly expressed with two digits will be expressed with four digits. Note: This feature does NOT affect the logfile.

FILES

../raddb/engine.config

SEE ALSO

hostname(1), kill(1), gethostbyname(3), signal(3), clients(5), radcheck(8), radiusd(8), radmon(8)

Index Index for
Section 5
Index Alphabetical
listing for E
Top of page Top of
page