gssd(8) - phpMan

Command: man perldoc info search(apropos)  


rpc.gssd(8)                          System Manager's Manual                          rpc.gssd(8)

NAME
       rpc.gssd - RPCSEC_GSS daemon

SYNOPSIS
       rpc.gssd  [-DfMnlvrHC] [-k keytab] [-p pipefsdir] [-d ccachedir] [-t timeout] [-T timeout]
       [-U timeout] [-R realm]

INTRODUCTION
       The RPCSEC_GSS protocol, defined in RFC 5403, is used to provide strong security for  RPC-
       based protocols such as NFS.

       Before  exchanging RPC requests using RPCSEC_GSS, an RPC client must establish a GSS secu-
       rity context.  A security context is shared state on each end of a network transport  that
       enables GSS-API security services.

       Security  contexts are established using security credentials.  A credential grants tempo-
       rary access to a secure network service, much as a railway ticket grants temporary  access
       to use a rail service.

       A  user typically obtains a credential by providing a password to the kinit(1) command, or
       via a PAM library at login time.  A credential acquired with a user principal is known  as
       a user credential (see kerberos(1) for more on principals).

       Certain  operations  require a credential that represents no particular user or represents
       the host itself.  This kind of credential is called a machine credential.

       A host establishes its machine credential using a service principal whose encrypted  pass-
       word  is stored in a local file known as a keytab.  A machine credential remains effective
       without user intervention as long as the host can renew it.

       Once obtained, credentials are typically stored in local temporary files  with  well-known
       pathnames.

DESCRIPTION
       To  establish  GSS  security  contexts  using these credential files, the Linux kernel RPC
       client depends on a userspace daemon  called  rpc.gssd.   The  rpc.gssd  daemon  uses  the
       rpc_pipefs filesystem to communicate with the kernel.

   User Credentials
       When  a  user  authenticates using a command such as kinit(1), the resulting credential is
       stored in a file with a well-known name constructed using the user's UID.

       To interact with an NFS server on behalf of a particular Kerberos-authenticated user,  the
       Linux kernel RPC client requests that rpc.gssd initialize a security context with the cre-
       dential in that user's credential file.

       Typically, credential files are placed in /tmp.  However, rpc.gssd can search for  creden-
       tial files in more than one directory.  See the description of the -d option for details.

   Machine Credentials
       rpc.gssd searches the default keytab, /etc/krb5.keytab, in the following order for a prin-
       cipal and password to use when establishing  the  machine  credential.   For  the  search,
       rpc.gssd  replaces  <hostname>  and  <REALM> with the local system's hostname and Kerberos
       realm.

          <HOSTNAME>$@<REALM>
          root/<hostname>@<REALM>
          nfs/<hostname>@<REALM>
          host/<hostname>@<REALM>
          root/<anyname>@<REALM>
          nfs/<anyname>@<REALM>
          host/<anyname>@<REALM>

       rpc.gssd selects one of the <anyname> entries if it does  not  find  a  service  principal
       matching  the  local  hostname,  e.g. if DHCP assigns the local hostname dynamically.  The
       <anyname> facility enables the use of the same keytab on multiple systems.  However, using
       the  same service principal to establish a machine credential on multiple hosts can create
       unwanted security exposures and is therefore not recommended.

       Note that <HOSTNAME>$@<REALM> is a user principal that enables Kerberized NFS when the lo-
       cal  system  is joined to an Active Directory domain using Samba.  The keytab provides the
       password for this principal.

       You can specify a different keytab by using the -k option if /etc/krb5.keytab does not ex-
       ist or does not provide one of these principals.

   Credentials for UID 0
       UID  0  is  a special case.  By default rpc.gssd uses the system's machine credentials for
       UID 0 accesses that require GSS authentication.  This limits the privileges  of  the  root
       user when accessing network resources that require authentication.

       Specify  the  -n option when starting rpc.gssd if you'd like to force the root user to ob-
       tain a user credential rather than use the local system's machine credential.

       When -n is specified, the kernel continues to request a GSS context established with a ma-
       chine  credential  for  NFSv4 operations, such as SETCLIENTID or RENEW, that manage state.
       If rpc.gssd cannot obtain a machine credential (say, the  local  system  has  no  keytab),
       NFSv4 operations that require machine credentials will fail.

   Encryption types
       A  realm  administrator can choose to add keys encoded in a number of different encryption
       types to the local system's keytab.  For instance, a host/ principal might have  keys  for
       the  aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha1-96, des3-cbc-sha1, and arcfour-hmac en-
       cryption types.  This permits rpc.gssd to choose an appropriate encryption type  that  the
       target NFS server supports.

       These  encryption types are stronger than legacy single-DES encryption types.  To interop-
       erate in environments where servers support only weak encryption types, you  can  restrict
       your  client  to  use  only  single-DES  encryption types by specifying the -l option when
       starting rpc.gssd.

