sistema de archivos de red (nfs)

Anuncio
INSTALACION Y CONFIGURACION DE UN SERVIDOR NFS
NFS es el sistema que utiliza 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. NFS son
las siglas en inglés de Network File System que podríamos traducir como Sistema de Archivos en
Red.
Básicamente NFS permite, a PCs que utilizan Linux, compartir y conectarse a carpetas compartidas
entre sí. Es el sistema nativo que utiliza Linux para compartir y acceder a carpetas compartidas en
la red.
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
paquete 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.
Este protocolo de red, permitirá compartir archivos y directorios en equipos remotos de forma
transparente como si éstos fueran locales.
El protocolo NFS está implementado bajo la arquitectura Cliente/Servidor, por lo que se necesita
montar un 'Servidor NFS', en la máquina remota encargada de la exportación de directorios y
archivos. También se debe instalar un 'Cliente NFS', en cada una de las máquinas locales, que
serán las que importen aquellos directorios y archivos compartidos en la máquina remota.
Para la instalación lo podemos hacer desde una consola de root:
# yum -y install nfs-utils system-config-nfs

nfs-utils El paquete nfs-utils proporciona un demonio para el servidor de NFS del núcleo y
las herramientas relacionadas, lo que proporciona un nivel mucho más alto de
rendimiento que el tradicional servidor Linux NFS utilizado por la mayoría de los usuarios.

nfs-utils-libs bibliotecas de apoyo que son necesarios para los comandos y demonios de la
RPM nfs-utils.

system-config-nfs system-config-nfs es una interfaz gráfica de usuario para crear,
modificar y eliminar NFSacciones.
CONFIGURACIÓN DEL SERVIDOR NFS
Hay tres archivos de configuración principales que se necesitan para editar para configurar
un servidor NFS: / etc / exports , / etc hosts.allow / y / etc / hosts.deny .

/ Etc / exports , el archivo de configuración principal

/ Etc / hosts.allow , alcanza para permitir el acceso

/ Etc / hosts.deny , HOSTS para evitar el acceso
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 qué PCs es posible conectarse. Estas opciones se
configuran en el archivo /etc/exports
Una vez instalado el servidor NFS, editamos el archivo de configuración 'exports' en el que
especificamos aquellos directorios a exportar y que usuarios pueden acceder a ellos.
# nano /etc/exports
La sintaxis del archivo es: <directorio a exportar> <máquina que puede acceder> (opciones)
Ejemplo:
/home/usuario/público 192.168.0.0/24 (rw)
En éste caso, el directorio a exportar es '/home/usuario/público' y al cual podrán acceder todas las
máquinas que se encuentren en el rango nuestra red, en modo lectura/escritura (rw).
Para el modo sólo lectura, cambiamos (rw) por (ro).
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)
También podemos especificar las máquinas que tendrán acceso al servidor NFS, en vez de indicar
un rango de direcciones.
Ejemplo:
/home/usuario/público 192.168.0.110 192.168.0.111 (rw)
Para proporcionar un poco de seguridad, debemos editar y modificar los archivos de configuración
siguientes:
# nano /etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
# nano /etc/hosts.allow
rpcbind:IP_A_PERMITIR
(192.168.0.0/24)
portmap:IP_A_PERMITIR
(192.168.0.0/24)
lockd:IP_A_PERMITIR
(192.168.0.0/24)
mountd:IP_A_PERMITIR
(192.168.0.0/24)
rquotad:IP_A_PERMITIR
(192.168.0.0/24)
statd: IP_A_PERMITIR
(192.168.0.0/24)
SERVICIOS REQUERIDOS
Linux utiliza una combinación de soporte a nivel del kernel y procesos demonio para proporcionar
los archivos compartidos con NFS. NFSv2 y NFSv3 confía en las Llamadas de procedimientos
remotos ((RPC)) para enrutar peticiones entre clientes y servidores. Los servicios RPC bajo Linux
son controlados por el servicio portmap. Para compartir o montar sistemas de archivos NFS, los
servicios siguientes funcionan juntos, dependiendo de cuál versión de NFS se tenga implementada:

nfs — Inicia los procesos RPC apropiados para servir peticiones para los sistemas de
archivos compartidos NFS.

nfslock — Un servicio opcional que inicia los procesos RPC adecuados para permitir que
clientes NFS bloqueen archivos en el servidor.

portmap — El servicio RPC para Linux; responde a las peticiones para servicios RPC y
configura las conexiones al servicio RPC solicitado. No se utiliza con NFSv4.
Los siguientes procesos RPC facilitan los servicios NFS:

rpc.mountd — Este proceso recibe las peticiones de montaje desde clientes NFS y verifica
que el sistema de archivos solicitado esté actualmente exportado. Este proceso es iniciado
automáticamente por el servicio nfs y no requiere de la configuración del usuario. No se
utiliza con NFSv4.

