opnsense-src/sys/fs
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
..
autofs vfs: remove the thread argument from vget 2020-08-16 17:18:54 +00:00
cd9660 vfs: remove the always-curthread td argument from VOP_RECLAIM 2020-08-19 07:28:01 +00:00
cuse cuse: Stop checking for failures from malloc(M_WAITOK). 2020-07-23 14:03:37 +00:00
deadfs vfs: flatten vop vectors 2019-12-16 00:06:22 +00:00
devfs devfs: Abstract locking assertions 2020-08-12 00:32:31 +00:00
ext2fs extfs: remove redundant little endian conversion. 2020-08-20 05:08:49 +00:00
fdescfs cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
fifofs Call pipeselwakeup() after toggling PIPE_EOF. 2020-04-27 15:59:07 +00:00
fuse fuse: unbreak after r364814 2020-08-26 21:13:36 +00:00
mntfs Add a new "mntfs" pseudo file system which provides private device vnodes for 2020-03-06 18:41:37 +00:00
msdosfs vfs: drop the error parameter from vn_isdisk, introduce vn_isdisk_error 2020-08-19 02:51:17 +00:00
nfs Add flags to enable NFS over TLS to the NFS client and server. 2020-08-27 23:57:30 +00:00
nfsclient Add flags to enable NFS over TLS to the NFS client and server. 2020-08-27 23:57:30 +00:00
nfsserver Add flags to enable NFS over TLS to the NFS client and server. 2020-08-27 23:57:30 +00:00
nullfs VMIO reads: enable for nullfs upper vnode if the lower vnode supports it. 2020-08-16 21:05:56 +00:00
procfs cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
pseudofs vfs: remove the thread argument from vget 2020-08-16 17:18:54 +00:00
smbfs vfs: remove the always-curthread td argument from VOP_RECLAIM 2020-08-19 07:28:01 +00:00
tmpfs cache: add cache_rename, a dedicated helper to use for renames 2020-08-20 10:05:46 +00:00
udf vfs: drop the error parameter from vn_isdisk, introduce vn_isdisk_error 2020-08-19 02:51:17 +00:00
unionfs vfs: remove the always-curthread td argument from VOP_RECLAIM 2020-08-19 07:28:01 +00:00