servidor de ficheros nfs

En windows está samba/cifs, pues en gnu/linux está nfs, con una transferencia de datos mucho mas elevada a su competidor en windows. Aunque gnu/linux soporta particiones samba, si vamos a trabajar en un entorno con maquinas gnu/linux no está de mas montar este servicio en el servidor de ficheros.

Para ello necesitaremos instalar algunos paquetes:

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

En nfs hay 3 ficheros de configuración los cuales les tendremos que prestar un poco de atención para tener un servidor nfs 100% funcional: /etc/exports, /etc/hosts.deny y /etc/hosts.allow.

/etc/exports
es donde definiremos los directorios compartidos por nfs, cada una de las líneas se corresponde a un directorio compartido y la sintaxis es esta:

directorio equipo1(opcion11,opcion12) equipo2(opcion21,opcion22)

directorio: Es el directorio a compartir.
equipox: Clientes que tendrán acceso al directorio compartido. Estos equipos se podrán indicar por su IP o dirección DNS. Se recomienda usar la IP.
opcionxx: Son las opciones que nos permitirán tener acceso a esos directorios con determinados privilegios.

* ro | rw : Con la opción ro el directorio será compartido de solo lectura. Esta opción está por defecto.y con la opción rw se permitirá tanto acceso de lectura como de escritura.
* sync | async : sync es la opción recomendada, ya que se ha de respetar el protocolo NFS, es decir, no se responden a las peticiones antes de que los cambios realizados sean escritos al disco. Con la opción async se permite mejorar el rendimiento y agilizar el funcionamiento global, pero supone un riesgo de corrupción de archivos o del sistemas de ficheros en casos de caidas del servidor y/o errores de éste.
* root_squash | no_root_squash | all_squash : root_squash : indica que un cliente identificado como root tendrá acceso al directorio con privilegios de un usuario anónimo. Si seleccionamos la opción no_root_squash evitaremos esto, y si indicamos all_squash, entonces aplicaremos esto último a todos los usuarios, no sólo root.

Un ejemplo de fichero /etc/exports:

/home/ceb/subidas 192.168.1.0/24 (rw,sync,root_squash)
/home/ceb/bajadas 192.168.1.0/24 (ro,sync,root_squash)

donde tenemos dos directorios, uno al que dejaremos que los usuarios suban ficheros y otro que será de solo lectura.

Antes de exportar los directorios a compartir tendremos que asegurar un poco nuestra maquina para evitar accesos no deseados.

/etc/hosts.deny
portmap:ALL

/etc/hosts.allow
portmap:192.168.1.0/255.255.255.0
nfs:192.168.1.0/255.255.255.0

reiniciamos los servicios para que usen la nueva configuración:

# /etc/init.d/nfs-kernel-server restart

también será necesario configurar el portmap para que escuche a todas las conexiones, haciendo un:

# dpkg-reconfigure portmap

e indicandole que quieres escuchar a todas las ips (es decir, tienes que decirle que no). A continuación reiniciar el portmap con:

# /etc/init.d/portmap restart

o

# restart portmap

a continuación exportaremos  los directorios (a partir de ahora lo haremos así si no hemos hecho ningún cambio en /etc/hosts.allow y /etc/hosts.deny)

# exportfs -a

Ahora solo tendremos que configurar nuestros clientes para que usen estos exports.

$ mkdir /home/kp/Desktop/ceb_subir
$ mkdir /home/kp/Desktop/ceb
# mount -t nfs ipservidornfs:/home/ceb/subidas /home/kp/Desktop/ceb_subir
# mount -t nfs ipservidornfs:/home/ceb/bajadas /home/kp/Desktop/ceb

O podemos añadir una entrada en el /etc/fstab para que se monte automáticamente al encender la maquina.

# vi /etc/fstab
ipservidornfs:/home/ceb/subidas /home/kp/Desktop/ceb_subir nfs defaults,rw 0 0
ipservidornfs:/home/ceb/bajadas /home/kp/Desktop/ceb nfs defaults,ro 0 0

Y esto es todo :)

Nota: si al montar los directorios te sale un error similar a este:

mount.nfs: access denied by server while mounting

comprueba que has puesto 192.168.1.0/24 en /etc/exports

Nota2: si al hacer el mount sale un mensaje similar a este:

# mount -a
mount: wrong fs type, bad option, bad superblock on ceb:/home/ceb/subidas,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
En alguns casos, es pot trobar informació útil a syslog,
proveu dmesg | tail o així

mount: wrong fs type, bad option, bad superblock on ceb:/home/ceb/bajadas,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
En alguns casos, es pot trobar informació útil a syslog,
proveu dmesg | tail o així

instala el paquete nfs-common

# apt-get install nfs-common

One Comment

  1. Pingback: Servidor De Ficheros Nfs | Blackhold

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.