Centralizando el
almacenamiento de archivos y
carpetas
NFS y autofs
Índice
➢ NFS
○ Introducción a NFS
○ Versiones de NFS
○ Principios de funcionamiento NFS
○ Configuración de NFS
■ Cliente
■ Servidor
➢ Autofs (automount)
○ Conceptos generales
○ Configuración de autofs
■ Archivos
■ FreeIPA
NFS
Network File System (NFS)
● Desarrollado por Sun Microsystems
● Permite compartir información por la red
● El acceso a la información remota se realiza de forma
consistente con los accesos locales
● Ampliamente utilizado en los sistemas Unix
● Implementado para otros S.O (ej. Ms. Windows)
● Implementación basada en RPC (Remote Procedure
Calls)
● Usos típicos:
○ Directorios home centralizados
○ Directorios compartidos
○ En sistemas NAS
Visión general de NFS
/ Directorio /
compartido
usr export usr home
bin datos bin
juan pepe laura
juan pepe laura
Cliente NFS.
Monta la información
Servidor NFS. exportada
Exporta información
Versiones NFS
Se han publicado 4 versiones de NFS (NFSv1→ NFSv4)
Actualmente se recomienda el uso de NFSv4
Características:
● Implementa servidor con control de estado (statefull
server)
○ Mantiene información de los accesos de los clientes
○ Mejora la eficiencia
○ Más tolerante a caídas del servidor
● Centraliza todas las operaciones en un único servicio.
○ Facilita la gestión de firewalls
○ Utiliza sólo TCP como protocolo de transporte
● Mejora las prestaciones en seguridad y escalabilidad
Configuración del servidor NFS
Instalación Rocky-9 (nfsv4):
# dnf install nfs-utils
# systemctl start nfs-server
Configuración:
Es necesario indicar de forma explícita qué directorios se pretende
exportar, a qué máquinas y con qué opciones: Fichero /etc/exports
Formato del fichero:
directorio1_a_exportar cliente1(permisos) cliente2(permisos) …
directorio2_a_exportar cliente1(permisos) cliente2(permisos) …
…
Si no se especifica ningún nombre, se asume que tienen permisos todas
las máquinas de Internet
Configuración del servidor NFS
Opciones (selección):
secure: Las peticiones deben ser realizadas desde un puerto
seguro (<1024)
insecure: Inhabilita la opción anterior
ro: Sólo lectura
rw: Lectura/escritura
root_squash: Los accesos desde el cliente con UID=0 (root) se
convierten en el servidor en accesos con UID de un usuario
anónimo (por defecto)
no_root_squash: Los accesos de root en el cliente se convierten
en accesos de root en el servidor
all_squash: Todos los accesos se transforman en accesos de
usuario anónimo.
Configuración del servidor NFS
Opciones (cont.):
anonuid,anongid: Por defecto, cuando se activa root_squash y
all_squash los accesos anónimos utilizan el usuario nobody.
Usando estos parámetros se puede especificar la identidad de este
usuario anónimo.
Ejemplo:
/data/private host1(ro) host2(rw,no_root_squash)
/pub *(ro,all_squash,anonuid=pepe)
/export/home 192.168.1.0/24(rw)
Configuración del servidor NFS
Opciones (cont.): (las entidades de seguridad del servicio nfs, de los hosts y las
correspondientes keytabs deben estar generadas)
sec=mode: Permite realizar el montaje remoto usando diferentes
tipos de seguridad
sec=sys (por defecto): usa UIDs y GIDs locales mediante AUTH_SYS para
autenticar las operaciones NFS.
sec=krb5: usa Kerberos para autenticar a los usuarios.
sec=krb5i: igual que el anterior y, además, utiliza “checksums” seguros de las
operaciones NFS para evitar manipulación de datos (integridad).
sec=krb5p: como el anterior y, además, cifra el tráfico de datos. Es el más
seguro y el más costoso computacionalmente.
Ejemplo:
/pub *(sec=sys:krb5)
/export/home 192.168.1.0/24(sec=krb5:krbi:krb5p)
Configuración del cliente NFS
No requiere instalación de servicios adicionales (solo
nfs-utils)
El cliente debe montar el directorio remoto.
Dos posibilidades:
● comando mount
● montaje permanente (/etc/fstab)
Opciones de montaje:
● soft Con esta opción, cuando una petición no tiene respuesta
del servidor, el cliente devuelve un código de error al proceso
que realizó la petición
● hard Cuando el servidor no responde, el proceso que realizó la
petición en el cliente se queda suspendido indefinidamente.
Es la opción que normalmente esperan las aplicaciones
Configuración del cliente NFS
Opciones de montaje (cont.):
● intr Especifica un montaje interrumpible. Si un proceso está
pendiente de una operación de I/O en una partición montada,
este proceso permite que el proceso se interrumpa
Ejemplos:
● Línea de comandos (ejemplo):
# mount -t nfs4 -o sec=krb5 serv:/export/home /home
● Fichero /etc/fstab
#device mountpoint fstype options dump fsckorder
serv:/export/home /home nfs rw,intr,soft 0
Servicio autofs
El sistema de “montaje” estático descrito anteriormente
presenta algunos inconvenientes:
● En sistemas complejos, el cliente puede necesitar
multitud de montajes:
○ Consume muchos recursos de la máquina
○ Ralentiza el arranque
● En caso de fallo de algún servidor o de las
comunicaciones, podemos dejar al cliente “colgado” al
arrancar
Solución:
● Montaje bajo demanda: automount
Servicio autofs
● Permite montar particiones de forma automática bajo
demanda
● Evita una ralentización inicial al montar todos los
sistemas de ficheros
● Evita incluir a mano todos los puntos de montaje
● Se desactiva transcurrido un tiempo sin utilizar
● Se puede conjugar con un servicio de directorios para
montar discos home de usuarios
Servicio autofs
Modo de funcionamiento:
● Se establecen unos puntos de escucha (rutas en el sistema
de archivos) de tal manera que cuando se atraviesa uno
de estos puntos, el servicio invoca al automount para que
realice una operación de mount de forma automática.
● El control de los puntos de escucha se realiza en el fichero
/etc/auto.master
● Cada entrada (línea) en este fichero representa un punto
de escucha
● El servicio automount entra en operación cuando se
atraviesa (se accede al menos a un nivel inferior) el punto
de escucha
Servicio autofs
Una vez superado el punto de escucha, automount analiza la ruta
de la siguiente manera:
/punto_de_escucha/clave/resto_ruta
donde:
● punto_de_escucha: ruta establecida como alarma
● clave: siguiente elemento de la ruta a partir del punto_de_escucha
● resto_ruta: restantes componentes de la ruta
Ejemplo:
Si establecemos como punto de escucha /datos, el servicio automount sólo se
activa cuando se atraviesa esa ruta.
Así, si accedemos al fichero /datos/contabilidad/ventas/confidencial.txt:
● punto_de_escucha: /datos
● clave: contabilidad
● resto_ruta: ventas/confidencial.txt
Configuración de autofs
La configuración se realiza a través de varios ficheros:
/etc/auto.master
Cada línea del fichero se analiza como:
punto_de_escucha fichero_mapa opciones
● punto_de_escucha : Punto en la estructura de directorios
donde se va a establecer la alarma
● fichero_mapa: Fichero o entrada ldap que contiene las
instrucciones del montaje a realizar
● opciones: Opciones al realizar el montaje.
Ejemplo:
/home /etc/auto.home
/misc /etc/auto.misc
Configuración de autofs
Formato de los ficheros mapas:
Cada línea del fichero se analiza como:
clave opciones sistema_a_montar
● clave : Siguiente elemento de la ruta relativo a
punto_de_escucha
● opciones: Opciones al realizar el montaje (tienen
prioridad frente a las especificadas en /etc/auto.master
● sistema_a_montar: Sistema de archivos a montar. Puede
ser:
○ Sistema de archivos local: Se antepone “:” a la ruta
○ Directorio exportado por nfs: Se indica con:
nombre_del_servidor:/ruta/absoluta
Configuración de autofs
Se pueden utilizar comodines para asociar claves con
elementos de la ruta a montar.
Ejemplo:
Se desea montar los directorios “home” de los usuarios
que residen en el directorio /export/datos del servidor
nfs_server.
/etc/auto.master:
/home /etc/auto.home rw
/etc/auto.home
* nfs_server:/export/datos/&
Configuración en freeIPA
La información de automontaje puede centralizarse en LDAP
En lugar de archivos mapa, usamos las entradas correspondientes
Ej: dn: automountmapname=auto.master,cn=default,cn=automount,dc=dominio,dc=lan
Configuración en freeIPA
dn: automountmapname=auto.master,cn=default,
cn=automount,dc=lacorrala,dc=lan
dn: description=/prueba,automountmapname=auto.master,
cn=default,cn=automount,dc=lacorrala,dc=lan
dn: automountmapname=auto.compartir,cn=default,
cn=automount,dc=lacorrala,dc=lan
dn: description=share,automountmapname=auto.compartir,
cn=default,cn=automount, dc=lacorrala,dc=lan
Configuración en freeIPA
Ejemplo con comandos IPA
# ipa automountmap-add-indirect default auto.compartir --mount=/prueba
--------------------------------------------
Añadido mapa de automontaje "auto.compartir"
--------------------------------------------
Mapa: auto.compartir
# ipa automountkey-add default auto.compartir --key "share" --info
"agfserver.lacorrala.lan:/export/compartir"
------------------------------------
Añadida clave de automontaje "share"
------------------------------------
Llave: share
Información de montaje: agfserver.lacorrala.lan:/export/compartir
Nota: En los ordenadores cliente, se debe usar el comando “ipa-client-automount” para la configuración