Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SLAPO-NSSOV(5)		      File Formats Manual		SLAPO-NSSOV(5)

NAME
       slapo-nssov - NSS and PAM requests through a local Unix Domain socket

SYNOPSIS
       ETCDIR/slapd.conf

DESCRIPTION
       The  nssov  overlay to slapd(8) services	NSS and	PAM requests through a
       local Unix Domain socket.  It uses the same IPC protocol	as  Arthur  de
       Jong's  nss-pam-ldapd.	An extract of the nss-ldapd source is included
       along with the nssov source code	to allow the  overlay  to  communicate
       with the	nss-pam-ldapd client stubs.

       Using  a	 separate IPC protocol for NSS and PAM requests	eliminates the
       libldap dependencies/clashes that the current  pam_ldap/nss_ldap	 solu-
       tions all suffer	from. Both the original	nss-ldapd and this nssov solu-
       tion are	free from these	library	issues.

       Unlike  nss-pam-ldapd,  since this overlay executes inside slapd	it al-
       lows for	the possibility	of sophisticated caching, without any  of  the
       weaknesses  of nscd and other related caching solutions.	E.g., a	remote
       LDAP database can be accessed using back-ldap with proxy	 caching  (see
       slapd-ldap(5)  and slapo-pcache(5) ) to leverage	back-ldap's connection
       pooling as well as pcache's persistent caching, to provide high perfor-
       mance and a measure of support for  disconnected	 operation.   Alterna-
       tively,	cache considerations can be completely eliminated by running a
       regular database	with syncrepl to maintain synchronization with	a  re-
       mote LDAP database.

       Another major benefit of	nssov is that it allows	all security policy to
       be  administered	 centrally  via	 LDAP, instead of having fragile rules
       scattered across	multiple flat files. As	such, there is no  client-side
       configuration at	all for	the NSS/PAM stub libraries. (The stubs talk to
       the  server  via	a Unix domain socket whose path	is hardcoded to	NSLCD-
       PATH). As a side	benefit, this can finally eliminate the	perpetual con-
       fusion between OpenLDAP's ldap.conf file	in  ETCDIR/ldap.conf  and  the
       similarly named files typically used by pam_ldap	and nss_ldap.

       User  authentication is performed by internal simple Binds. User	autho-
       rization	leverages the slapd ACL	engine,	which offers much  more	 power
       and  flexibility	 than  the  simple  group/hostname  checks  in the old
       pam_ldap	code.

       To use this code, you will need the client-side stub library from  nss-
       pam-ldapd.   You	can get	it from: http://arthurdejong.org/nss-pam-ldapd
       You will	not need the nslcd daemon; this	overlay	 replaces  that	 part.
       To  disable  building  of  the  nslcd  daemon in	nss-pam-ldapd, add the
       --disable-nslcd option  to  the	nss-pam-ldapd  configure  script.  You
       should  already	be  familiar with the RFC2307 and RFC2307bis schema to
       use this	overlay.  See the nss-pam-ldapd	README for more	information on
       the schema and which features are supported.

       You will	also need to include the nis.schema in your  slapd  configura-
       tion for	RFC2307	support. If you	wish to	use RFC2307bis you will	need a
       slightly	different schema. You will also	need the ldapns.schema for PAM
       authorization management.

       You  must select	ldap in	the appropriate	services in /etc/nsswitch.conf
       in order	for these NSS features to take effect. Likewise, you must  en-
       able pam_ldap for the authenticate, account, session, and password ser-
       vices in	/etc/pam.conf or /etc/pam.d for	these PAM features to take ef-
       fect.

       overlay nssov
	      This directive adds the nssov overlay to the current backend.

       nssov-ssd <service> <url>
	      This  directive configures a Service Search Descriptor (SSD) for
	      each NSS service that will be used.  The <service> may be	one of
		  aliases
		  ethers
		  group
		  hosts
		  netgroup
		  networks
		  passwd
		  protocols
		  rpc
		  services
		  shadow
       and the <url> must be of	the form

	      ldap:///[<basedn>][??[<scope>][?<filter>]]
       The <basedn> will default to the	first suffix of	the current  database.
       The  <scope>  defaults  to  "subtree".  The default <filter> depends on
       which service is	being used.

       nssov-map <service> <orig> <new>
	      If the local database is actually	a  proxy  to  a	 foreign  LDAP
	      server, some mapping of schema may be needed. This directive al-
	      lows  some  simple  attribute substitutions to be	performed. See
	      the nss-ldapd/README for the original attribute  names  used  in
	      this code.

       nssov-pam <option> [...]
	      This  directive  determines  a number of PAM behaviors. Multiple
	      options may be used at once, and available levels	are:
		     userhost
			    check host attribute in user entry for  authoriza-
			    tion
		     userservice
			    check  authorizedService  attribute	 in user entry
			    for	authorization
		     usergroup
			    check that user is a member	of specific group  for
			    authorization
		     hostservice
			    check  authorizedService  attribute	 in host entry
			    for	authorization
		     authz2dn
			    use	authz-regexp mapping to	map uid	to LDAP	DN
		     uid2dn use	NSS passwd SSD to map uid to LDAP DN

	      Setting the userhost, userservice, and usergroup options	dupli-
	      cates the	original pam_ldap authorization	behavior.

	      The  recommended approach	is to use hostservice instead. In this
	      case, ipHost entries must	be created for all  hosts  being  man-
	      aged,  and they must also	have the authorizedServiceObject class
	      to allow authorizedService attributes to be used.	Also  the  NSS
	      host SSD must be configured so that ipHost entries can be	found.
	      Authorization is checked by performing an	LDAP Compare operation
	      looking  for  the	 PAM service name in the authorizedService at-
	      tribute.	slapd ACLs should be set  to  grant  or	 deny  Compare
	      privilege	to the appropriate users or groups as desired.

	      If the authz2dn option is	set then authz-regexp mappings will be
	      used  to	map the	PAM username to	an LDAP	DN. The	authentication
	      DN will be of the	form
		     cn=<service>+uid=<user>,cn=<hostname>,cn=pam,cn=auth

	      If no mapping is found for this  authentication  DN,  then  this
	      mapping will be ignored.

	      If the uid2dn option is set then the NSS passwd SSD will be used
	      to  map the PAM username to an LDAP DN. The passwd SSD must have
	      already been configured for this mapping to succeed.

	      If neither the authz2dn nor the  uid2dn  mapping	succeeds,  the
	      module  will return a PAM_USER_UNKNOWN failure code. If both op-
	      tions are	set, the authz mapping is attempted first; if it  suc-
	      ceeds the	uid2dn mapping will be skipped.

	      By default only the uid2dn option	is set.

       nssov-pam-defhost <hostname>
	      Specify  a  default hostname to check if an ipHost entry for the
	      current hostname cannot be found.	This setting is	only  relevant
	      if the hostservice option	has been set.

       nssov-pam-group-dn <DN>
	      Specify  the DN of an LDAP group to check	for authorization. The
	      LDAP user	must be	a member of this group for the login to	be al-
	      lowed. There is no default value.	This setting is	only  relevant
	      if the usergroup option has been set.

       nssov-pam-group-ad <attribute>
	      Specify the attribute to use for group membership	checks.	 There
	      is no default value.  This setting is only relevant if the user-
	      group option has been set.

       nssov-pam-min-uid <integer>
	      Specify  a  minimum  uid	that is	allowed	to login. Users	with a
	      uidNumber	lower than this	value will be denied access.  The  de-
	      fault is zero, which disables this setting.

       nssov-pam-max-uid <integer>
	      Specify  a  maximum  uid	that is	allowed	to login. Users	with a
	      uidNumber	higher than this value will be denied access. The  de-
	      fault is zero, which disables this setting.

       nssov-pam-template-ad <attribute>
	      Specify  an  attribute to	check in a user's entry	for a template
	      login name.  The template	login feature is used by FreeBSD's PAM
	      framework. It can	be viewed as a form of proxying, where a  user
	      can  authenticate	 with  one  username/password pair, but	is as-
	      signed the identity and credentials of the template  user.  This
	      setting is disabled by default.

       nssov-pam-template <name>
	      Specify  a  default username to be used if no template attribute
	      is found in the user's entry. The	 nssov-pam-template-ad	direc-
	      tive must	be configured for this setting to have any effect.

       nssov-pam-session <service>
	      Specify  a PAM service name whose	sessions will be recorded. For
	      the configured services, logins will be recorded in the

       nssov-pam-password-prohibit-message <message>
	      Disable password change service and return the specified message
	      to users.

       nssov-pam-pwdmgr-dn <dn>
	      Specify the dn of	the password manager.

       nssov-pam-pwdmgr-pwd <pwd>
	      Specify the pwd of the password manager.

       loginStatus
	      operational attribute of the user's entry. The attribute's  val-
	      ues are of the form
		     <generalizedTime> <host> <service>	<tty> (<ruser@rhost>)
       Upon  logout  the corresponding value will be deleted. This feature al-
       lows a single LDAP Search to be used to check which users are logged in
       across all the hosts of a network. The rootdn of	the database  is  used
       to  perform  the	updates	of the loginStatus attribute, so a rootdn must
       already be configured for this feature to work. By default no  services
       are configured.

       The PAM functions support LDAP Password Policy as well. If the password
       policy  overlay	is  in	use (see slapo-ppolicy(5)), policy information
       (e.g. password expiration, password quality, etc.)  may be returned  to
       the  PAM	 client	as a result of authentication, account management, and
       password	modification requests.

       The overlay also	supports dynamic configuration in cn=config. An	 exam-
       ple of the config entry is

		  dn: olcOverlay={0}nssov,ocDatabase={1}mdb,cn=config
		  objectClass: olcOverlayConfig
		  objectClass: olcNssOvConfig
		  olcOverlay: {0}nssov
		  olcNssSsd: passwd ldap:///ou=users,dc=example,dc=com??one
		  olcNssMap: passwd uid	accountName
		  olcNssPam: hostservice uid2dn
		  olcNssPamDefHost: defaulthost
		  olcNssPamMinUid: 500
		  olcNssPamMaxUid: 32000
		  olcNssPamSession: login
		  olcNssPamSession: sshd

       which enables the passwd	service, and uses the accountName attribute to
       fetch what is usually retrieved from the	uid attribute. It also enables
       some  PAM  authorization	controls, and specifies	that the PAM login and
       sshd services should have their logins recorded.

FILES
       ETCDIR/slapd.conf
	      default slapd configuration file

SEE ALSO
       slapd.conf(5),	slapd-config(5),    slapd-ldap(5),    slapo-pcache(5),
       slapo-ppolicy(5), slapd(8).

AUTHOR
       Howard  Chu,  inspired  by  nss-ldapd by	Arthur de Jong and pam_ldap by
       Luke Howard Enhancements	by Ted C. Cheng, Symas Corp.

OpenLDAP LDVERSION		  RELEASEDATE			SLAPO-NSSOV(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=slapo-nssov&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help