rpc.nfsd — Este proceso es el servidor NFS. Trabaja con el kernel Linux para satisfacer las
demandas dinámicas de clientes NFS, tales como proporcionar hilos del servidor cada vez
que se conecta un cliente NFS. Este proceso corresponde al servicio nfs.

rpc.lockd — Un proceso opcional que permite a los clientes NFS bloquear archivos en el
servidor. Esto corresponde al servicio nfslock. No se utiliza con NFSv4.

rpc.statd — Este proceso implementa el protocolo RPC Network Status Monitor (NSM) el
cual notifica a los clientes NFS cuando un servidor NFS es reiniciado luego de haber sido
apagado abruptamente. Este proceso es iniciado automáticamente por el servicio nfslock y
no requiere configuración por parte del usuario. No se utiliza con NFSv4.

rpc.rquotad — Proporciona información de cuotas de usuario para los usuarios remotos.
Este proceso se inicia automáticamente por el servicio nfs y no requiere configuración por
parte del usuario.

rpc.idmapd — Este proceso proporciona al cliente y servidor NFSv4 llamadas ascendentes
(upcalls) que hacen corresponder los nombres NFSv4 (los cuales son cadenas en la forma
usuario@dominio) y los UIDs y GIDs locales. Para que idmapd funcione con NFSv4, el
/etc/idmapd.conf debe estar configurado. Se requiere este servicio para su uso con NFSv4.

rpc.svcgssd — Este proceso proporciona al servidor los mecanismos de transporte para el
proceso de autenticación con NFSv4. Se requiere este servicio para su uso con NFSv4.

rpc.gssd — Este proceso proporciona al cliente los mecanismos de transporte para el
proceso de autenticación. Se requiere este servicio para su uso con NFSv4
ARRANQUE Y PARADA DE NFS
Arranque y parada manual
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:
# /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:
# systemctl restart nfs.service
Si deseamos detener el servidor NFS, debemos ejecutar:
# systemctl stop nfs.service
CONFIGURACION DE LOS CLIENTES
El acceso a la carpeta compartida es exactamente igual que el acceso a cualquier otra carpeta de
nuestro disco duro.
Para que los usuarios puedan acceder desde sus clientes NFS a los directorios y archivos
compartidos por el servidor NFS, debemos hacer lo siguiente en el cliente y como root ejecutando
el comando:
# exportfs (mostrar los directorios compartidos)
# mount -t nfs <máquina-servidor>:<directorio-compartido> <punto de montaje>
# umount <punto de montaje>' (desmontar)
Ejemplo:
# mount -t nfs 192.168.0.100:/home/usuario/público /mnt'
# umount /mnt' (para desmontar)
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.
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
# nano /etc/fstab
192.168.0.100:/home/usuario/público /mnt nfs rw,soft,intr 0 0
La compartición de archivos y directorios, la podréis hacer también de forma gráfica, mediante el
uso de la aplicación 'system-config-nfs' instalada anteriormente y a la que podréis acceder desde:
Sistema -> Administración -> NFS, del menú de Gnome.
SISTEMA DE ARCHIVOS DE RED (NFS)
Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de archivos
sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente.
Esto permite a los administradores de sistemas consolidar los recursos en servidores centralizados
en la red.
IMPORTANTE
Para que NFS funcione con un cortafuegos instalado, se debe configurar IPTables con el puerto
predeterminado TCP 2049. Sin una configuración IPTables, NFS no funcionará correctamente.
El script de inicialización NFS y el proceso rpc.nfsd ahora permiten la vinculación a cualquier
puerto especificado durante el inicio del sistema. Sin embargo, esto puede ser susceptible a
errores si el puerto no está disponible o si entra en conflicto con otro demonio.
Para que nos funcione correctamente es necesario indicarle al firewall "iptables" que nos deje
pasar todo el tráfico que venga desde la IP_A_PERMITIR.
iptables -A INPUT -s IP_A_PERMITIR -j ACCEPT
iptables -A INPUT -s NUESTRA_IP -j ACCEPT
iptables -A OUTPUT -s IP_A_PERMITIR -j ACCEPT
iptables -A OUTPUT -s NUESTRA_IP -j ACCEPT
VERSIÓN CON DROP POR DEFECTO
Si queremos que nuestra maquina sea inexcrutable y que solo tenga abierto un puerto
imprescindible para dar determinado servicio. Con DROP por defecto se protege la maquina
perfectamente, aunque hay que añadir algunas reglas para que la propia máquina sea capaz de
salir a internet.
## FLUSH de reglas
iptables –F
iptables –X
iptables –Z
iptables -t nat -F
## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
## Debemos decir de manera explicita qué es lo que queremos abrir
# A nuestra IP le dejamos todo
iptables -A INPUT -s IP_A_PERMITIR -j ACCEPT
Verificamos lo que se aplica con: iptables -L
Descargar