1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-09 13:42:56 +00:00
freebsd/etc
Doug Rabson a9148abd9d Implement support for RPCSEC_GSS authentication to both the NFS client
and server. This replaces the RPC implementation of the NFS client and
server with the newer RPC implementation originally developed
(actually ported from the userland sunrpc code) to support the NFS
Lock Manager.  I have tested this code extensively and I believe it is
stable and that performance is at least equal to the legacy RPC
implementation.

The NFS code currently contains support for both the new RPC
implementation and the older legacy implementation inherited from the
original NFS codebase. The default is to use the new implementation -
add the NFS_LEGACYRPC option to fall back to the old code. When I
merge this support back to RELENG_7, I will probably change this so
that users have to 'opt in' to get the new code.

To use RPCSEC_GSS on either client or server, you must build a kernel
which includes the KGSSAPI option and the crypto device. On the
userland side, you must build at least a new libc, mountd, mount_nfs
and gssd. You must install new versions of /etc/rc.d/gssd and
/etc/rc.d/nfsd and add 'gssd_enable=YES' to /etc/rc.conf.

As long as gssd is running, you should be able to mount an NFS
filesystem from a server that requires RPCSEC_GSS authentication. The
mount itself can happen without any kerberos credentials but all
access to the filesystem will be denied unless the accessing user has
a valid ticket file in the standard place (/tmp/krb5cc_<uid>). There
is currently no support for situations where the ticket file is in a
different place, such as when the user logged in via SSH and has
delegated credentials from that login. This restriction is also
present in Solaris and Linux. In theory, we could improve this in
future, possibly using Brooks Davis' implementation of variant
symlinks.

Supporting RPCSEC_GSS on a server is nearly as simple. You must create
service creds for the server in the form 'nfs/<fqdn>@<REALM>' and
install them in /etc/krb5.keytab. The standard heimdal utility ktutil
makes this fairly easy. After the service creds have been created, you
can add a '-sec=krb5' option to /etc/exports and restart both mountd
and nfsd.

The only other difference an administrator should notice is that nfsd
doesn't fork to create service threads any more. In normal operation,
there will be two nfsd processes, one in userland waiting for TCP
connections and one in the kernel handling requests. The latter
process will create as many kthreads as required - these should be
visible via 'top -H'. The code has some support for varying the number
of service threads according to load but initially at least, nfsd uses
a fixed number of threads according to the value supplied to its '-n'
option.

Sponsored by:	Isilon Systems
MFC after:	1 month
2008-11-03 10:38:00 +00:00
..
bluetooth
defaults Allow a jail to be started with a specific route fib. 2008-09-16 20:18:25 +00:00
etc.amd64 Restore 256 pty(4) entries. 2008-08-24 08:41:29 +00:00
etc.arm Restore 256 pty(4) entries. 2008-08-24 08:41:29 +00:00
etc.i386 Restore 256 pty(4) entries. 2008-08-24 08:41:29 +00:00
etc.ia64 Restore 256 pty(4) entries. 2008-08-24 08:41:29 +00:00
etc.mips Add entries for uart based serial ports. All the serial ports on mips 2008-10-12 06:58:03 +00:00
etc.powerpc Restore 256 pty(4) entries. 2008-08-24 08:41:29 +00:00
etc.sparc64 Restore 256 pty(4) entries. 2008-08-24 08:41:29 +00:00
gss Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
mail Use better examples (and comment them out for safety). 2008-02-17 05:22:08 +00:00
mtree Create separate cat directories for en.UTF-8. This, together with r183697, 2008-10-08 13:28:02 +00:00
namedb Strongly discourage the use of the query-source option, and explain why. 2008-07-12 10:00:36 +00:00
pam.d Add PAM support to cron(8). Now cron(8) will skip commands scheduled 2007-06-17 17:25:53 +00:00
periodic Sort `mount -p' output by name before checking for any differences. 2008-10-25 18:45:40 +00:00
ppp With uart(4) default, change /dev/cuad# to /dev/cuau# so that 2008-07-19 20:00:18 +00:00
rc.d Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
root Remove more vestiges of /usr/X11R6, but leave mtree for portmgr. 2007-05-29 06:37:58 +00:00
sendmail A no-op commit to simulate the effect of a forced commit so the file 2008-08-31 18:21:15 +00:00
amd.map
apmd.conf
auth.conf
crontab
csh.cshrc
csh.login
csh.logout
ddb.conf Use the new command file feature of ddb(8) to support setting ddb(4) 2008-03-05 18:32:58 +00:00
devd.conf Make a note about the notify codes for the four special function keys above the 2008-10-27 16:20:40 +00:00
devfs.conf
dhclient.conf
disktab
fbtab
freebsd-update.conf Add /usr/share/man/whatis, /var/db/locate.database, and /var/log to the 2008-08-08 10:36:16 +00:00
ftpusers
gettytab
group Create group ftp by default. This is gid 14 as this is the historical 2007-06-11 18:36:39 +00:00
hosts
hosts.allow
hosts.equiv
hosts.lpd
inetd.conf Remove reference to the old ftp-proxy implementation, 2007-07-05 09:46:53 +00:00
libalias.conf
login.access
login.conf Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
mac.conf
Makefile Explicitly set the shell to /bin/sh when MK_TCSH == no. 2008-10-29 18:46:47 +00:00
man.alias
master.passwd
minfree
motd
netconfig
netstart Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and 2008-05-26 10:40:09 +00:00
network.subr Remove compat support for vaps_<ifn> and vap_create_<ifn> variables as 2008-10-01 18:46:46 +00:00
networks
newsyslog.conf Remove the C flag from slip.log. The current slip userbase does not 2008-03-27 03:30:14 +00:00
nls.alias
nscd.conf
nsmb.conf
nsswitch.conf
opieaccess
pccard_ether Implement a "quiet" mode for rc.d/netif, which only outputs 2008-06-23 20:50:11 +00:00
pf.os
phones
portsnap.conf Add support for specifying which INDEX files to build via portsnap.conf. 2008-05-17 16:26:27 +00:00
printcap
profile
protocols Update /etc/protocols with IANA list updated 2007-02-12 2007-05-20 03:55:22 +00:00
rc Remove pointless informational message. 2008-06-23 04:18:22 +00:00
rc.bsdextended
rc.firewall Allow the network addresses and interface names for the "client" and 2008-08-15 19:20:59 +00:00
rc.firewall6 o Correct an info about "Firewalls and Internet Security" book: name, 2008-01-12 19:02:09 +00:00
rc.initdiskless Add support to rc.initdiskless for /conf/T/M/remount_subdir. 2008-09-09 18:40:50 +00:00
rc.resume Change the module example to kldload since this is the resume side. 2008-07-21 22:55:40 +00:00
rc.sendmail
rc.shutdown
rc.subr Show which rc script is running since the default ^T just shows 'sh' as the 2008-10-27 01:05:09 +00:00
rc.suspend With uart(4) default, change sio# to uart# so that 2008-07-19 20:12:33 +00:00
regdomain.xml 802.11 regulatory definitions used by ifconfig 2008-04-20 20:37:02 +00:00
remote Add ucomX shortcuts just like its uart sibling. 2008-10-27 17:19:14 +00:00
rpc
services Use the udp protocol in favor of the nonexistant upd protocol in the 2007-09-21 01:26:00 +00:00
shells
snmpd.config
sysctl.conf
syslog.conf
termcap.small