NFS
De MEPIS Documentation Wiki
Tabla de contenidos |
Introducción
Network File System (NFS) es un protocolo de sistemas de ficheros en red que permite a un usuario en un ordenador cliente acceder a ficheros en red como si de discos duros locales se tratara. En redes más complejas puede ser más sencillo añadir discos NFS mediante mecanismos como autofs (pude por ejemplo resolver el orden de precedencia de arranque en el cliente/servidor usando /etc/fstab).
Por defecto MEPIS carece de algunos de los paquetes necesarios. Los paquetes nfs-common, nfs-utils disponibles quí y la parte del kernel no están incluidos. También portmap es necesario para que NFS pueda funcionar correctamente. Por último hay que asegurarse de que el cortafuegos no bloquea el puerto de nfs o el servidor no funcionará. No instalar la utilidad nfs para espacio de usuario o se tendrán problemas. Usar Ksysv para añadir portmap y el paquete nfs-common en tiempo de ejecución.
Configuración de NFS
Esta sección cubre el protocolo NFS y sirve de guía sobre lo básico de la implementación de NFS en una red doméstica o de una pequeña empresa. La configuración de red descrita a continuación no tiene por qué coincidir con la de la red doméstica/de una pequeña empresa a la que se vaya a aplicar, pero están pensada para simplificar la implementación. La especificación de esta hipotética red es la siguiente:
- Repertorio de dirección IP por defecto 192.168.0.X y máscara de subred 255.255.255.0.
- Un servidor (mserver : 192.168.0.2).
- Como mínimo uno más clientes (mepis1 : 192.168.0.3 y mepis2 : 192.168.0.4).
- Un usuario principal (mepisfan) que se beneficiará de los archivos compartidos por NFS.
AVISO: En caso de tener un servidor de DNS configurado, se pueden usar los nombres de los equipos en vez de las direcciones IP. El DNS descrito a continuación como "DNS mediante /etc/hosts" ha sido probado y funciona, el tutorial cubre mayormente IP en un esfuerzo por hacer los conceptos mostrados a continuación tan fácilmente comprensibles como sea posible (incluso en el caso de no tener DNS instalado o funcionando en la red). Así mismo, la mayoría de enrutadores/conmutadores modernos permiten reservar direcciones mediante DHCP por lo que no hace falta tener IPs estáticas asignadas para poder seguir el tutorial.
Esta sección se divide en tres partes: Permisos de acceso, Configuración del servidor y Configuración de los clientes, que se deben de seguir en orden. Este tutorial también asume que se desea que los sistemas cliente se conecten a las carpetas compartidas de un servidor dedicado. Si se quieren compartir ficheros entre dos clientes sólo, la configuración es diferente. Además la configuración no se ha probado con un cortafuegos de escritorio como Guarddog or Firestarter.
Permisos de acceso
En NFS los permisos de usuario están basados en el identificador de usuario (UID). Los UIDs de cualquier usuario en el cliente deben coincidir con los del servidor para tener acceso. De tal forma que todos los clientes que requieran acceso las carpetas compartidas por el servidor tienen que estar configuradas en el servidor para obtener los permisos de acceso apropiados. Por ejemplo, si tiene un UID 1001 en el cliente, entonces se tiene que crear un usuario mepisfan en el servidor con un UID 1001 con la misma contraseña que el usuario en el cliente. Esta guía (de momento) no cubre el proceso de sincronización de las contraseñas y asume que se hará de forma manual. También hay que tener presente que con NFS, el acceso de los usuarios a los ficheros se puede determinar mediante su pertenencia a grupos en el cliente, no en el servidor. Sin embargo, sólo se puede transferir un máximo de 16 grupos entre el cliente y el servidor.
Configuración del servidor
Instalación
Instalar los siguientes paquetes: nfs-kernel-server portmap
En konsole:
su {introducir la contraseña}
apt-get install nfs-kernel-server portmap
En Synaptic:
- Buscar nfs-kernel-server
- Marcar nfs-kernel-server para su instalación (debería instalar portmap automáticamente)
- Aplicar
Configuración
Portmap Lockdown
Seguridad básica para el servidor.
Editar "/etc/hosts.deny" como superusuario y añadir:
portmap mountd nfsd statd lockd rquotad : ALL
Esto bloqueará todas las conexiones al servidor. Sólo los equipos que aparezcan en "/etc/hosts.allow" tendran acceso a los elementos compartidos en el sevidor.
Editar "/etc/hosts.allow" como superusuario y añadir:
portmap mountd nfsd statd lockd rquotad : 192.168.0.3 192.168.0.4
Esto permitirá a los clientes 192.168.0.3 [mepis1] y 192.168.0.4 [mepis2] conectarse a los elementos compartidos con nfs.
DNS mediante /etc/hosts
Este paso configurará un DNS básico entre los sistemas de la red. Este paso es necesario para que nfs funcione. También es importante si si quiere usar los nombres de los equipos (por ej. mepis1, mepis2, etc) en vez de la IP (por ej. 192.168.0.3, 192.168.0.4, etc) para los equipos de la red.
Editar "/etc/hosts" como superusuario y añadir:
127.0.0.1 localhost (por defecto, debería estar ya) 127.0.0.1 mserver (por defecto, debería estar ya) 192.168.0.2 mserver (necesario, esto permitirá que nfs funcione correctamente, incluso si se caen los servidores DNS, en caso de tener un servidor DNS) 192.168.0.3 mepis1 (necesario, identifica que el equipo mepis1 utiliza la dirección IP 192.168.0.3) 192.168.0.4 mepis2 (necesario, identifica que el equipo mepis2 utiliza la dirección IP 192.168.0.4)
(Recordatorio - la configuración puede ser diferente para cada caso concreto)
Elementos compartidos
Editar "/etc/exports" como superusuario y añadir los elementos compartidos:
/home/mepisfan/pics 192.168.0.3(rw,sync) 192.168.0.4(ro,sync) /data 192.168.0.3(rw,sync) /media/disk/ 192.168.0.3(rw,sync) 192.168.0.4(rw,sync)
(Recordatorio - la configuración puede ser diferente para cada caso concreto)
Este paso indica que directorios del servidor se van a compartir con los clientes y les permite motarlos. Llegado este punto hay que asegurarse de que los usuarios/grupos deseados tienen los permisos necesarios en las carpetas compartidas. En el ejemplo previo, ro indica que es de sólo lectura, rw de lectura/escritura y sync sólo permite comunicaciones basicas entre el servidor y los clientes para informar de los archivos disponibles.
En redes más grandes (o redes sólo con DHCP):
Editar "/etc/exports" como superusuario y añadir los elementos compartidos:
/home/mepisfan/pics 192.168.0.0/255.255.255.0(rw,sync) /data 192.168.0.0/255.255.255.0(rw,sync) /media/disk/ 192.168.0.0/255.255.255.0(rw,sync)
(Recordatorio - la configuración puede ser diferente para cada caso concreto)
Para permitir a todos los clientes en el rango de direcciones IP 192.168.0.0 (Rango de 192.168.0.2 a 192.168.0.254, subred 255.255.255.0) montar los elementos compartidos por el servidor.
Exportar elementos compartidos y Reiniciar los servicios
Si no se sigue este paso, las carpetas no estarán disponibles en los clientes por lo que cada vez que se modifique "/etc/exports" es necesario volver a exportar los elementos compartidos y reiniciar los servicios relacionados (portmap y nfs-kernel-server):
su {introducir la contraseña}
exportfs -ra
/etc/init.d/portmap restart
/etc/init.d/nfs-kernel-server restart
Configuración de los clientes NFS
Instalación
Instalar los siguientes paquetes: nfs-common portmap
En konsole:
su {introducir la contraseña}
apt-get install nfs-common portmap
In Synaptic:
- Search for nfs-common
- Mark nfs-common for installation (should auto install portmap)
- Apply
Configuración
Portmap Lockdown
Seguridad básica para todos los clientes.
Editar "/etc/hosts.deny" como superusuario y añadir:
portmap : ALL
Esto evitará que se acceda al equipo mediante portmap excepto a los equipos presentes en "/etc/hosts.allow".
Editar "/etc/hosts.allow" como superusuario y añadir:
portmap : 192.168.0.2
Esto permitirá que el servidor nfs se conecte al sistema.
DNS mediante /etc/hosts
Editar "/etc/hosts" como superusuario y añadir:
127.0.0.1 localhost 127.0.0.1 mepis1 192.168.0.2 mserver 192.168.0.3 mepis1 192.168.0.4 mepis2
(Recordatorio - la configuración puede ser diferente para cada caso concreto)
Montando los elementos compartidos
AVISO: Puede que se quiera crear directorios en el cliente para tener puntos de montaje para los elementos compartidos. Se recomienda crear estos directorios en la carpeta home (por ej. /home/%nombredeusuario%) para asegurarse de que el usuario tiene los permisos necesarios, en caso de querer montar los archivos compartidos en algún otro lugar hay que asegurarse de que el usuario tiene permisos en esos directorios,
Manualmente en konsole
Es el método recomendado si se tiene un portatil que se utiliza para viajar.
su {introducir la contraseña}
mount 192.168.0.2:/home/mepisfan/pics /home/mepisfan/nfs/pics
mount 192.168.0.2:/data /home/mepisfan/nfs/data
mount 192.168.0.2:/media/disk /home/mepisfan/nfs/backup
O
mount mserver:/home/mepisfan/pics /home/mepisfan/nfs/pics
Usar este último en caso de configurar DNS mediante DHCP.
(Recordatorio - la configuración puede ser diferente para cada caso concreto)
Los elementos compartidos deberían de estar ahora disponibles en el gestor de ficheros de nuestra elección.
Automáticamente mediante fstab
Es el método recomendado para equipos que no son móbiles. AVISO - cuando se añadan las entradas NFS en fstab, hay que asegurarse de que aparezcan ANTES de las que se generan de forma dinámica, o desapareceran en con el siguiente reinicio.
Editar "/etc/fstab" como superusuario y añadir:
192.168.0.2:/home/mepisfan/pics /home/mepisfan/nfs/data nfs rw,hard,intr 0 0 192.168.0.2:/data /home/mepisfan/nfs/data nfs rw,hard,intr 0 0 192.168.0.2:/media/disk /home/mepisfan/nfs/backup nfs rw,hard,intr 0 0
O
mserver:/home/mepisfan/pics /home/mepisfan/nfs/pics nfs rw,hard,intr 0 0
Usar este último en caso de configurar DNS mediante DHCP.
(Recordatorio - la configuración puede ser diferente para cada caso concreto)
Reiniciar. Los elementos compartidos se montarán de forma automática en el arranque y estarán disponibles en el gestor de ficheros de nuestra elección.
AVISO: Montar NFS automáticamente con /etc/fstab puede causar problemas. Para usar NFS, el servidor debe estar iniciado y funcionando antes de que el cliente arranque y monte los elementos compartidos con NFS al inicio. Esto es aceptable cuando el servidor funciona de forma ininterrumpida y contiene información importante - tan importante que que ejecutar los clientes sin acceso a los ficheros compartidos no tiene mucho sentido. Sin embargo no es aceptable crear esta dependencia en el orden de arranque sólo por algunos ficheros compartidos eventualmente, como una carpeta de fotos en el portatil de un amigo. Cuando se desea que dos ordendadores compartan elementos con NFS entre ellos, esta fórmula de fstab es imposible - cada uno de ellos tendría que haber arrancado antes que el otro. En estos casos, métodos como autofs son la solución.
Compilando NFS-Utils
Cuando se compila nfs utils, hace falta usar --enable-nfv4=no y un par de más para evitar errores de compilación debido a librerías que no se necesitan para nfsv3 o v2. Una de ellas son las librerias GSS. Existen otra serie de componentes que se tienen que añadir y que se pueden solventar usando apt-cache para buscar las dependencias que faltan. No parece que nfs-utils se encuentren en el conjunto de paquetes de synaptic. Algunos ajustes del script ./configure posibilitarán compilar nfs-utils.
Por último, cuando se añaden elementos para NFS en fstab, hay que asegurarse de que aparezcan ANTES de las que se generan de forma dinámica, o desapareceran en con el siguiente reinicio.

