!!Enterprise Licenses Only

The Radius plugin lets you validate authentication against a Radius server.  This plugin is only enabled for Enterprise users.  You can set the authentication type to use, the host information, and port information for the authentication process.\\
The RADIUS protocol itself and related terms __[are well documented|https://en.wikipedia.org/wiki/RADIUS]__ (external link), outside the purpose of this wiki.\\
\\
With the RADIUS plugin enabled the CrushFTP Server acts as the __Network Access Server(NAS)__ in a RADIUS infrastructure, with HTTPS, SFTP, FTP, etc. endpoints on the front, passing authentication through to a RADIUS server backend by means of the plugin.\\
In the upper part of the config panel the __Connection Parameters__ are set:\\
\\
[{Image src='rad11.jpg' width='1440' height='..' align='left' style='..' class='..' }]
\\
;Authenticator Type: dropdown selector to choose the RADIUS authentication type (PAP, CHAP, etc.)
;Server Item: dropdown list selector allows binding the plugin to specific server items (FTP, SFTP, etc)
;Server Host and Port: the RADIUS server IP and Authentication port (IANA default 1812)
;NAS IP: sets the __NAS-IP-Address__ RADIUS attribute. If left empty, the local private address of the server is used.
;NAS Port: sets the __NAS-Port__ RADIUS attribute
;Retries: sets the number of retries in case of failing to connect to the specified RADIUS server.
;Timeout (s): sets the connection timeout for the connection to the RADIUS server. 
;Shared Secret: the RADIUS shared secret. The term is usually same for all RADIUS implementations.\\
!IMPORTANT: The __NAS-Port-Type__ attribute is hard coded to "__Ethernet__".\\
\\
The mid section of the plugin panel allows setting the user directory (home directory) access options. Some form of directory access must be configured, otherwise the plugin will deny access even if the credentials validate successfully.\\
\\
[{Image src='rad24.jpg' width='1440' height='..' align='left' style='..' class='..' }]
\\
;Username to use as template (except directory access): the plugin-wide inheritance template user name. Usually "__default__". Various user customizations can be inherited from. In the chain of user inheritance, it has lowest prevalence.
;Radius only used for Authentication (User manager then defines user's access.): per user template mode or local home directory mode. When the checkbox is __set__, will need to create for each RADIUS user a matching user name un User Manager (local per user template account). VFS directory access arious user customizations can be inherited from.In the chain of inheritance, the local template has highest prevalence.
;:When the checkbox is __un-set__, the various home directory settings are revealed. The plugin will grant individual home directories automatically at login time.
;Home folder location: the common root directory path for all automatic RADIUS user directories.
;Directory Permissions: set of virtual permission flags.
;Use local folder if HomeDirectory not found?: long standing GUI bug, ignored
;Append username to path?: toggles the use of the user name as the user directory name. When off, all users will access the common root path under __Home folder location__
;Create folder with username: toggles creation of the per user home directory automatically. When off, it needs to be created manually or the plugin denies login to all users who don't have a home directory already.
;Create additional subfolders in home directory: allows creation of a set of subdirectories, with various permissions, under each user's own working(home) directory. 
;Advanced: can set up PGP file cryptography and CrushSync here.
\\
The end section allows mapping of RADIUS user groups as Roles, based on the __Filter-Id__ attribute value returned by the RADIUS server for each user object.\\
[{Image src='rad31.jpg' width='1440' height='..' align='left' style='..' class='..' }]\\
The management buttons allow to add, remove and move around role filters.\\
[{Image src='rad32.jpg' width='1440' height='..' align='left' style='..' class='..' }]\\
\\
Roles have two components, the role name added in the __Enter Role__ field and an optional __Role Template__ account name. The role name string is matched exactly against the Filter-Id attribute value.\\
The role template account is a local user in User Manager, from which various customizations, like per-group (per-role) common working directory is inherited. In the chain of inheritance, it has middle prevalence, higher than the global plugin template user ( set as __Username to use as template__) but lower than per-user local templates ( when using __Radius only used for Authentication__ ).\\
Unlike with other integration plugins, roles are for inheritance only, a non-matching rule does not deny login. In case of multiple role membership inheritance __does not__ cumulate. For such a user account with multiple role membership, the last role in the list will have highest prevalence.\\
\\
!Debugging:
At Debug level 2 and the Debug checkbox enabled on the plugin panel, we log all RADIUS chat in CrushFTP.log.
[{Image src='rad4.jpg' width='1440' height='..' align='left' style='..' class='..' }]\\