Next: Web Services, Previous: Kerberos Services, Up: Services [Contents][Index]
The (gnu services authentication)
module provides the
nslcd-service-type
, which can be used to authenticate against an LDAP
server. In addition to configuring the service itself, you may want to add
ldap
as a name service to the Name Service Switch. See Name Service Switch for detailed information.
Here is a simple operating system declaration with a default configuration of
the nslcd-service-type
and a Name Service Switch configuration that
consults the ldap
name service last:
(use-service-modules authentication) (use-modules (gnu system nss)) ... (operating-system ... (services (cons* (service nslcd-service-type) (service dhcp-client-service-type) %base-services)) (name-service-switch (let ((services (list (name-service (name "db")) (name-service (name "files")) (name-service (name "ldap"))))) (name-service-switch (inherit %mdns-host-lookup-nss) (password services) (shadow services) (group services) (netgroup services) (gshadow services)))))
Available nslcd-configuration
fields are:
nslcd-configuration
parameter: package nss-pam-ldapdThe nss-pam-ldapd
package to use.
nslcd-configuration
parameter: maybe-number threadsThe number of threads to start that can handle requests and perform LDAP queries. Each thread opens a separate connection to the LDAP server. The default is to start 5 threads.
Defaults to ‘disabled’.
nslcd-configuration
parameter: string uidThis specifies the user id with which the daemon should be run.
Defaults to ‘"nslcd"’.
nslcd-configuration
parameter: string gidThis specifies the group id with which the daemon should be run.
Defaults to ‘"nslcd"’.
nslcd-configuration
parameter: log-option logThis option controls the way logging is done via a list containing SCHEME and LEVEL. The SCHEME argument may either be the symbols ‘none’ or ‘syslog’, or an absolute file name. The LEVEL argument is optional and specifies the log level. The log level may be one of the following symbols: ‘crit’, ‘error’, ‘warning’, ‘notice’, ‘info’ or ‘debug’. All messages with the specified log level or higher are logged.
Defaults to ‘("/var/log/nslcd" info)’.
nslcd-configuration
parameter: list uriThe list of LDAP server URIs. Normally, only the first server will be used with the following servers as fall-back.
Defaults to ‘("ldap://localhost:389/")’.
nslcd-configuration
parameter: maybe-string ldap-versionThe version of the LDAP protocol to use. The default is to use the maximum version supported by the LDAP library.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string binddnSpecifies the distinguished name with which to bind to the directory server for lookups. The default is to bind anonymously.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string bindpwSpecifies the credentials with which to bind. This option is only applicable when used with binddn.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string rootpwmoddnSpecifies the distinguished name to use when the root user tries to modify a user’s password using the PAM module.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string rootpwmodpwSpecifies the credentials with which to bind if the root user tries to change a user’s password. This option is only applicable when used with rootpwmoddn
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string sasl-mechSpecifies the SASL mechanism to be used when performing SASL authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string sasl-realmSpecifies the SASL realm to be used when performing SASL authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string sasl-authcidSpecifies the authentication identity to be used when performing SASL authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string sasl-authzidSpecifies the authorization identity to be used when performing SASL authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-boolean sasl-canonicalize?Determines whether the LDAP server host name should be canonicalised. If this is enabled the LDAP library will do a reverse host name lookup. By default, it is left up to the LDAP library whether this check is performed or not.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string krb5-ccnameSet the name for the GSS-API Kerberos credentials cache.
Defaults to ‘disabled’.
nslcd-configuration
parameter: string baseThe directory search base.
Defaults to ‘"dc=example,dc=com"’.
nslcd-configuration
parameter: scope-option scopeSpecifies the search scope (subtree, onelevel, base or children). The default scope is subtree; base scope is almost never useful for name service lookups; children scope is not supported on all servers.
Defaults to ‘(subtree)’.
nslcd-configuration
parameter: maybe-deref-option derefSpecifies the policy for dereferencing aliases. The default policy is to never dereference aliases.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-boolean referralsSpecifies whether automatic referral chasing should be enabled. The default behaviour is to chase referrals.
Defaults to ‘disabled’.
nslcd-configuration
parameter: list-of-map-entries mapsThis option allows for custom attributes to be looked up instead of the default RFC 2307 attributes. It is a list of maps, each consisting of the name of a map, the RFC 2307 attribute to match and the query expression for the attribute as it is available in the directory.
Defaults to ‘()’.
nslcd-configuration
parameter: list-of-filter-entries filtersA list of filters consisting of the name of a map to which the filter applies and an LDAP search filter expression.
Defaults to ‘()’.
nslcd-configuration
parameter: maybe-number bind-timelimitSpecifies the time limit in seconds to use when connecting to the directory server. The default value is 10 seconds.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number timelimitSpecifies the time limit (in seconds) to wait for a response from the LDAP server. A value of zero, which is the default, is to wait indefinitely for searches to be completed.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number idle-timelimitSpecifies the period if inactivity (in seconds) after which the con‐ nection to the LDAP server will be closed. The default is not to time out connections.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number reconnect-sleeptimeSpecifies the number of seconds to sleep when connecting to all LDAP servers fails. By default one second is waited between the first failure and the first retry.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number reconnect-retrytimeSpecifies the time after which the LDAP server is considered to be permanently unavailable. Once this time is reached retries will be done only once per this time period. The default value is 10 seconds.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-ssl-option sslSpecifies whether to use SSL/TLS or not (the default is not to). If ’start-tls is specified then StartTLS is used rather than raw LDAP over SSL.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-tls-reqcert-option tls-reqcertSpecifies what checks to perform on a server-supplied certificate. The meaning of the values is described in the ldap.conf(5) manual page.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string tls-cacertdirSpecifies the directory containing X.509 certificates for peer authen‐ tication. This parameter is ignored when using GnuTLS.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string tls-cacertfileSpecifies the path to the X.509 certificate for peer authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string tls-randfileSpecifies the path to an entropy source. This parameter is ignored when using GnuTLS.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string tls-ciphersSpecifies the ciphers to use for TLS as a string.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string tls-certSpecifies the path to the file containing the local certificate for client TLS authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string tls-keySpecifies the path to the file containing the private key for client TLS authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number pagesizeSet this to a number greater than 0 to request paged results from the LDAP server in accordance with RFC2696. The default (0) is to not request paged results.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-ignore-users-option nss-initgroups-ignoreusersThis option prevents group membership lookups through LDAP for the specified users. Alternatively, the value ’all-local may be used. With that value nslcd builds a full list of non-LDAP users on startup.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number nss-min-uidThis option ensures that LDAP users with a numeric user id lower than the specified value are ignored.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number nss-uid-offsetThis option specifies an offset that is added to all LDAP numeric user ids. This can be used to avoid user id collisions with local users.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-number nss-gid-offsetThis option specifies an offset that is added to all LDAP numeric group ids. This can be used to avoid user id collisions with local groups.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-boolean nss-nested-groupsIf this option is set, the member attribute of a group may point to another group. Members of nested groups are also returned in the higher level group and parent groups are returned when finding groups for a specific user. The default is not to perform extra searches for nested groups.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-boolean nss-getgrent-skipmembersIf this option is set, the group member list is not retrieved when looking up groups. Lookups for finding which groups a user belongs to will remain functional so the user will likely still get the correct groups assigned on login.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-boolean nss-disable-enumerationIf this option is set, functions which cause all user/group entries to be loaded from the directory will not succeed in doing so. This can dramatically reduce LDAP server load in situations where there are a great number of users and/or groups. This option is not recommended for most configurations.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string validnamesThis option can be used to specify how user and group names are verified within the system. This pattern is used to check all user and group names that are requested and returned from LDAP.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-boolean ignorecaseThis specifies whether or not to perform searches using case-insensitive matching. Enabling this could open up the system to authorization bypass vulnerabilities and introduce nscd cache poisoning vulnerabilities which allow denial of service.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-boolean pam-authc-ppolicyThis option specifies whether password policy controls are requested and handled from the LDAP server when performing user authentication.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string pam-authc-searchBy default nslcd performs an LDAP search with the user’s credentials after BIND (authentication) to ensure that the BIND operation was successful. The default search is a simple check to see if the user’s DN exists. A search filter can be specified that will be used instead. It should return at least one entry.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string pam-authz-searchThis option allows flexible fine tuning of the authorisation check that should be performed. The search filter specified is executed and if any entries match, access is granted, otherwise access is denied.
Defaults to ‘disabled’.
nslcd-configuration
parameter: maybe-string pam-password-prohibit-messageIf this option is set password modification using pam_ldap will be denied and the specified message will be presented to the user instead. The message can be used to direct the user to an alternative means of changing their password.
Defaults to ‘disabled’.
nslcd-configuration
parameter: list pam-servicesList of pam service names for which LDAP authentication should suffice.
Defaults to ‘()’.
Next: Web Services, Previous: Kerberos Services, Up: Services [Contents][Index]