freeradius
freeradius::config
: Manage the permissions on directories and files and then eitherfreeradius::config::rsync
: Rsync the configurations files to$freeradius::confdir
. It does notfreeradius::install
: Install the freeradius serverfreeradius::service
: Configure the radiusd servicefreeradius::v3::conf
: @summary configure theradiusd.conf
file Ifclients_conf_content
is set, it will add that content to theclients.conf
file and inclufreeradius::v3::conf::instantiate
: Creates the 'instantiate' section ofradiusd.conf
freeradius::v3::conf::log
: Add a 'log' section to freeradiusfreeradius::v3::conf::security
: Add a 'security' section to freeradius.freeradius::v3::conf::thread_pool
: Add a 'thread pool' section to the freeradius configurationfreeradius::v3::conf::users
: Set up the freeradius users entriesfreeradius::v3::modules::ldap
: Set up the LDAP module configuration.freeradius::v3::sites::ldap
: This will create a site that will authenticate using LDAP and listen
freeradius::v3::client
: Add a client to/etc/raddb/clients.d/
freeradius::v3::conf::user
: Use concat to add content to theusers
file that is created byfreeradius::v3::listen
: Add a 'listen' section to a freeradius configuration file.freeradius::v3::listener
: Create a global listener in theconf.d
directoryfreeradius::v3::module
: Copies a module definition file to themodules-available
directoryfreeradius::v3::site
: Copies a site definition file to thesites-available
directory and
Freeradius::Deref
: Control under which situations aliases are followedFreeradius::Listen
: Types of packets to listen forFreeradius::Logdest
: Destination for log messagesFreeradius::Nas
: NAS-specific method to use when checking for simultaneous useFreeradius::Scope
: LDAP search scope
The freeradius class.
The following parameters are available in the freeradius
class:
firewall
freeradius_name
user
uid
group
gid
sysconfdir
confdir
logdir
testcerts
use_rsync
package_ensure
manage_sites_enabled
pki
fips
app_pki_dir
app_pki_cert
app_pki_key
app_pki_ca
app_pki_ca_dir
app_pki_external_source
Data type: Boolean
If true set rules to open ports on firewall
Default value: simplib::lookup('simp_options::firewall', { 'default_value' => false})
Data type: String
Name of the package
Default value: 'freeradius'
Data type: String
Default value: 'radiusd'
Data type: Integer
Default value: 95
Data type: String
Default value: 'radiusd'
Data type: Integer
The user and group information for the local system that is used to run freeradius.
Default value: 95
Data type: Stdlib::Absolutepath
Top level configuration directory.
Default value: '/etc'
Data type: Stdlib::Absolutepath
The configuration directories where the radius files are kept.
Default value: "${sysconfdir}/raddb"
Data type: Stdlib::Absolutepath
freeradius log directory
Default value: '/var/log/freeradius'
Data type: Boolean
Whether or not freeradius should generate test certs at installation time.
Default value: false
Data type: Boolean
If true rsync will be used to copy configuration files into place. The other configuration manifests only work with freeradius version 3 or later, if you are using an earlier version you will need to copy files this way. rsync will not remove any files so you can use a combination of rsync and manifests.
Default value: false
Data type: String
String to pass to the freeradius package ensure attribute
Default value: simplib::lookup('simp_options::package_ensure', { 'default_value' => 'installed' })
Data type: Boolean
If true then only sites managed by puppet will be allowed in the sites-enabled directory. Files that are rsync'd are not "managed" by puppet. Use the freeradius::v3::site define or a file resource to create sites.
Default value: false
Data type: Variant[Boolean,Enum['simp']]
Default value: simplib::lookup('simp_options::pki', { 'default_value' => false })
Data type: Boolean
Default value: simplib::lookup('simp_options::fips', {'default_value' => false })
Data type: Stdlib::Absolutepath
Default value: '/etc/pki/simp_apps/freeradius/x509'
Data type: Stdlib::Absolutepath
Default value: "${app_pki_dir}/public/${facts['networking']['fqdn']}.pub"
Data type: Stdlib::Absolutepath
Default value: "${app_pki_dir}/private/${facts['networking']['fqdn']}.pem"
Data type: Stdlib::Absolutepath
Default value: "${app_pki_dir}/cacerts/cacerts.pem"
Data type: Stdlib::Absolutepath
Default value: "${app_pki_dir}/cacerts"
Data type: Stdlib::Absolutepath
Default value: simplib::lookup('simp_options::pki::source', { 'default_value' => '/etc/pki/simp/x509' })
rsync content or create content
remove any other files that exist in that directory
The defaults in this module use the freeradius share set up by the
simp-simp
module in the simp::server::rsync_shares
manifest
== Parameters
The following parameters are available in the freeradius::config::rsync
class:
Data type: String
The source on the rsync server
Default value: "freeradius_${facts['environment']}_${facts['os']['name']}/"
Data type: Simplib::Host
Default: 127.0.0.1 If $use_rsync_radiusd_conf is true, specify the rsync server from which to pull here.
Default value: simplib::lookup('simp_options::rsync::server', { 'default_value' => '127.0.0.1'})
Data type: String
Since radius holds sensitive information, the rsync space should be accordingly protected. This has been designed with the assuption that you will utilize the internal simplib::passgen mechanism to set the password. You can optionally specify $radius_rsync_password
Default value: "freeradius_systems_${facts['environment']}_${facts['os']['name'].downcase}"
Data type: String
If no password is specified, simplib::passgen will be used
Default value: simplib::passgen($radius_rsync_user)
Data type: Integer
Default: '2' If $use_rsync_radiusd_conf is true, specify the rsync connection timeout here.
Default value: simplib::lookup('simp_options::rsync::timeout', { 'default_value' => 2})
Data type: Optional[Integer]
rsync bandwidth limit
Default value: undef
Install the freeradius server
Configure the radiusd service
@summary configure the radiusd.conf
file
If clients_conf_content
is set, it will add that content to the
clients.conf
file and include it in the source. Otherwise it includes
clients.d/*
and clients will have to be set up using the v3/client
class.
If trigger_conf_content
is set it will add that content to trigger.conf
and include this file in the radius.conf.
The following parameters are settings in the radius.conf file.
@see radiusd.conf(5) for additional information.
@see Extract the original /etc/raddb/radiusd.conf from the freeradius rpm using rpm2cpio < free radius rpm> | cpio -idmv for detailed information on the parameters.
SIMP-Related Parameters
These parameters are effective in a larger SIMP installation
Custom Content Parameters
These parameters add custom content to various parts of the configuration.
The following parameters are available in the freeradius::v3::conf
class:
cleanup_delay
correct_escapes
default_acct_listener
hostname_lookups
localstatedir
max_request_time
max_requests
radius_ports
trusted_nets
protocol
clients_conf_content
proxy_conf_content
trigger_conf_content
users_conf_content
Data type: Integer[2,10]
Default value: 5
Data type: Boolean
Default value: true
Data type: Boolean
Default value: true
Data type: Boolean
Default value: false
Data type: Stdlib::AbsolutePath
Default value: '/var'
Data type: Integer[2,120]
Default value: 30
Data type: Integer[256]
Default value: 1024
Data type: Array[Simplib::Port]
The ports where freeradius will listen
Default value: [1812, 1813]
Data type: Simplib::Netlist
Networks and/or hosts that are allowed to access the RADIUS server
Default value: simplib::lookup('simp_options::trusted_nets', { 'default_value' => ['127.0.0.1', '::1']})
Data type: Enum['udp','tcp','ALL']
What protocols will be used to make sure the firewall is opened correctly
Default value: 'ALL'
Data type: Optional[String]
Content for the clients.conf
file if not creating clients individually
Default value: undef
Data type: Optional[String]
If $proxy_request
is true
, use this content for the proxy.conf
file
Default value: undef
Data type: Optional[String]
This content for the trigger.conf
file
Default value: undef
Data type: Optional[String]
The content for the authorize
file
Default value: undef
in a file under conf.d
.
This section is included by the directive $INCLUDE conf.d/
in the
radiusd.conf file.
- See also
- For
- detailed information on the parameters, extract the original /etc/raddb/radiusd.conf from the freeradius rpm using rpm2cpio < free radius rpm> | cpio -idmv
- For
The following parameters are available in the freeradius::v3::conf::instantiate
class:
Data type: Optional[String]
The literal content of the section that you would like to add. Leading and trailing spaces will be removed.
Default value: undef
Add a 'log' section to freeradius
- See also
- For
- detailed information on the parameters, extract the original /etc/raddb/radiusd.conf from the freeradius rpm using rpm2cpio < free radius rpm> | cpio -idmv
- For
The following parameters are available in the freeradius::v3::conf::log
class:
destination
log_file
syslog_facility
stripped_names
auth
auth_badpass
auth_goodpass
msg_goodpass
msg_badpass
msg_denied
Data type: Freeradius::Logdest
Default value: 'syslog'
Data type: Stdlib::AbsolutePath
Default value: "${freeradius::logdir}/radius.log"
Data type: Simplib::Syslog::Facility
Default value: 'local6'
Data type: Boolean
Default value: false
Data type: Boolean
Default value: true
Data type: Boolean
Default value: false
Data type: Boolean
Default value: false
Data type: Optional[String]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[String]
Default value: undef
Add a 'security' section to freeradius.
- See also
- For
- detailed information on the parameters, extract the original /etc/raddb/radiusd.conf from the freeradius rpm using rpm2cpio < free radius rpm> | cpio -idmv
- For
The following parameters are available in the freeradius::v3::conf::security
class:
max_attributes
reject_delay
status_server
allow_core_dumps
chroot
chroot_path
chroot_user
chroot_group
Data type: Integer
Default value: 200
Data type: Integer[1,5]
Default value: 1
Data type: Boolean
Default value: true
Data type: Boolean
Default value: false
Data type: Boolean
whether or not to run radiusd in a chroot
Default value: false
Data type: Optional[Stdlib::Absolutepath]
directory where the server does "chroot"
Default value: undef
Data type: Optional[String]
User to run daemon as,must be defined if using a chroot
Default value: undef
Data type: Optional[String]
Group to run daemon as.
Default value: undef
Add a 'thread pool' section to the freeradius configuration
- See also
- For
- detailed information on the parameters, extract the original /etc/raddb/radiusd.conf from the freeradius rpm using rpm2cpio < free radius rpm> | cpio -idmv
- For
The following parameters are available in the freeradius::v3::conf::thread_pool
class:
start_servers
max_servers
min_spare_servers
max_spare_servers
max_requests_per_server
max_queue_size
auto_limit_acct
Data type: Integer
Default value: 5
Data type: Integer
Default value: 32
Data type: Integer
Default value: 3
Data type: Integer
Default value: 10
Data type: Integer
Default value: 0
Data type: Optional[Integer]
Default value: undef
Data type: Boolean
Default value: false
Set up the freeradius users entries
Set up the LDAP module configuration.
The following parameters are available in the freeradius::v3::modules::ldap
class:
base_dn
app_pki_key
app_pki_cert
app_pki_ca_dir
confdir
group
base_filter
client_scope
client_filter
client_attribute_identifier
client_attribute_secret
client_attribute_shortname
client_attribute_nas_type
client_attribute_virtual_server
client_attribute_require_message_authenticator
default_profile
group_scope
group_filter
group_name_attribute
group_membership_filter
group_membership_attribute
group_cacheable_name
group_cacheable_dn
identity
ldap_connections_number
ldap_debug
ldap_timeout
ldap_timelimit
options_chase_referrals
options_dereference
options_idle
options_interval
options_net_timeout
options_probes
options_rebind
password
pool_start
pool_min
pool_max
pool_spare
pool_uses
pool_lifetime
pool_idle_timeout
port
profile_attribute
random_file
require_cert
retry_delay
start_tls
user_filter
user_access_attribute
user_access_positive
user_scope
server
post_auth_content
accounting_content
content
Data type: String
Default value: simplib::lookup('simp_options::ldap::base_dn')
Data type: Stdlib::AbsolutePath
Path and name of the private SSL key file
Default value: $freeradius::app_pki_key
Data type: Stdlib::AbsolutePath
Path and name of the public SSL certificate
Default value: $freeradius::app_pki_cert
Data type: Stdlib::AbsolutePath
Path to the CA.
Default value: $freeradius::app_pki_ca_dir
Data type: Stdlib::Absolutepath
Freeradius configuration directory
Default value: $freeradius::confdir
Data type: String
Group radiusd is running under.
Default value: $freeradius::group
Data type: String
Default value: '(objectclass=radiusprofile)'
Data type: Optional[Freeradius::Scope]
Default value: undef
Data type: String
Default value: '(objectClass=frClient)'
Data type: String
Default value: 'radiusClientIdentifier'
Data type: String
Default value: 'radiusClientSecret'
Data type: Optional[String]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[Freeradius::Scope]
Default value: undef
Data type: String
Default value: '(objectClass=posixGroup)'
Data type: String
Default value: 'cn'
Data type: String
Default value: '(|(&(objectClass=GroupOfNames)(member=%{control:Ldap-UserDn}))(&(objectClass=GroupOfUniqueNames)(uniquemember=%{control:Ldap-UserDn})))'
Data type: String
If this does not contain a value then Group Membership Checking will not be enabled.
Default value: 'memberOf'
Data type: Boolean
Default value: false
Data type: Boolean
Default value: false
Data type: String
Default value: simplib::lookup('simp_options::ldap::bind_dn', { 'default_value' => "cn=hostAuth,ou=Hosts,%{lookup('simp_options::ldap::base_dn')}", 'value_type' => String })
Data type: Integer[1]
Default value: 5
Data type: Optional[String]
Default value: undef
Data type: Integer
Default value: 4
Data type: Integer
Default value: 3
Data type: Boolean
Default value: false
Data type: Freeradius::Deref
Default value: 'never'
Data type: Integer
Default value: 60
Data type: Integer
Default value: 3
Data type: Integer
Default value: 1
Data type: Integer
Default value: 3
Data type: Boolean
Default value: false
Data type: String
Default value: simplib::lookup('simp_options::ldap::bind_pw')
Data type: Integer[1]
Default value: 5
Data type: Integer[1]
Default value: 4
Data type: Integer[1]
Default value: 10
Data type: Integer[1]
Default value: 3
Data type: Integer[0]
Default value: 0
Data type: Integer[0]
Default value: 0
Data type: Integer[1]
Default value: 60
Data type: Simplib::Port
Default value: 389
Data type: Optional[String]
Default value: undef
Data type: Stdlib::AbsolutePath
Default value: '/dev/urandom'
Data type: String
Default value: 'demand'
Data type: Integer[1]
Default value: 30
Data type: Boolean
Default value: true
Data type: String
Default value: '(uid=%{%{Stripped-User-Name}:-%{User-Name}})'
Data type: Optional[String]
Default value: undef
Data type: Boolean
Default value: true
Data type: Optional[Freeradius::Scope]
Default value: undef
Data type: Array[Simplib::Uri]
Default value: simplib::lookup('simp_options::ldap::uri')
Data type: Optional[String]
Override the contents of the post-auth
section of the configuration
- Do NOT include the
post-auth
header or beginning or end curly brace
Default value: undef
Data type: Optional[String]
Override the contents of the accounting
section of the configuration
- Do NOT include the
accounting
header or beginning or end curly brace
Default value: undef
Data type: Optional[String]
Specify the entire contents of the configuration file
- All other options will be ignored
Default value: undef
on the interface defined by listen_ip
The Default is to listen on all interfaces.
- See also
/etc/raddb/sites-available/default
- for more information on sites
The following parameters are available in the freeradius::v3::sites::ldap
class:
Data type: String
The name of the site
Default value: 'default'
Data type: Boolean
Whether to enable the site or not
Default value: true
Data type: Stdlib::Absolutepath
Configuration directory for freeradius
Default value: $freeradius::confdir
Data type: Boolean
If set to true then 'listen' sections will be set up for the site. Otherwise the listen_ip will be ignored and the user will be required to set up a listener using the listener.pp module.
Default value: true
Data type: String
Group radiusd runs under.
Default value: $freeradius::group
Data type: Simplib::Host
The ip addresses to listen on. See setting ipaddr in sites-enabled/default.
Default value: 'ALL'
Data type: Integer
Default value: 16
Data type: Integer
Default value: 0
Data type: Integer
Default value: 30
Add a client to /etc/raddb/clients.d/
- See also
- clients.conf(5)
- for additional information.
- clients.conf(5)
The following parameters are available in the freeradius::v3::client
defined type:
secret
ipaddr
client_name
coa_server
idle_timeout
lifetime
login
max_connections
nas_type
password
proto
require_message_authenticator
response_window
shortname
virtual_server
Data type: String
If you do not specify a secret, then one will be created for you using
$name
as the id.
Default value: simplib::passgen("freeradius_${name}")
Data type:
Variant[Simplib::IP,
Simplib::IP::CIDR]
If set to something with a ':' in it, will be treated as ipv6addr instead.
Data type: String
Default value: $name
Data type: Optional[String]
Default value: undef
Data type: Integer
Default value: 30
Data type: Integer
Default value: 0
Data type: Optional[String]
Default value: undef
Data type: Integer
Default value: 16
Data type: Optional[Freeradius::Nas]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[Enum['udp','tcp','*']]
Default value: undef
Data type: Boolean
Default value: true
Data type: Optional[Float[0.0]]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[String]
Default value: undef
'freeradius::v3::conf::users` module.
This module should not be used if freeradius::v3::conf::user_conf_source
is
set in hiera. That setting will copy (what is expected to be) a complete
users file into place that you have defined.
- See also
- users(5)
- for additional details on user entries.
- users(5)
freeradius::v3::conf::user { 'default_ppp':
is_default => true,
order => '500',
content => '
Framed-Protocol == PPP
Framed-Protocol = PPP,
Framed-Compression = Van-Jacobson-TCP-IP'
}
freeradius::v3::conf::user { 'lameuser':
order => '0',
content => '
Auth-Type := Reject
Reply-Message = "Your account has been disabled."'
}
The following parameters are available in the freeradius::v3::conf::user
defined type:
The name of the user.
If $is_default
is set to true, this will be treated as a DEFAULT user
entry and the name will be used for uniqueness. It is recommended to use
something like 'default_ppp', 'default_slip', etc... for these entries.
Data type: String
The actual content of the entry per users(5). The $name will be used as the left hand initial value unless $is_default = true. All other portions must be properly included, starting with the initial comparison or assignment.
- Leading whitespace is ignored.
Data type: Boolean
Whether or not the entry is for a DEFAULT user entry.
Default value: false
Data type: Integer[1]
An ordering number for including the entries in the file. This does not have to be numeric, but you may end up with strange results if it is not. The default is alphabetic.
Default value: 100
Data type: Stdlib::Absolutepath
The configuration directory for radiusd.
- Generally, you will want default entries at the end of the file, but this is not strictly enforced. You have been warned!
Default value: simplib::lookup( 'freeradius::confdir', {'default_value' => '/etc/raddb'} )
The following parameters are all configuration parameters.
- See also
- For
- detailed information on the parameters, extract the original /etc/raddb/radiusd.conf from the freeradius rpm using rpm2cpio < free radius rpm> | cpio -idmv
- For
The following parameters are available in the freeradius::v3::listen
defined type:
target
listen_type
order
idle_timeout
interface
ipaddr
lifetime
max_connections
max_pps
per_socket_clients
port
Data type: Stdlib::Absolutepath
The concat target to add this section to
Data type: Freeradius::Listen
Data type: Integer[1]
Indicates the order for this element amoung the concat fragments.
Default value: 100
Data type: Optional[Integer]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Simplib::Host
Be careful not to use the same IP address on more than one listener
Default value: 'ALL'
Data type: Optional[Integer]
Default value: undef
Data type: Optional[Integer]
Default value: undef
Data type: Optional[Integer]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[Simplib::Port]
Default value: undef
The following parameters are all configuration parameters.
- See also
- For
- detailed information on the parameters, extract the original /etc/raddb/radiusd.conf from the freeradius rpm using rpm2cpio < free radius rpm> | cpio -idmv
- For
The following parameters are available in the freeradius::v3::listener
defined type:
listen_type
order
confdir
group
idle_timeout
interface
ipaddr
lifetime
max_connections
max_pps
per_socket_clients
port
Data type: Freeradius::Listen
Data type: Integer[1]
Indicates the order for this element amoung the concat fragments.
Default value: 100
Data type: Stdlib::Absolutepath
Default value: simplib::lookup( 'freeradius::confdir', {'default_value' => '/etc/raddb'} )
Data type: String
Default value: simplib::lookup( 'freeradius::group', {'default_value' => 'radiusd'} )
Data type: Optional[Integer]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Simplib::Host
Be careful not to use the same ip address in more than one listener
Default value: 'ALL'
Data type: Optional[Integer]
Default value: undef
Data type: Optional[Integer]
Default value: undef
Data type: Optional[Integer]
Default value: undef
Data type: Optional[String]
Default value: undef
Data type: Optional[Simplib::Port]
Default value: undef
and if it is enabled, links it to the mods-enabled
directory.
If neither content or source is defined and ft it enabled then it will just create a link.
- See also
- mods-available
- for further documentation on modules.
- mods-available
The following parameters are available in the freeradius::v3::module
defined type:
Data type: Boolean
If true a link will be created in mods-enabled to enable the site.
Default value: false
Data type: Optional[String]
The actual content of the module. Only one of content or source can be used.
Default value: undef
Data type: Optional[String]
The source file of the module definition. Only one of content or source can be used.
Default value: undef
Data type: Stdlib::Absolutepath
The configuration directory
Default value: simplib::lookup( 'freeradius::confdir', {'default_value' => '/etc/raddb'} )
Data type: String
The group radiusd will run under
Default value: simplib::lookup( 'freeradius::group', {'default_value' => 'radiusd'} )
if it is enabled, links it to the sites-enabled
directory.
Note: If freeradius::manage_sites
is enabled any site not defined in puppet
will be purged.
If neither content or source is defined and it is enabled then it will just create a link.
- See also
- site
- definitions in sites-available for further documentation on sites.
- site
The following parameters are available in the freeradius::v3::site
defined type:
Data type: Boolean
If true a link will be created in sites-enabled to enable the site.
Default value: false
Data type: Optional[String]
The actual content of the entry per. Only one of content or source can be used.
Default value: undef
Data type: Optional[String]
The source file of the site definition. Only one of content or source can be used.
Default value: undef
Data type: Stdlib::Absolutepath
The configuration directory
Default value: simplib::lookup( 'freeradius::confdir', {'default_value' => '/etc/raddb'} )
Data type: String
The group radiusd will run under
Default value: simplib::lookup( 'freeradius::group', {'default_value' => 'radiusd'} )
Control under which situations aliases are followed
Alias of Enum['never', 'searching', 'finding', 'always']
Types of packets to listen for
Alias of Enum['auth', 'acct', 'proxy', 'detail', 'status', 'coa']
Destination for log messages
Alias of Enum['files', 'syslog', 'stdout', 'stderr']
NAS-specific method to use when checking for simultaneous use
Alias of Enum['cisco', 'computone', 'livingston', 'max40xx', 'multitech', 'netserver', 'pathras', 'patton', 'portslave', 'tc', 'usrhiper', 'other']
LDAP search scope
Alias of Enum['base', 'one', 'sub', 'children']