freebsd-dev/sys
Rick Macklem 6e4b6ff88f Add flags to enable NFS over TLS to the NFS client and server.
An Internet Draft titled "Towards Remote Procedure Call Encryption By Default"
(soon to be an RFC I think) describes how Sun RPC is to use TLS with NFS
as a specific application case.
Various commits prepared the NFS code to use KERN_TLS, mainly enabling use
of ext_pgs mbufs for large RPC messages.
r364475 added TLS support to the kernel RPC.

This commit (which is the final one for kernel changes required to do
NFS over TLS) adds support for three export flags:
MNT_EXTLS - Requires a TLS connection.
MNT_EXTLSCERT - Requires a TLS connection where the client presents a valid
            X.509 certificate during TLS handshake.
MNT_EXTLSCERTUSER - Requires a TLS connection where the client presents a
            valid X.509 certificate with "user@domain" in the otherName
            field of the SubjectAltName during TLS handshake.
Without these export options, clients are permitted, but not required, to
use TLS.

For the client, a new nmount(2) option called "tls" makes the client do
a STARTTLS Null RPC and TLS handshake for all TCP connections used for the
mount. The CLSET_TLS client control option is used to indicate to the kernel RPC
that this should be done.

Unless the above export flags or "tls" option is used, semantics should
not change for the NFS client nor server.

For NFS over TLS to work, the userspace daemons rpctlscd(8) { for client }
or rpctlssd(8) daemon { for server } must be running.
2020-08-27 23:57:30 +00:00
..
amd64 Restore workaround for sysret fault on non-canonical address after LA57. 2020-08-24 22:12:45 +00:00
arm arm: ti: Fix Beaglebone black MMC after DTS update 2020-08-27 08:08:49 +00:00
arm64 arm64: Increase dmap size to 95 TiB 2020-08-26 02:13:27 +00:00
bsm bsm: add AUE_CLOSERANGE 2020-04-24 01:27:25 +00:00
cam Fix tiny style nit. 2020-08-27 17:46:13 +00:00
cddl ZFS: band-aid for -DNO_CLEAN 2020-08-25 23:35:55 +00:00
compat Implement extensible arrays API using the existing radix tree implementation 2020-08-27 10:28:12 +00:00
conf Implement extensible arrays API using the existing radix tree implementation 2020-08-27 10:28:12 +00:00
contrib remove pragma ident lines 2020-08-26 07:29:17 +00:00
crypto crypto(9): add CRYPTO_BUF_VMPAGE 2020-08-26 02:37:42 +00:00
ddb [PowerPC] More relocation fixes 2020-06-21 03:39:26 +00:00
dev snd_ich(4): Handle errors from ich_init() properly during resume. 2020-08-27 16:36:07 +00:00
dts Remove licenses 2020-06-04 17:20:58 +00:00
fs Add flags to enable NFS over TLS to the NFS client and server. 2020-08-27 23:57:30 +00:00
gdb gdb(4): Support empty qSupported queries 2020-08-18 20:59:10 +00:00
geom geli: use unmapped I/O 2020-08-26 02:44:35 +00:00
gnu Import DTS files for arm, arm64, riscv from Linux 5.8 2020-08-04 19:44:43 +00:00
i386 cpu_auxmsr: assert caller is preventing CPU migration. 2020-08-24 11:49:49 +00:00
isa
kern Add a comment to clarify when and why cached names are deleted 2020-08-27 22:14:58 +00:00
kgssapi Add support for optional separate output buffers to in-kernel crypto. 2020-05-25 22:12:04 +00:00
libkern Add prng(9) API 2020-08-13 20:48:14 +00:00
mips Include virtio support in std.MALTA 2020-07-31 11:28:09 +00:00
modules Implement extensible arrays API using the existing radix tree implementation 2020-08-27 10:28:12 +00:00
net iflib: netmap: publish all the receive buffer 2020-08-25 15:19:45 +00:00
net80211 net80211: enhance getflags*() and ieee80211_add_channel*() 2020-08-24 13:15:08 +00:00
netgraph ng_ubt: Add a device ID. 2020-08-23 19:30:06 +00:00
netinet RFC 3465 defines a limit L used in TCP slow start for limiting the number 2020-08-25 09:42:03 +00:00
netinet6 Make net.inet6.ip6.deembed_scopeid behaviour default & remove sysctl. 2020-08-15 11:37:44 +00:00
netipsec Simplify IPsec transform-specific teardown. 2020-06-25 23:59:16 +00:00
netpfil ipfw: style(9) fixes 2020-08-20 16:56:13 +00:00
netsmb
nfs Transition from rtrequest1_fib() to rib_action(). 2020-07-21 19:56:13 +00:00
nfsclient
nfsserver
nlm Fix export_args ex_flags field so that is 64bits, the same as mnt_flags. 2020-06-14 00:10:18 +00:00
ofed Infiniband clients must be attached and detached in a specific order in ibcore. 2020-07-06 08:50:11 +00:00
opencrypto Name the on-stack union of compat thunks. 2020-08-26 22:36:08 +00:00
powerpc [PowerPC] Make new auxv format default 2020-08-24 13:40:35 +00:00
riscv riscv: Use global mimpid in identify_cpu() 2020-08-18 16:51:04 +00:00
rpc Add TLS support to the kernel RPC. 2020-08-22 03:57:55 +00:00
security cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
sys Add MNT_EXTLSxxx flags that will be used for NFS over TLS exports. 2020-08-26 20:56:05 +00:00
teken
tests
tools makesyscalls.lua: improve syscall ordering validation 2020-08-04 21:49:13 +00:00
ufs cache: add cache_rename, a dedicated helper to use for renames 2020-08-20 10:05:46 +00:00
vm Use a large kmem arena import size on NUMA systems. 2020-08-26 14:31:48 +00:00
x86 amd64: Handle 5-level paging on wakeup. 2020-08-23 20:43:23 +00:00
xdr Split XDR into separate kernel module. Make krpc depend on xdr. 2020-04-17 06:04:20 +00:00
xen
Makefile