18.104.22.168. Securing NFS Mount Options
The use of the
mountcommand in the
/etc/fstabfile is explained in the Storage Administration Guide. From a security administration point of view it is worthwhile to note that the NFS mount options can also be specified in
/etc/nfsmount.conf, which can be used to set custom default options.
22.214.171.124.1. Review the NFS Server
Only export entire file systems. Exporting a subdirectory of a file system can be a security issue. It is possible in some cases for a client to "break out" of the exported part of the file system and get to unexported parts (see the section on subtree checking in the
rooption to export the file system as read-only whenever possible to reduce the number of users able to write to the mounted file system. Only use the
rwoption when specifically required. Refer to the man
exports(5)page for more information. Allowing write access increases the risk from symlink attacks for example. This includes temporary directories such as
Where directories must be mounted with the
rwoption avoid making them world-writable whenever possible to reduce risk. Exporting home directories is also viewed as a risk as some applications store passwords in clear text or weakly encrypted. This risk is being reduced as application code is reviewed and improved. Some users do not set passwords on their SSH keys so this too means home directories present a risk. Enforcing the use of passwords or using Kerberos would mitigate that risk.
Restrict exports only to clients that need access. Use the
showmount -ecommand on an NFS server to review what the server is exporting. Do not export anything that is not specifically required.
Do not use the
no_root_squashoption and review existing installations to make sure it is not used. Refer to Section 126.96.36.199, “Do Not Use the
no_root_squashOption” for more information.
secureoption is the server-side export option used to restrict exports to “reserved” ports. By default, the server allows client communication only from “reserved” ports (ports numbered less than 1024), because traditionally clients have only allowed “trusted” code (such as in-kernel NFS clients) to use those ports. However, on many networks it is not difficult for anyone to become root on some client, so it is rarely safe for the server to assume that communication from a reserved port is privileged. Therefore the restriction to reserved ports is of limited value; it is better to rely on Kerberos, firewalls, and restriction of exports to particular clients.
Most clients still do use reserved ports when possible. However, reserved ports are a limited resource, so clients (especially those with a large number of NFS mounts) may choose to use higher-numbered ports as well. Linux clients may do this using the “noresvport” mount option. If you want to allow this on an export, you may do so with the “insecure” export option.
It is good practice not to allow users to login to a server. While reviewing the above settings on an NFS server conduct a review of who and what can access the server.