Está en la página 1de 17

NFS

ADMINSTRACIN DE SISTEMAS OPERATIVOS

NFS
1 Introduccin 2 Instalacin de NFS 3 Configuracin del servidor NFS 4 Arranque y parada de servicios 5 Acceso a carpetas compartidas 6 Montar unidades automticamente 7 Seguridad en NFS 8 Configurar NFS con Webmin

1 Introduccin

NFS es el sistema que utiliza Linux para compartir carpetas en una red. Mediante NFS, un servidor puede compartir sus carpetas en la red. Desde los PCs de los usuarios se puede acceder a dichas carpetas compartidas y el resultado es el mismo que si estuvieran en su propio disco duro. NFS son las siglas en ingls de Network File System que podramos traducir como Sistema de Archivos en Red. Bsicamente NFS permite, a PCs que utilizan Linux, compartir y conectarse a carpetas compartidas entre s. Es el sistema nativo que utiliza Linux para compartir y acceder a carpetas compartidas en la red. Existen otras alternativas para compartir carpetas en una red como samba, ssh o ftp, pero el sistema recomendado para compartir carpetas entre sistemas Linux es NFS.

2 Instalacin de NFS

Para poder disfrutar del servicio de compartir carpetas en la red mediante NFS, en el PC servidor es necesario instalar el paquete del servidor NFS. Lo normal es que todos los PCs dispongan del paquete servidor de NFS ya que en cualquier momento puede existir la necesidad de tener que compartir una carpeta desde cualquier PC, aunque lo habitual es que el nico que comparta sea el servidor. Que un PC de un usuario tenga instalado el paquete del servidor NFS, no significa que automticamente est compartiendo su sistema de archivos en la red. Para ello es necesario configurar y arrancar el servicio. Si deseamos instalar la ltima versin disponible, podemos hacerlo con apt-get desde una consola de root: // Instalacin de NFS # apt-get install nfs-common nfs-kernel-server Versiones

Versin 2 Versin ms antigua. Se debe usar solo si tenemos que mantener compatibilidad con clientes que usen esta versin Versin 3 Ofrece mejoras en el manejo de ficheros e informes de errores Versin 4 Ofrece mejoras en todo lo relativo a seguridad. Incluye seguridad Kerberos, trabaja con cortafuegos, permite ACLs y utiliza operaciones con descripcin del estado.

3 Configuracin del servidor NFS

Antes de arrancar el servicio NFS, es necesario indicar qu carpetas deseamos compartir y si queremos que los usuarios accedan con permisos de solo lectura o de lectura y escritura. Tambin existe la posibilidad de establecer desde qu PCs es posible conectarse. Estas opciones se configuran en el archivo /etc/exports // Archivo de configuracin del servidor NFS /etc/exports En cada lnea del archivo de configuracin del servidor NFS /etc/exports, se puede especificar:

La carpeta que se quiere compartir El modo en que se comparte (solo lectura 'ro' o lectura y escritura 'rw' ) Desde qu PC o PCs se permite el acceso (nombre o IP del PC o rango de IPs)

Una vez modificado el ficheiro /etc/exports, aplicaremos los cambios mediante el comando exportfs -ra

3 Configuracin del servidor NFS

// Ejemplo configuracin /etc/exports

# Compartir la carpeta home del servidor en modo lectura y escritura # Accesible desde la red 192.168.0.0/24 /home 192.168.0.0/255.255.255.0(rw) # Compartir carpeta tmp a todos como 'solo-lectura'

/tmp *(ro)
# Compartir carpeta tmp con los equipos del dominio /tmp *.carballeira.local(ro)

# Compartir carpeta /var/log a un PC como 'solo-lectura'


/var/log 192.168.0.211(ro)

3 Configuracin del servidor NFS

Los permisos de comparticin por NFS no excluyen a los permisos del sistema unix sino que prevalecen los ms restrictivos. Si una carpeta est compartida con permiso NFS de lectura y escritura pero en los permisos del sistema solo disponemos de permiso de lectura, no podremos escribir. Si una carpeta est compartida con permisos NFS de lectura y disponemos de permisos de lectura y escritura en el sistema, tampoco podremos escribir. Para poder escribir necesitaremos disponer permiso de lectura y escritura tanto en los permisos del sistema como en los permisos de comparticin NFS. De igual forma, si compartimos la carpeta /home con permisos de lectura y escritura pero el usuario pepe solo tiene acceso a la carpeta /home/pepe, no podr acceder a ninguna otra carpeta dentro de /home ya que los permisos del sistema se lo impedirn. Cuando se comparte por NFS, se recomienda restringir al mximo los permisos.

Si los usuarios no tienen la necesidad de escribir, debemos compartir con permiso de 'solo lectura'. Si los usuarios solo se conectan desde nuestra red 192.168.0.0/24, debemos permitir el acceso solo desde dicha red.

4 Arranque y parada de servicios

Comprobaremos que al instalar el servidor nfs se ha arrancado el servicio portmap # status portmap Reinicio del servidor NFS # /etc/init.d/nfs-kernel-server restart Parada del servidor NFS # /etc/init.d/nfs-kernel-server stop Arrancar el servidor NFS # /etc/init.d/nfs-kernel-server start

5 Acceso a carpetas compartidas

En el equipo cliente instalamos el paquete nfs-common #apt-get install nfs-common Para poder acceder desde un PC a una carpeta compartida por NFS en un servidor, es necesario montar la carpeta compartida en nuestro sistema de archivos. #mount [t nfs] ip-servidor:/carpeta-compartida /mnt/carpeta-local Desmontar carpeta compartida #umount /mnt/carpeta-local De esta manera, el acceso a la carpeta compartida es exactamente igual que el acceso a cualquier otra carpeta de nuestro disco duro. Podemos usar showmount para obtener informacin sobre el estado del servidor nfs //Mostrar las carpetas exportadas por el servidor nfs #showmount e 192.168.1.100

