Está en la página 1de 22

Universidad Simn Bol o var Diseo y Administracin de Redes n o Septiembre - Diciembre 1.

998

Network File System NFS

David Rodr guez Gralin

Motivacin o
Se plantea la necesidad de un sistema que nos permita compartir, crear, bloquear archivos como tambin manejar permisos de acceso a tales e archivos de una manera correcta y consistente. NFS permite que una coleccin arbitrar de o a clientes compartan un sistema de archivos comn, u soportando sistemas heterogneos, con clientes y e servidores que tal vez ejecuten diferentes sistemas operativos con un hardware distinto. NFS se encarga de crear una abstraccin que o permite a usuarios y programas acceder a archivos ubicados en mquinas remotas como si a fueran locales.

Ventajas de NFS
Se reducen los requerimientos de espacio de disco en las estaciones de trabajo La centralizacin de archivos simplica las o tareas de administracin o Se puede usar como complemento a NIS. Facilita a los usuarios la manipulacin de o archivos remotos (no necesitan el conocimiento de comandos remotos (ftp, rlogin, rsh, etc.), sino locales (cp, mv, rm, etc.). Puede utilizarse para proveer espacio de disco a estaciones que no tengan disco. Ayuda a mantener consistencia en los archivos. Puede utilizarse para la comunicacin de o usuarios y/o programas.

Funcionamiento
Un cliente NFS es un sistema que usa los directorios remotos como si fueran parte de su sistema de archivos local, en cambio un servidor NFS es aquel que pone directorios disponibles para el uso de los clientes. Cada servidor NFS exporta uno o ms de a sus directorios, los clientes tienen acceso a dichos directorios cuando los montan. Por lo general, los comandos necesarios para expotar y montar un sistema de archivos se ubican en los scripts de arranque (boot) de las mquinas; pero nada impide que dichos a comandos sean ejecutados en cualquier momento posterior a la secuencia de booteo.

Caracter sticas
NFS ha sido diseado para que el servidor no n mantenga el estado de ninguno de sus clientes. Esto facilita la recuperacin de ca o das del servidor y agrega escalabilidad al diseo de NFS. n NFS usa UDP para la transmisin de sus o paquetes. Para solventar los problemas que puede traer utilizar un protocolo no conable, NFS obliga a todo servidor a hacer un acknowlegdment de cada peticin, si un cliente no recibe ack de o alguna peticin realizada, entonces retransmite la o peticin. o La mayor de las peticiones son idempotentes. a Existen peticiones no idempotentes y para lidiar con ellas, el servidor mantiene un cache de las ultimas peticiones no idempotentes hechas para asegurarse que la peticin no fue ejecutada o anteriormente. NFS est construido sobre RPC y ste sobre a e XDR.

Caracter sticas (II)


NFS usa la permisolog UNIX (ACL) para el a control de acceso a los archivos. Al servidor, en cada peticin del cliente, le llega el UID y el GID o del usuario. El servidor conf en que el usuario en realidad a es quien dice ser. Actualmente se puede utilizar criptograf de claves pblicas para validar al a u usuario y al servidor en cada transaccin. o Tambin se puede usar Kerberos. e NFS le da al usuario root de la mquina cliente el a UID del usuario nobody para evitar problemas de seguridad. Existen dos tipos de montaje: hard y soft. Cuando un cliente quiere montar un directorio en modo hard, ste va a reintentar e innitamente hacer el montaje. Si el cliente quiere montar un directorio en modo soft, entonces el cliente intentar varias a veces conectarse al servidor, hasta que ocurra un timeout.

Demonios: mountd
mountd [-v] [-r] Descripcin: o Es un servidor RPC que responde a peticiones de montaje de sistemas de archivos y a peticiones de informacin de acceso. Lee el archivo o /etc/dfs/sharetab para determinar qu sistema de e archivos estn exportados y qu mquinas tienen a e a acceso a ellos. Opciones: -v -r Modo detallado (verbose). Rechaza peticiones hechas por clientes, pero los clientes que ya ten algn sistema de an u archivos montado no se vern afectados. a

Demonios: nfsd (I)


nfsd [-a] [-c #_conn] [-l listen_backlog] [-p protocol] [-t device] [nservers]

Descripcin: o Es el demonio que se encarga de atender las peticiones de sistemas de archivos por parte de los clientes, por ejemplo leer un archivo.

Opciones: -a Levanta el demonio para funcionar con cualquier transporte incluyendo UDP y TCP. -c Fija el nmero mximo de conexiones u a sobre transportes orientados a conexin. o

Demonios: nfsd (II)


Otras opciones son:
-l Especica el nmero mximo de entradas u a en la cola de conexiones para transportes orientados a conexin. o -p Levanta al demonio sobre el protocolo especicado. -t Levanta al demonio sobre el transporte especicado por el dispositivo dado. nservers Es el nmero de hilos que se van a u crear para atender concurrentemente a las peticiones de los clientes. Por defecto se crean 16.

Demonios: lockd (I)


Sintaxis: lockd [ -g graceperiod ] [ -t timeout ] [ nthreads ] Descripcin: o Este demonio se encarga de proveer las facilidades de bloqueo de archivos para asegurar la consistencia de los mismo al ser accesados concurrentemente. Redirecciona las llamadas a fcntl de la mquina local a al servidor NFS y mantiene locks de archivos locales generados por clientes. Corre tanto en el servidor como en el cliente.

Demonios: lockd (II)


Opciones: -g Especica el tiempo que tienen los clientes para reclamar el bloqueo de un archivo despus que el servidor arranca. e -t Fija el nmero de segundos a esperar u antes de retransmitir la peticin de un o lock al servidor remoto. nthreads Es el nmero de hilos que se van a u levantar para atender las peticiones de los clientes.

Demonios: statd (I)


statd
- Este demonio interacta con lockd para proveer u recuperacin a ca o das de sistemas que utilizan los servicios de locking en NFS. Mantiene informacin sobre los procesos en los clientes que o poseen locks de archivos de determinado servidor. - Cuando el servidor levanta despus de una ca e da, statd le informa a los otros statd que estn a corriendo en los clientes, que el servidor se ha recuperado, as ellos tratarn de reclamar los a locks que pose anteriormente. an - El statd de los clientes tambin se encarga de e avisar a los servidores que algn cliente se ha u ca do, para que estos puedan liberar los archivos bloqueados por el cliente ca do.

Comandos: mount y umount


umount: Este comando permite que un cliente monte un directorio en la estructura jerrquica de su a sistema de archivos. La estructura general del comando es: mount hostname:remote-dir local-dir

umount: Este comando desmonta sistemas de archivos que no estn en uso y para ello se especica el e directorio dnde est montado el sistema de o a archivos. La estructura general del comando es: mount hostname:directory

Recomendaciones de Seguridad (I)


NFS puede (y deber estar congurado para a) dar acceso slo a ciertos clientes unicamente. o Esto se ja en /etc/exports /etc/dfs/dfstab. NFS se deber congurar para utilizar a autenticacin de usuarios, ya sea por secure key o o por kerberos. Limitar el nmero de sistemas de archivos que u cada cliente monta. Mientras menos sean, mejor. Exportar sistemas de archivos de lectura (read-only) si es posible. Poner a root como dueo de archivos y n directorios exportados dado que se puede hacer que se mappee el UID de root al de nobody.

Recomendaciones de Seguridad (II)


Evitar tener permiso de escritura para el grupo (ACL) en los archivos exportados. Evitar exportar los ejecutables. Evitar exportar directorios home. No exportar directorios que tienen permiso de escritura para el mundo (ACL), por ejemplo /tmp, /usr/tmp , etc. Evitar que una misma mquina sea servidora y a cliente de NFS. No permitir login a los usuarios en la mquina a servidora.

Protocolos
MOUNT Este es el protocolo que habla mountd, se usa para la negociacin inicial entre el o servidor NFS y el cliente. Con este protocolo el cliente puede determinar qu sistemas de archivos estn e a disponibles para ser montados y tambin e para obtener el manejador (le handle) del directorio ra de la jerarqu que se est z a a exportando. NFS Este protocolo es el encargado de actuar despus que termina la fase de montaje. e Permite manipular el sistema de archivos montado.

Protocolos: MOUNT
Las peticiones que entiende MOUNT son:
NULL MNT No hace nada. Retorna un le handle del directorio ra de la jerarqu exportada. Tamz a bin le avisa a mountd que un cliente e ha montado un sistema de archivos. DUMP Retorna una lista de sistemas de archivos montados. UMNT Retira la entrada de montaje de este cliente para cierto sistema de archivos. UMNTALL Retira todas las entradas de montaje para este cliente. EXPORT Retorna la lista de todos los sistemas de archivos exportados para este cliente.

Protocolos: NFS
Las peticiopnes que entiende NFS son: CREATE Crea o trunca un archivo dentro de un directorio. LINK LOOKUP MKDIR READDIR REMOVE RENAME Crea un enlace (hard link). Busca un archivo en un directorio. Crea un directorio. Lee el contenido de un directorio. Borra un archivo de un directorio. Renombra un archivo en un directorio. RMDIR SYMLINK GETATTR SETATTR READ WRITE Borra un directorio. Crea un enlace (link ) simblico. o Retorna los atributos de un archivo. Setea los atributos de un archivo. Lee de un archivo. Escribe a un archivo.

Archivos importantes (I)


Los archivos necesarios en el servidor para exportar sistemas de archivos son: /etc/exports : usado por mquinas con a sistemas BSD. /etc/dfs/dfstab : usado por mquinas con a sistemas system V. Las entradas de /etc/exports son de la siguiente manera:

directorio [host (opcin)]* [(opcin)] o o

donde opcin puede ser (ro) o (rw) para slo o o lectura y para lectura y escritura respectivamente.

Archivos importantes (II)


Los archivos necesarios en el servidor para montar sistemas de archivos son: /etc/fstab : usado por mquinas con sistemas a BSD. /etc/dfs/vfstab : usado por mquinas con a sistemas system V. Las entradas de /etc/fstab son de la siguiente manera:

lesystem mountpoint nfs options

y las entradas de /etc/vfstab son de la siguiente manera:

lesystem - mountpoint nfs - yes options

Opciones de Montaje (system V)


rw ro remount Read-Write Read-only Si ya est montado ro, cambia el modo a a rw. soft hard bg fg intr nointr nosuid No reintenta innitamente. Espera hasta que el servidor reviva. Hace los reintentos en background. Hace los reintentos en foreground. Permite interrumpir los reintentos. No permite interrumpir los reintentos. No permite que ningn programa del u sistema de archivos montado haga suid.

Opciones de Montaje (BSD)


rw ro async auto dev exec noauto nodev noexec nosuid nouser remount suid sync user soft timeo Read-Write Read-only I/O as ncrona Montar con la opcin -a o Permitir devices especiales en el lesystem Ejecucin de comandos desde el lesystem o No montar con la opcin -a o No permitir dispositivos especiales No permitir ejecucin de comandos o No permitir suid en programas del FS Solo root puede montar lesystems Remontar un FS con opciones nuevas Permitir que programas hagan suid I/O s ncrona Permitir a usuarios montar lesystems TimeOut si el servidor no responde Valor de TimeOut

También podría gustarte