OPTIONS
       -D     The server name passed to GSSAPI for authentication is normally the name exactly as
              requested.   e.g. for NFS it is the server name in the "servername:/path" mount re-
              quest.  Only if this servername appears to be an IP address (IPv4 or  IPv6)  or  an
              unqualified  name  (no dots) will a reverse DNS lookup will be performed to get the
              canoncial server name.

              If -D is present, a reverse DNS lookup will always be used, even if the server name
              looks like a canonical name.  So it is needed if partially qualified, or non canon-
              ical names are regularly used.

              Using -D can introduce a security vulnerability, so it is recommended that  -D  not
              be used, and that canonical names always be used when requesting services.

       -f     Runs rpc.gssd in the foreground and sends output to stderr (as opposed to syslogd)

       -n     When  specified,  UID 0 is forced to obtain user credentials which are used instead
              of the local system's machine credentials.

       -k keytab
              Tells rpc.gssd to use the keys found in keytab to obtain machine credentials.   The
              default value is /etc/krb5.keytab.

       -l     When  specified,  restricts  rpc.gssd  to sessions to weak encryption types such as
              des-cbc-crc.  This option is available only when the local  system's  Kerberos  li-
              brary supports settable encryption types.

       -p path
              Tells  rpc.gssd  where to look for the rpc_pipefs filesystem.  The default value is
              /var/lib/nfs/rpc_pipefs.

       -d search-path
              This option specifies a colon separated list of directories that rpc.gssd  searches
              for  credential  files.   The  default value is /tmp:/run/user/%U.  The literal se-
              quence "%U" can be specified to substitue the UID of the user for whom  credentials
              are being searched.

       -M     By  default,  machine credentials are stored in files in the first directory in the
              credential directory search path (see the -d option).  When  -M  is  set,  rpc.gssd
              stores machine credentials in memory instead.

       -v     Increases the verbosity of the output (can be specified multiple times).

       -r     If  the RPCSEC_GSS library supports setting debug level, increases the verbosity of
              the output (can be specified multiple times).

       -R realm
              Kerberos tickets from this realm will be preferred when scanning available  creden-
              tials  cache  files to be used to create a context.  By default, the default realm,
              as configured in the Kerberos configuration file, is preferred.

       -t timeout
              Timeout, in seconds, for kernel GSS contexts. This option allows you to  force  new
              kernel  contexts to be negotiated after timeout seconds, which allows changing Ker-
              beros tickets and identities frequently.  The default is no explicit timeout, which
              means the kernel context will live the lifetime of the Kerberos service ticket used
              in its creation.

       -T timeout
              Timeout, in seconds, to create an RPC connection with a server  while  establishing
              an  authenticated gss context for a user.  The default timeout is set to 5 seconds.
              If you get messages like "WARNING: can't create tcp rpc_clnt to server %servername%
              for  user  with  uid  %uid%:  RPC: Remote system error - Connection timed out", you
              should consider an increase of this timeout.

       -U timeout
              Timeout, in seconds, for upcall threads.  Threads  executing  longer  than  timeout
              seconds  will  cause an error message to be logged.  The default timeout is 30 sec-
              onds.  The minimum is 5 seconds.  The maximum is 600 seconds.

       -C     In addition to logging an error message for threads that have timed out, the thread
              will be canceled and an error of -ETIMEDOUT will be reported to the kernel.

       -H     Avoids setting $HOME to "/". This allows rpc.gssd to read per user k5identity files
              versus trying to read /.k5identity for each user.

              If  -H  is  not  set,  rpc.gssd  will  use  the  first  match  found  in  /var/ker-
              beros/krb5/user/$EUID/client.keytab  and  will  not  use  a principal based on host
              and/or service parameters listed in $HOME/.k5identity.

CONFIGURATION FILE
       Many of the options that can be set on the command line can  also  be  controlled  through
       values  set  in the [gssd] section of the /etc/nfs.conf configuration file.  Values recog-
       nized include:

       verbosity
              Value which is equivalent to the number of -v.

       rpc-verbosity
              Value which is equivalent to the number of -r.

       use-memcache
              A Boolean flag equivalent to -M.

       use-machine-creds
              A Boolean flag. Setting to false is equivalent to giving the -n flag.

       avoid-dns
              Setting to false is equivalent to providing the -D flag.

       limit-to-legacy-enctypes
              Equivalent to -l.

       context-timeout
              Equivalent to -t.

       rpc-timeout
              Equivalent to -T.

       keytab-file
              Equivalent to -k.

       cred-cache-directory
              Equivalent to -d.

       preferred-realm
              Equivalent to -R.

       upcall-timeout
              Equivalent to -U.

       cancel-timed-out-upcalls
              Setting to true is equivalent to providing the -C flag.

       set-home
              Setting to false is equivalent to providing the -H flag.

       In addtion, the following value is recognized from the [general] section:

       pipefs-directory
              Equivalent to -p.

SEE ALSO
       rpc.svcgssd(8), kerberos(1), kinit(1), krb5.conf(5)

AUTHORS
       Dug Song <dugsong AT umich.edu>
       Andy Adamson <andros AT umich.edu>
       Marius Aamodt Eriksen <marius AT umich.edu>
       J. Bruce Fields <bfields AT umich.edu>

                                           20 Feb 2013                                rpc.gssd(8)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2025-01-15 05:54 @3.14.254.103 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0!Valid CSS!