Net::LDAP
module version 0.32 or later. Operating
system vendors and Windows Perl distributions typically include
Net::LDAP
. If it is not present in your Perl
distribution, see Section 2.1.2. CPAN for
how to obtain and install it. Net::LDAP
works with
Microsoft Active Directory, Novell/NetIQ eDirectory, OpenLDAP, 389
Directory Server/FreeIPA, and other LDAP servers.Host
. Optionally, you can
authenticate Radiator as a valid user of the LDAP server by specifying
AuthDN
and AuthPassword
. This is
not the same thing as authenticating a user. It happens before querying
the LDAP server, and proves that this radiusd
is
allowed to talk to the LDAP database.SASLUser
and SASLPassword
. You
must configure your LDAP server to enable SASL authentication, and to map
SASL user names to LDAP server administrator names. For example, when
using OpenLDAP see their SASL configuration guide for the
details.BaseDN
:# Start looking here BaseDN o=University of Michigan, c=US
SearchFilter
that sets the conditions an entry in the
directory must meet to be returned by the search.<ClientList
LDAP>
is:SearchFilter (objectclass=oscRadiusClient)
sub
.base
one
sub
or subtree
children
Requires Net::LDAP 0.48 or better and
LDAPv3 subordinate feature extensionScope
:# We know where the entry should be Scope base
AuthBy
LDAP2
supports %0
as a special for DN escaped
currently authenticated user name.AuthDN
:# Log in to LDAP as admin. You man need a DN formatted name. # AuthDN admin AuthDN cn=admin,dc=example,dc=com
AuthDN
.AuthPassword
:# log in to LDAP with password adminpassword AuthPassword adminpassword
localhost
. Special formatting characters are
permitted. Multiple host names can be specified, and in this case Radiator
tries connecting each configured host individually until it succeeds. If a
Host
name begins with ipv6:
the
subsequent host names are interpreted as IPv6 addresses where possible,
and Net::LDAP
uses IPv6 to connect to the LDAP server.
IPv6 may require IO::Socket::INET6
,
Socket6
or other IPv6 specific Perl modules depending
on your Perl version.Host
:Host ldaphost.example.com
# May resolve to multiple addresses. # Implicitly sets SSLExpectedServerName to ldaphost.example.com for each address. Host ldaphost.example.com ResolveHost
# Connect to first available server Host ldaphost1.example.org Host ldaphost2.example.org Host ldaphost3.example.org
# Server 10.20.30.11 has name ldaphost1.example.org in its certificate. # Server 10.20.30.22 is named ldaphost2.example.org, respectively. Host 10.20.30.11 Host 10.20.30.22 SSLExpectedServerName ldaphost1.example.org SSLExpectedServerName ldaphost2.example.org
389
, the standard port for
unencrypted LDAP. If UseSSL
is specified, the default
value is 636
, the standard port for encrypted LDAP.
Port
can be a numeric port number or a symbolic
service name from etc/
services or its equivalent on
your system. Usually, there is no need to override the defaults.
Port
can contain special formatting characters. A
typical use of special formatting characters is with
GlobalVar
and command line arguments.Port
:# Connect using the SSL encrypted port Port 636
ResolveHost
flag parameter causes
Radiator to resolve LDAP server name to addresses instead of passing the
name directly to the LDAP library. This allows Radiator to have separate
connection and failure backoff parameters for each address. To refresh
resolved addresses, name resolution is done periodically and after LDAP
connection, bind and other failures. Periodic refresh is currently done
after one hour has elapsed from the previous refresh. This allows adding
and withdrawing server addresses from name service without restarting
Radiator. For more examples, see Section 3.9.6. Host.# Name ldaphost.example.com resolves to multiple addresses. # Implicitly sets SSLExpectedServerName to ldaphost.example.com for each address. Host ldaphost.example.com ResolveHost
UseSSL
:
# Enable direct SSL/TLS (LDAPS) UseSSL
# Enable direct SSL/TLS (LDAPS) and tell it where to find certificates UseSSL # Name of the client certificate file: SSLCAClientCert %D/certificates/cert-clt.pem # Name of the file containing the client private key SSLCAClientKey %D/certificates/cert-clt.pem # Only need to set one of the following #SSLCAPath %D/cadirectory SSLCAFile %D/certificates/demoCA/cacert.pem
UseSSL
and UseTLS
are
specified, UseSSL
is prioritised.UseSSL
. For more information, see Section 3.9.9. UseSSL.
UseTLS
enables StartTLS LDAP operation to upgrade the
LDAP connection to use TLS authentication and encryption.
UseTLS
takes the same parameters as
UseSSL
, including SSLVerify
,
SSLCiphers
, SSLCAPath
,
SSLCAFile
, SSLCAClientCert
, and
SSLCAClientKey
.# Use StartTLS with this LDAP server UseTLS
UseSSL
and
UseTLS
are specified, UseSSL
is
prioritised.UseTLS
is followed by another clause with
UseSSL
.stdout
. See Debug_TLS for
how to view messages written to stdout
.Debug
messages for outgoing and incoming packet using asn_dump:Debug 12
IO::Socket::SSL
for all TLS based LDAP connections. The
debug messages are printed to stderr
. The available
values as listed by IO::Socket::SSL
version 2.0.69 are
shown below:IO::Socket::SSL
and
ciphers from Net::SSLeay
.IO::Socket::SSL
and progress information from
Net::SSLeay
.IO::Socket::SSL
and from
Net::SSLeay
.DebugTLS 3
systemd
utilities, use
its utilities to view stderr
messages. For example,
using Linux command line:% sudo journalctl -u radiator % less /var/log/messages
systemd
configuration change to redirect
stdout
and stderr
to a file. For the
details, see Section 5.1. Systemd service unit file10
seconds. If this is set to 0
,
Radiator waits forever for LDAP connections and transactions.Timeout
:# Make timeout really short, 2 seconds Timeout 2
AuthBy
,
<ClientListLDAP
>, or other) stops trying to
connect to its LDAP server after a connection failure. The default value
is 600
seconds (10 minutes). This is intended to give the
LDAP server time to recover after a failure. During the failure back-off
interval, all authentication requests are IGNOREd.AuthDN
fails.BindFailedHook
is called with the
following arguments:Radius::Ldap
objectAuthDN
that failed LDAP bindAuthPassword
that was used with the failed
LDAP bindDebug
flag parameter
is enabled for the LDAP clause. For more information about Debug, see
Section 3.9.11. Debug.<AuthBy
LDAPRADIUS>
, disconnect from the LDAP server after each
authentication. This is because not all LDAP servers permit multiple
searches from the same LDAP connection.
HoldServerConnection
forces holding the connection to
the LDAP server up for as long as possible. It is an optional parameter
and available for <AuthBy LDAP2>
and
<AuthBy LDAPDIGIPASS>
.UseTLS
or
UseSSL
is enabled. If you enable this parameter and
get unwanted behaviour, you are probably using an unsupported LDAP server.
In this case, remove this parameter.HoldServerConnection
:# Our server supports multiple searches HoldServerConnection
HoldServerConnection
with
ServerChecksPassword
of <AuthBy
LDAP2>
may cause failure situations. This is due to some
LDAP servers' behaviour when the password check fails but the connection
is not closed. A failure situation may also occur when the password check
succeeds but the user is not allowed to perform searches in the server. If
your users experience unexpected authentication failures, try testing your
system without using these 2 parameters together. AuthDN
and password prior to a search
operation.UseSSL
or
UseTLS
parameters to control how LDAP server's
certificate is verified. The options are:none
optional
require
require
. Format
specifiers, such as %{GlobalVar:name}
, are evaluated
when the configuration is loaded.require
is the most secure
option.DEFAULT:!EXPORT:!LOW
.SSLCiphers
:# Exclude cipher suites using RC4 too SSLCiphers DEFAULT:!EXPORT:!LOW:!RC4
SSLCAPath
parameter specifies the name of
a directory containing CA root certificates that may be required to
validate TLS client certificates. Radiator looks for root certificates
first in SSLCAFile
, then in
SSLCAPath
, so there usually is no need to set both.
When Certificate Revocation List (CRL) checks are enabled, this directory
is also used by TLS library to look for CRL files.SSLCAPath
:SSLCAPath %D/cadirectory
SSLCAFile
:SSLCAFile %D/certificates/demoCA/cacert.pem
SSLCAClientCert
:SSLCAClientCert %D/certificates/cert-clt.pem
SSLCAClientCert
and
SSLCAClientKey
refer to the same file.SSLCAClientKey
contains a private key in encrypted
format, you need to specify the decryption password in
SSLCAClientKeyPassword
.SSLCAClientKey
:SSLCAClientKey %D/certificates/cert-clt.pem
SSLCAClientKey
. This parameter is only required when
SSL client verification is required and the key file configured with
SSLCAClientKey
is encrypted. Special characters are
permitted.SSLCAClientKeyPassword whatever
Host
is configured with an IP address. Special
characters are permitted. For an example, see Section 3.9.6. Host.# Certificate does not have a fully qualified name SSLExpectedServerName myserver
2
and 3
.
The default value is 3
.Version
:# Support LDAP protocol version 2 as # required by very old servers Version 2
Deref
with one of the
following case-sensitive values:never
search
find
always
AuthDN
and
AuthPassword
are used as the SASL credentials. Only
if AuthDN
and AuthPassword
are
not defined, SASLUser
and
SASLPassword
are used.AuthDN
is defined, it overrides SASLUser
and is used
instead. Only if AuthDN
is not defined and
SASLUser
is defined, SASLUser
is
used for authentication. For more information, see Section 3.9.4. AuthDN.AuthPassword
is defined, it overrides
SASLPassword
and is used instead. Only if
AuthPassword
is not defined and
SASLPassword
is, SASLPassword
is
used for authentication. For more information, see Section 3.9.5. AuthPassword.UseSASL
is enabled, this optional
parameter specifies what SASL mechanisms are to be used to authenticate
the connection to the LDAP server. SASLMechanism
is a
space-separated list of mechanism names supported by Authen::SASL, such
asANONYMOUS
CRAM-MD5
DIGEST-MD5
EXTERNAL
LOGIN
PLAIN
DIGEST-MD5
. If you change
this, it is possible that you need also to change your SASL to LDAP user
mapping. See your SASL system documentation for details on what mechanisms
are supported.SASLMechanism
:SASLMechanism DIGEST-MD5,PLAIN
BindAddress
, in the form
hostname[:port]
. Special formatting characters are
permitted.LocalAddr
parameter of the underlying IO::Socket used as the LDAP client. This is
usually useful only on multi-homed hosts, where you need to control the
source address of the LDAP connection, perhaps for firewall rules. There
is no default and the system chooses the address.BindAddress
,
see Section 3.7.9. BindAddress.MultiHomed
option in Net::LDAP and IO::Socket for this LDAP connection. If this is
set then Net::LDAP tries all addresses for a multi-homed LDAP host until
one is successful. The default value is true.