User NFS

This is an NFS server from Simon J. Gerraty <sjg@crufty.net> designed to be tunneled through a firewall. The server supports both TCP and UDP tansport, but by running it under inetd and with no entry for UDP, only TCP is supported.

The readme file from the actual implementation can be found in README.UNFS

Performace of the server is about 25% of a kernel based NFS running on the same machine. The performance of unfsc (the RPC shuffler) is even worse as it has to unpack/pack each RPC twice.

Because the server can be configured to re-export NFS mounted filesystems plus the fact that by default the server ignores non-NFS mount points, only a single mount per server need be issued on the client to access all of the server's filesystems.

Setup

The default exports file is /usr/local/etc/exports

The following entry needs to be added to /etc/services

unfs	449/tcp
And the following in /etc/inetd.conf
unfs	stream	tcp	nowait root	\
	/usr/local/etc/unfsd unfsd-tcp -a
of course the portnumber used can be changed to any available number. The -a option tells unfsd to require a one-time password before processing the mount request. This prevents auto-recovery if the server is lost - a real pain.

For the next release (please don't ask when :-) I plan to support RPC's over SSL and use X.509 certs to authenticate mount requests as an option to one-time passwords. This would allow for auto-recovery from server restarts and would of course also allow for safe export of filesystems beyond the firewall.


Simon J. Gerraty <sjg@crufty.net>