5 Acceso a carpetas compartidas

Ejemplo:

Supongamos que un servidor comparte por NFS una carpeta llamada /fotos. En el PC cliente podemos crear una carpeta llamada /fotosservidor y montar sobre ella la carpeta compartida en el servidor. Para ello, en el cliente y como root ejecutaramos el siguiente comando:

// Montar carpeta compartida por NFS # mount -t nfs 192.168.1.100:/fotos /fotos-servidor

Para realizar el montaje, debemos hacerlo sobre una carpeta existente en nuestro sistema. Si dicha carpeta de nuestro sistema contiene archivos, estos no estarn accesibles ya que la carpeta nos mostrar los archivos remotos.

6 Montar unidades automticamente

Podemos montar automticamente una carpeta compartida NFS al iniciar el sistema, aadiendo una lnea en el fichero fstab #Aadir en /etc/fstab
ip-del-servidor:/compartida /mnt/local nfs opciones Ejemplo
192.168.1.100:/fotos /fotos-servidor nfs defaults 0 0

Recargar fstab # mount -a

7 Seguridad en NFS

Un usuario que est en el equipo cliente se valida contra el servidor NFS mediante su UID de usuario Por defecto, si en el equipo cliente inicia sesin el usuario pepe, con uid 1002, cuando este usuario acceda a alguna carpeta compartida por NFS en el servidor, ste tomar los permisos del usuario con uid 1002 en el servidor (sea o no sea pepe) Esto supone un riesgo porque cualquier persona puede probar UIDs de usuario para acceder a carpetas del servidor Para solucionar ese problema, en la versin NFSv4 se puede utilizar kerberos, que con la emisin de tickets para cada usuario impedir que usuarios que no sean quien digan ser accedan al sistema.

7 Seguridad en NFS

Parmetros configurables en /etc/exports

secure Requiere que las peticiones se hagan desde puertos menores que el 1024. Est habilitada por omisin. Para deshabilitarla especificar innsecure y se permitirn clientes NFS que no usen un puerto reservado para servicios NFS ro / rw ro exportar como permiso de slo lectura. rw exportar con permiso de escritura root_squash Asocia peticiones del uid de root al uid annimo (usuario nobody). Incrementa la seguridad. no_root_squash Permite que se asocie el uid cliente de root con el del servidor. Confiamos en el usuario root cliente. squash_uids y squash_gids Especifica lista de uids y gids que se asociaran al usuario annimo ejemplo: squash_uids=0-15,20 all_squash Asocia todos uids y gids al usuario annimo. Por defecto, est habilitada la opcin no_all_squash anonuid y anongid Establecen de forma explcita las uid y gid de la cuenta annima

7 Seguridad en NFS

Ejemplo
//Exporta el sistema de ficheros completo a las mquinas servidor y confianza. Permite escritura y permite mapeo de uid de root para la maquina confianza / servidor(rw) confianza(rw,no_root_squash) //Exporta el directorio home de pepe a la mquina pc01 con permiso de escritura. Todos los usuarios se mapearn al annimo y asocia al usuario annimo las uid y gid del usuario pepe todos tendrn los permisos de pepe en el servidor. /home/pepe pc01(rw, all_squash,anonuid=150,anongid=100) //Exporta el directorio pub como pblico para hacer FTP desde cualquier mquina del mundo. Las peticiones se harn como usuario annimo /pub (ro,insecure,all_squash)

7 Seguridad en NFS

sync La opcion sync provoca que todas las escrituras a disco desde el cliente NFS sean sincronas y por tanto ofrece mayor seguridad ante caidas del sistema, aunque tambien puede reducir el rendimiento subtree_check Est habilitada por defecto, hace que el servidor NFS compruebe que las peticiones de acceso se hagan realmente sobre el rea compartida y no a otros directorios. Es til cuando compartimos un subdirectorio de un sistema de ficheros, pero queremos evitar accesos a todo lo que est fuera de este subdirectorio El inconveniente es que esta opcin ralentiza mucho el acceso a la carpeta compartida, por eso no se recomienda utilizar esta opcin cuando compartimos directorios personales de usuarios. Una solucin, para evitar problemas de seguridad en accesos a directorios no autorizados, es compartir por NFS sistemas de ficheros completos, que residen en particiones independientes. Por ejemplo el directorio /home que hemos montado sobre una particin independiente del resto del sistema de archivos. NFSv4 pseudofilesystem Esta opcin permite indicar un directorio del servidor que se utilizar como directorio raz para todas las exportaciones, independientemente de donde residan las carpetas exportadas en el servidor. Normalmente /exports Ejemplo

/home 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)

8 Configuracin NFS con Webmin

Networking Nfs exports

8 Configuracin NFS con Webmin

Opcin confiar en usuarios remotos

Confiar en todo el mundo: se mapear el UID del usuario cliente con el del mismo UID del servidor, sea quien sea, incluso el del root. Equivale a establecer la opcin no_root_squash en exports. /home 192.168.1.200(no_subtree_check,no_root_squash,rw) Confiar en todo el mundo excepto en el root: se mapean todos los UID excepto el del root que se mapea al UID del usuario annimo. Es la opcin por defecto, no son necesarios cambios en exports. /home 192.168.1.200(no_subtree_check,rw) No confiar en nadie: se mapean todos los UID cliente al UID del usuario annimo del servidor. Equivale a establecer la opcin all_squash en exports. /home 192.168.1.200(no_subtree_check,all_squash,ro)

También podría gustarte