sábado, 8 de marzo de 2008

File Server con NFS + Debian Etch

El paquete nfs-common está instalado por defecto en Debian. Este paquete contiene los archivos necesarios para un Servidor o Cliente NFS. Para configurar un servidor tendremos que instalar el paquete nfs-kernel-server

aptitude install nfs-kernel-server

Cuando se instala este paquete, crea un archivo "exports" que se encuentra en /etc el cual deberemos de editar para configurarlo.

vi /etc/exports

luego la sintaxis es la siguiente:

/home/directorio_del_servidor_a_compartir cliente(permisos,tipo-sync)

Ejemplo:

Tengo en el servidor de Archivos un cliente llamado shared, y quiero compartir el directorio de ese usuario.

Edito el archivo /etc/exports y agrego esta línea.

/home/shared *(rw,sync)

Esta línea indica que cualquier cliente NFS puede montar una unidad con el directorio /home/shared del servidor como lectura/escritura, si queremos restringir esto podemos usar dos cosas.

1. Configurar /etc/hosts.deny y /etc/hosts.allow

2. colocar una línea semejante a esta:
/home/shared 192.168.0.100(rw,sync)
#Esto permite que _solo_ la máquina 192.168.0.100 pueda leer y escribir


Obviamente hay que reiniciar el servicio para que actualice los cambios

/etc/init.d/nfs-common
/etc/init.d/nfs-kernel-server

Como se puede identificar el cliente?

hay varias maneras:

  1. Colocando el nombre del Host, para esto se debe tener configurado un DNS o en su defecto haber incluido el host en /etc/hosts. Hostname(rw,sync)
  2. Con la IP del Cliente (Como en el ejemplo)
  3. Identificando un segmento con IP/Netmask 192.168.0.0/255.255.255.0(rw,sync)
  4. Identificando un dominio como *.mi_dominio.com(rw,sync)

Los permisos más comunes:

  1. ro (Solo Leer - Read Only)
  2. rw (Leer y Escribir - Read Write)
  3. no_access (Podemos dar acceso al directorio principal, pero a lo mejor no queremos que toquen otros subdirectorios, para ello hay que añadir este parámetro en cada línea de los subdirectorios que no se quiera permitir ver)

El cliente:

Cómo montar un disco NFS basados en nuestro ejemplo anterior /home/shared


/etc/init.d/nfs-common start
mkdir /media/shared

# mount fileserver:/home/shared /media/shared

Mi Servidor de Ejemplo se llama "fileserver" el directorio del servidor que compartimos en el ejemplo de /etc/exports es /home/shared luego /media/shared es un directorio creado para montar ese "disco-nfs".


Podemos crear una línea en el /etc/fstab para que monte el disco cada vez que se inicie la máquina sin hacer el mount.

creamos una líne como esta:

fileserver:/home/shared /media/shared nfs rsize=8192,wsize=8192,timeo=14,intr


1 comentario:

javier dijo...

Muy bueno amigo, me sirvió mucho tu entrada. Está muy bien explicado y muy práctico el ejemplo.
Para ampliar la información, se puede mencionar otros dos tipos de permisos.
root_squash y no_root_squash

Saludos.