lunes, 27 de enero de 2014

Instalación y Configuración de un Servidor NFS.


NFS (Network File System - Sistema de Archivos en Red) es el sistema nativo utilizado por 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.


Básicamente, NFS permite a PCs que utilizan Linux, compartir y conectarse a carpetas compartidas entre sí. 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.

Servidor

Instalación 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 paquetes 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 automáticamente esté compartiendo su sistema de archivos en la red. Para ello es necesario configurar y arrancar el servicio.

Si deseamos instalar la última versión disponible, podemos hacerlo con apt-get desde una consola de root:

// Instalación de NFS

# apt-get install nfs-common nfs-kernel-server portmap


Configuración 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. También existe la posibilidad de establecer desde que PCs es posible conectarse. Estas opciones se configuran en el archivo /etc/exports

// Archivo de configuración del servidor NFS

/etc/exports

En cada línea del archivo de configuración 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)

A continuación mostramos un sencillo archivo /etc/exports para configurar algunas carpetas compartidas

// Ejemplo de archivo /etc/exports de configuración del servidor NFS:

Ejemplo 1:
# Compartir la carpeta home del servidor
# en modo lectura y escritura y accesible desde la red 192.168.0.0/24
/home 192.168.0.0/255.255.255.0(rw)

Ejemplo 2:
# Compartir carpeta tmp a todos como 'solo-lectura'
/tmp *(ro)

Ejemplo 3:
# Compartir carpeta /var/log a un PC como 'solo-lectura'
/var/log 192.168.0.211(ro) 


Cuando se comparte por NFS, se recomienda restringir al máximo 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.

Arranque y parada manual de NFS


Para que el servidor NFS funcione, es necesario que esté arrancado el servicio portmap, por lo tanto, la primera acción será iniciar portmap por si no estuviera arrancado:

// Iniciar portmap
sudo /etc/init.d/portmap start

Para poner en marcha el servicio NFS, o cada vez que modifiquemos el archivo /etc/exports, debemos reiniciar el servidor NFS, mediante el comando:

// Reinicio del servidor NFS
sudo /etc/init.d/nfs-kernel-server restart

Si deseamos detener el servidor NFS, debemos ejecutar:
// Parada del servidor NFS
sudo /etc/init.d/nfs-kernel-server stop

Arranque automático de NFS al iniciar el sistema


Para un arranque automático del servicio al iniciar el servidor, debemos crear los enlaces simbólicos correspondientes tal y como se indica en el apartado Trucos > Arranque automático de servicios al iniciar el sistema. 

Cliente

Instalación paquetes para poder acceder como cliente


Para poder acceder desde un PC a una carpeta compartida por NFS en un servidor, lo primero que tenemos que hacer es instalar los paquetes portmap y nfs-common que nos permitirán acceder como clientes:

Instalación
// Instalar portmap y nfs-common y reiniciar portmap

sudo apt-get install portmap nfs-common
sudo /etc/init.d/portmap restart

Ahora ya estaremos en condiciones de montar la carpeta compartida en nuestro sistema de archivos. De esta manera, el acceso a la carpeta compartida es exactamente igual que el acceso a cualquier otra carpeta de nuestro disco duro. 

Ejemplo, supongamos que un servidor comparte por NFS una carpeta llamada /fotos. En el PC cliente podemos crear una carpeta llamada /fotos-servidor y montar sobre ella la carpeta compartida en el servidor. Para ello, en el cliente y como root ejecutaríamos el siguiente comando:

Montar carpetas compartidas por NFS
// Montar carpeta compartida por NFS
sudo mount -t nfs ip-del-servidor:/fotos /fotos-servidor

A partir de este momento, podemos comprobar que nuestra carpeta /fotos-servidor contiene la información de la carpeta /fotos del servidor. Si disponemos de permisos de lectura y escritura, podemos incluso crear o modificar los archivos dentro de nuestra carpeta /fotos-servidor y los cambios se estarán guardando realmente en la carpeta /fotos del servidor.


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

Si al intentar montar la carpeta NFS no funciona suele ser por una de estas tres razones: por un problema en la red, un problema en el servidor o un problema en el cliente. Para averiguar si el problema es del servidor o no, podemos intentar montar por NFS la carpeta en el propio servidor, usando la IP 127.0.0.1. Si funciona entonces el problema estará en la red o en el cliente. Si hacemos ping del servidor al cliente y no hay cortafuegos, el problema será en el cliente. Podemos intentar hacer una reinstalación del cliente igual que la instalación en el servidor. Ejecuta en el cliente los siguientes comandos: apt-get install nfs-common nfs-kernel-server, luego /etc/init.d/portmap restart, después /etc/init.d/nfs-kernel-server restart y finalmente intentar montar la carpeta.mando mount para nada.

Para desmontar una carpeta, tan solo debemos ejecutar el comando umount seguido del nombre de la carpeta en la que está montada, ejemplo:

Desmontar carpetas compartidas por NFS

# Desmontar carpeta fotos-servidor
sudo umount /fotos-servidor

Carpetas compartidas por NFS

Si deseamos que nuestro PC monte siempre de forma automática una carpeta compartida por NFS cuando iniciemos nuestro Linux, existe la posibilidad de añadir en el archivo /etc/fstab una línea como por ejemplo:

# Montaje automático al iniciar el PC
#Añadir en /etc/fstab
ip-del-servidor:/fotos /fotos-servidor nfs
De esta manera, cuando arranquemos nuestro PC, la carpeta /fotos del servidor quedará automáticamente montada sobre nuestra carpeta /fotos-servidor y no tendremos que ejecutar el comando mount para nada.

Permisos

(rW,sync,subtree_check)

No hay comentarios:

Publicar un comentario