summaryrefslogtreecommitdiffstats
path: root/utils/gssd/gssd.man
blob: fb3ab9788260d19a37d405b697bab7d390375091 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
.\"
.\" rpc.gssd(8)
.\"
.\" Copyright (C) 2003 J. Bruce Fields <bfields@umich.edu>
.\"
.TH rpc.gssd 8 "20 Feb 2013"
.SH NAME
rpc.gssd \- RPCSEC_GSS daemon
.SH SYNOPSIS
.B rpc.gssd
.RB [ \-fMnlvr ]
.RB [ \-k
.IR keytab ]
.RB [ \-p
.IR pipefsdir ]
.RB [ \-d
.IR ccachedir ]
.RB [ \-t
.IR timeout ]
.RB [ \-R
.IR realm ]
.SH INTRODUCTION
The RPCSEC_GSS protocol, defined in RFC 5403, is used to provide
strong security for RPC-based protocols such as NFS.
.P
Before exchanging RPC requests using RPCSEC_GSS, an RPC client must
establish a GSS
.IR "security context" .
A security context is shared state on each
end of a network transport that enables GSS-API security services.
.P
Security contexts are established using
.IR "security credentials" .
A credential grants temporary access to a secure network service,
much as a railway ticket grants temporary access to use a rail service.
.P
A user typically obtains a credential by providing a password to the
.BR kinit (1)
command, or via a PAM library at login time.
A credential acquired with a
.I user principal
is known as a
.I user credential
(see
.BR kerberos (1)
for more on principals).
.P
For certain operations, a credential is required
which represents no user,
is otherwise unprivileged,
and is always available.
This is referred to as a
.IR "machine credential" .
.P
Machine credentials are typically established using a
.IR "service principal" ,
whose encrypted password, called its
.IR key ,
is stored in a file, called a
.IR keytab ,
to avoid requiring a user prompt.
A machine credential effectively does not expire because the system
can renew it as needed without user intervention.
.P
Once obtained, credentials are typically stored in local temporary files
with well-known pathnames.
.SH DESCRIPTION
To establish GSS security contexts using these credential files,
the Linux kernel RPC client depends on a userspace daemon called
.BR rpc.gssd .
The
.B rpc.gssd
daemon uses the rpc_pipefs filesystem to communicate with the kernel.
.SH OPTIONS
.TP
.B -f
Runs
.B rpc.gssd
in the foreground and sends output to stderr (as opposed to syslogd)
.TP
.B -n
By default,
.B rpc.gssd
treats accesses by the user with UID 0 specially, and uses
"machine credentials" for all accesses by that user which
require Kerberos authentication.
With the \-n option, "machine credentials" will not be used
for accesses by UID 0.  Instead, credentials must be obtained
manually like all other users.  Use of this option means that
"root" must manually obtain Kerberos credentials before
attempting to mount an nfs filesystem requiring Kerberos
authentication.
.TP
.BI "-k " keytab
Tells
.B rpc.gssd
to use the keys found in
.I keytab
to obtain "machine credentials".
The default value is
.I /etc/krb5.keytab.
.IP
Previous versions of
.B rpc.gssd
used only "nfs/*" keys found within the keytab.
To be more consistent with other implementations, we now look for
specific keytab entries.  The search order for keytabs to be used
for "machine credentials" is now:
.br
  <HOSTNAME>$@<REALM>
.br
  root/<hostname>@<REALM>
.br
  nfs/<hostname>@<REALM>
.br
  host/<hostname>@<REALM>
.br
  root/<anyname>@<REALM>
.br
  nfs/<anyname>@<REALM>
.br
  host/<anyname>@<REALM>
.IP
If this search order does not use the correct key then provide a
keytab file that contains only correct keys.
.TP
.B -l
Tells
.B rpc.gssd
to limit session keys to Single DES even if the kernel supports stronger
encryption types. Service ticket encryption is still governed by what
the KDC believes the target server supports. This way the client can
access a server that has strong keys in its keytab for ticket decryption
but whose kernel only supports Single DES.
.IP
The alternative is to put only Single DES keys in the server's keytab
and limit encryption types for its principal to Single DES on the KDC
which will cause service tickets for this server to be encrypted using
only Single DES and (as a side-effect) contain only Single DES session
keys.
.IP
This legacy behaviour is only required for older servers
(pre nfs-utils-1.2.4). If the server has a recent kernel, Kerberos
implementation and nfs-utils it will work just fine with stronger
encryption.
.IP
.B Note:
This option is only available with Kerberos libraries that 
support setable encryption types.
.TP
.BI "-p " path
Tells
.B rpc.gssd
where to look for the rpc_pipefs filesystem.  The default value is
.IR /var/lib/nfs/rpc_pipefs .
.TP
.BI "-d " search-path
This option specifies a colon separated list of directories that
.B rpc.gssd
searches for credential files.  The default value is
.IR /tmp:/run/user/%U .
The literal sequence "%U" can be specified to substitue the UID
of the user for whom credentials are being searched.
.TP
.B -M
By default, machine credentials are stored in files in the first
directory in the credential directory search path (see the
.B -d
option).  When
.B -M
is set,
.B rpc.gssd
stores machine credentials in memory instead.
.TP
.B -v
Increases the verbosity of the output (can be specified multiple times).
.TP
.B -r
If the RPCSEC_GSS library supports setting debug level,
increases the verbosity of the output (can be specified multiple times).
.TP
.BI "-R " realm
Kerberos tickets from this
.I realm
will be preferred when scanning available credentials cache files to be
used to create a context.  By default, the default realm, as configured
in the Kerberos configuration file, is preferred.
.TP
.BI "-t " timeout
Timeout, in seconds, for kernel GSS contexts. This option allows you to force 
new kernel contexts to be negotiated after
.I timeout
seconds, which allows changing Kerberos 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.
.SH SEE ALSO
.BR rpc.svcgssd (8),
.BR kerberos (1),
.BR kinit (1),
.BR krb5.conf (5)
.SH AUTHORS
.br
Dug Song <dugsong@umich.edu>
.br
Andy Adamson <andros@umich.edu>
.br
Marius Aamodt Eriksen <marius@umich.edu>
.br
J. Bruce Fields <bfields@umich.edu>