El NFS[Sun90b] se dise nó para permitir a los usuarios compartir(exportar en Solaris 1) los ficheros a través de la red. Uno de los usos más comunes de NFS es para las estaciones sin disco. Hay que tener en cuenta varios aspectos para lograr que este sistema sea seguro. El fichero /etc/exports es el fichero más importante en la configuración de NFS, en él se indica qué ficheros se exportan. Un ejemplo de una entrada de este fichero puede ser la siguiente:
/export/swap/cliente1 -access = cliente1, root = cliente1La entrada root indica los hosts a cuyos ficheros se permite acceso por parte del super-usuario. Normalmente el NFS traslada el id del super-usuario a otro especial denominado nobody para prevenir que el root tenga derechos sobre los ficheros de la máquina remota. Esto es bueno para la seguridad pero puede plantear un problema a la hora de la administración del sistema. No se debe dar nunca acceso de root a los ficheros de NFS el host no compartido. La entrada access da una lista de hosts a los que se permite montar el sistema de ficheros. Si no se indica, cualquier máquina de la red puede montar cualquier fichero vía NFS.
Otro fichero importante dentro de NFS es el /etc/netgroup[Sun90b] se utiliza para la definición de grupos de red. Este fichero se controla a partir de las ``páginas amarillas'' y se debe volver a construir en las mismas siempre que sea modificado. Como ejemplos de entradas en este fichero podemos tener:
Donde Todos es un supergrupo de los dos anteriores. Cada miembro de un grupo se define como una tripleta: (host, usuario, dominio). Si el campo de host o de usuario no aparece, entonces cualquier host o cualquier usuario pertenecen al grupo. Normalmente la mejor forma de configurar el fichero netgroup es crear un grupo de red para cada servidor y su cliente, y construir super grupos a partir de ellos. Esto da la flexibilidad de especificar el más peque no grupo posible de hosts para cada sistema de ficheros en /etc/exports. La forma de indicar, desde la línea de comandos, que un sistema de ficheros se comparte es:
share -F nfs -o ro /export/applicationsdonde los campos rw indican derecho de escritura y lectura y ro sólo lectura. Si el sistema va a compartirse tanto de escritura como lectura es buena idea compartir en nivel más bajo del directorio posible:
share -F nfs -o rw /var/mail
share -F nfs -o rw = support /export/supportPara el caso del cliente hay que evitar que la seguridad se vea comprometida, si se montan sistemas de ficheros desde servidores no cualificados, puesto que se tiene poco control de los ficheros que contiene. Un riesgo importante es cuando existen ficheros setuid. El comando mount ofrece la posibilidad de controlarlos:
share -F nfs -o rw = sales /export/sales
mejor que:
share -F nfs -o rw /expot
mount -o nosuid server: /export/exportsi se usa esta opción todos los EID/GID de los ficheros se cambian a UID/GID antes de que ser ejecutados. Una aplicación sobre los RPCs seguros, es el NFS seguro. Para el caso normal, el NFS valida una petición de un fichero autentificando la máquina pero no el usuario. Cualquiera que tenga privilegios de root en el cliente NFS puede tomar cualquier identidad a través del comando su, si esta coincide con la de algún usuario del sistema montado adquiere sus privilegios. Con los NFS seguros los accesos se validad a partir de un identificador de red. Si un usuario no ha sido autentificado, entonces se le da la identidad del usuario nobody, con los permisos correspondientes. Si se usa la opción de share, anon =-1, entonces el acceso es denegado:
share -F nfs -o rw = grupored, secure, anon=&-1& acute;/export/home2