The RADIUS module Log records are marked with the RADIUS tag. Please note that RADIUS is a binary protocol, so all low-level data is presented in the hexadecimal form.
Note: clients authenticating via RADIUS do not use any network address on the Server, and Secondary Domain users should specify their full account name (account@domain), or should specify a name that is routed to their account using the Router. Because the Router is used to process the User-Name attribute, account aliases can be used for authentication, too. See the Access section of the manual for more details.
The program name and its optional parameters should be specified using the WebAdmin Helpers page. Open the General page in the Settings realm, and click the Helpers link:
See the Helper Programs section to learn the meaning of these options. The External RADIUS module System Log records are marked with the EXTRADIUS tag.
The External RADIUS Interface protocol is based on the generic Helper Protocol.
This manual describes the External RADIUS Interface Version 1.
If the External RADIUS program is not enabled, then the positive authentication response is sent as soon as the user password is verified. The response does not contain any additional attributes.
If the External RADIUS program is enabled, it is used after the user password is verified. The Server
sends the following command:
nnnnnn LOGIN name@domain attributes settings
where:
If the login request is accepted, the Helper program should return a positive response:
nnnnnn ACCEPT attributes
where:
If the password was not accepted, a negative response should be returned:
nnnnnn REJECT optional-error-message
If the External RADIUS program is enabled, it is used to process the Start, Stop, and Interim-Update
accounting requests. The Server sends the following command:
nnnnnn ACCNT command name@domain attributes
where:
The Helper program should return a positive response:
nnnnnn OK
where:
The attributes in dictionaries should use the attribute type numeric values as keys (for example 27 for Session-Timeout).
The following attributes are interpreted as 32-bit integer values and they are encoded
as numeric strings in dictionaries:
NAS-Port, Service-Type, Framed-Protocol, Framed-Routing, Framed-MTU,
Framed-Compression, Login-Service, Login-TCP-Port, Framed-IPX-Network, Session-Timeout,
Idle-Timeout, Termination-Action, Framed-AppleTalk-Link, Framed-AppleTalk-Network, Event-Timestamp,
NAS-Port-Type, Port-Limit, ARAP-Zone-Access, Password-Retry, Prompt,
Tunnel-Type, Tunnel-Medium-Type, Tunnel-Preference, Acct-Interim-Interval,
Acct-Delay-Time, Acct-Input-Octets, Acct-Output-Octets, Acct-Authentic,
Acct-Session-Time, Acct-Input-Packets, Acct-Output-Packets, Acct-Terminate-Cause,
Acct-Link-Count, Acct-Input-Gigawords, Acct-Output-Gigawords.
The following attributes are interpreted as 32-bit IP addresses and they are encoded
as aaa.bbb.ccc.ddd strings in dictionaries:
NAS-IP-Address, Framed-IP-Address, Framed-IP-Netmask, Login-IP-Host.
The following attributes are not passed to the Helper and are ignored in Helper responses:
User-Name, User-Password, CHAP-Password, State, Proxy-State, EAP-Message,
Message-Authenticator, Acct-Status-Type.
All other attribute values are encoded either as a String or as DataBlocks. The Server uses the DataBlocks format for those attribute values that contain bytes outside the hexadecimal 0x20-0x7F range. The DataBlock format must be used is the value contains binary zero bytes.
If an attribute has multiple values, the attribute value is encoded as an Array.
Accounting requests also have a numeric attribute 0 - the RADIUS protocol request ID. It can be used to detect retransmitted packets (duplicate requests).
Sample session (I: - server commands sent to the program standard input, O: - responses the program writes to its standard output):
Note: the Server can send several concurrent requests for the same target Account.
Note: the External RADIUS program is called when the target Account is open. In a Dynamic Cluster system this means that External RADIUS programs should run on backend servers, and that it is impossible that External RADIUS programs running on two different backend servers get requests for the same Account at the same time.
Sample External RADIUS programs and scripts can be found at the http://www.stalker.com/CGRADIUS/ site.
A single-server system creates the RADIUSLog directory
inside the Settings subdirectory of the base directory.
A Dynamic Cluster system creates the RADIUSLog directory
inside the Settings subdirectory of the SharedDomains directory.
Each RADIUS Accounting Log file has a yyyy-mm-dd file name (where yyyy is the current year, mm is the current month, and dd is the current month day), with the log file name extension. At local midnight, a new Accounting Log file is created.
Each RADIUS Accounting Log record is a text line containing a time-stamp, the operation type or command (started, ended, updated, inited, stopped), and optionally an account name. The rest of the line contains accounting request attributes. Each attributes is encoded with the same, the numeric attribute type, the equal (=) sign, and the attribute value. Attribute values are encoded in the same way as in the dictionaries used in External RADIUS Helper Interface.