NFS (Network File System) de Sun Microsystems es una estructura de sistema de archivos distribuida basada en RPC que permite que los dispositivos en red utilicen servidores que ejecutan NFS en una red como sus unidades locales.
Aquí hay una guía paso a paso para instalar y configurar un servidor NFS en una máquina Linux.
¿Qué es el sistema de archivos de red?
El sistema de archivos NFS tiene cuatro protocolos. Cuando el servidor está listo, notifica a portmap (el servidor que convierte el protocolo en números de puerto) del puerto a usar y proporciona el número de programa RPC controlado.
Cuando se utiliza un sistema Linux incorporado, es muy conveniente iniciar su dispositivo a través de un recurso compartido de archivos NFS a través de la red en lugar de iniciarlo directamente desde el dispositivo de almacenamiento (NAND flash, eMMC, MMC, etc.).
Aunque es más raro, es posible que también desee montar un recurso compartido NFS y compartir archivos usándolo después de que se inicie el sistema, incluso si no inicia su sistema directamente desde el recurso compartido NFS. Para que ambos escenarios funcionen, primero debe instalar un servidor NFS en la computadora en la que está desarrollando.
Cómo instalar NFS en Linux
Si está usando un sistema basado en Debian como Ubuntu o Linux Mint, debe instalar el NFS-kernel-servidor paquete de la siguiente manera:
sudo apto Instalar en pc nfs-kernel-servidor
En Arch Linux:
sudo pacman -S nfs-utils
En Fedora, CentOS y RHEL:
sudo dnf-y Instalar en pc nfs-utils
Al final del proceso, su servidor NFS se ejecutará automáticamente. Sin embargo, en este punto, aún no sabe qué directorios de su computadora desea compartir a través de la red. Por lo tanto, no proporciona ningún uso compartido de forma predeterminada.
Puede abrir varios directorios en el mismo servidor para permitir el uso compartido de la red con diferentes autorizaciones y restricciones.
Configuración del servidor NFS en Linux
Para compartir cualquier directorio a través del servidor NFS, es necesario configurar una configuración relacionada con el directorio en el /etc/exports expediente. Abra el archivo con cualquier editor de texto de su elección. Asegúrese de agregar el prefijo sudo al comando.
sudo vim /etc/exportaciones
Quizás se pregunte qué significan las opciones de mapeo que ve aquí:
- root_squash: Marca a los usuarios de clientes autorizados de sudo como usuarios y grupos de nadie en NFS
- no_root_squash: Desactiva el aplastamiento de raíces
- all_squash: A diferencia de root_squash, permite que todos los usuarios se asignen como usuario y grupo de nadie. Generalmente se utiliza para el acceso público.
- no_all_squash: Lo contrario de all_squash; esta opción es la predeterminada
Cuando un sistema fuera de los rangos de IP que usted permite en el archivo /etc/exports en el servidor NFS intenta acceder al recurso relevante, el servidor NFS rechazará la solicitud.
Puede recibir mensajes de "acceso denegado por el servidor" mientras realiza el montaje en su sistema integrado. Mensajes de error similares a los siguientes aparecerán al final de la /var/log/syslog archivo en la computadora donde se ejecuta el servidor NFS:
rpc.mountd[1041]: solicitud de montaje rechazada de192.168.2.2por /home/ejemplo/casper/objetivo (/home/ejemplo/casper/objetivo): host no coincidente
Cuando vea un mensaje de registro de host no coincidente como el anterior, debe expandir la sección IP/Máscara de red de la regla correspondiente en el archivo /etc/exports o usar el asterisco (*) carácter especial si desea otorgar acceso a todas las direcciones IP.
Debe reiniciar el servicio NFS después de realizar modificaciones en el /etc/exports expediente:
sudo service nfs-kernel-server reinicio
O, si su distribución viene con systemctl, ejecute el siguiente comando:
sudosystemctlreiniciarservidor nfs.Servicio
También puedes dar la -r parámetro a la exportarfs Comando para que vuelva a compartir directorios que hayan cambiado cualquier configuración relacionada con el recurso compartido:
sudo exportfs-r
Solucionar el problema de latencia de montaje
Cuando utiliza el protocolo NFS versión 4 y superior en su servidor, puede haber retrasos de hasta 15 segundos durante el proceso de montaje del lado del cliente en escenarios operativos tradicionales con las configuraciones predeterminadas de NFS servidor. Este problema puede aparecer en algunas versiones de Debian, Fedora y Ubuntu.
Si experimenta un retraso de montaje similar, puede verifique los archivos de registro del lado del servidor (/var/log/syslog, /var/log/messages) para un mensaje de registro similar al siguiente:
... RPC: llamada ascendente AUTH_GSS agotada
Este mensaje indica que la autenticación de Kerberos falló y se agotó el tiempo de espera. Probablemente no necesite el protocolo Kerberos para la autenticación de seguridad en la red de su entorno. Incluso si está en una red configurada de esta manera, al menos con sus sistemas Linux incorporados, no necesitará habilitar la autenticación Kerberos.
Aunque se han ofrecido alternativas a la ejecución del servicio GSSD con NFS para solucionar el problema, estos enfoques no tienen el mismo impacto en todas las distribuciones y versiones de paquetes, y por lo tanto, es más racional abordar este problema desde el raíz.
Debe bloquear (o incluir en la lista negra) el rpcsec_gss_krb5 módulo kernel se cargue en el sistema Linux donde se ejecuta el servidor NFS.
Para que esta opción surta efecto cada vez que reinicie su computadora, crear un nuevo archivo llamó /etc/modprobe.d/nfs-gss-blacklist.conf y añádele las siguientes líneas:
lista negra rpcsec_gss_krb5
Una vez que guarde el archivo y reinicie el sistema, el problema de latencia de montaje desaparecerá.
¿Por qué usar un servidor NFS?
NFS es simple y asequible de configurar. Permite la gestión centralizada, lo que reduce la necesidad de software adicional y espacio de almacenamiento en la PC de un usuario individual. En una sola máquina, varios usuarios pueden compartir el mismo espacio en disco. Pueden colocar estos discos encima de su sistema de archivos para ampliar el espacio de almacenamiento.
El uso compartido de NFS permite que los programas que requieren mucho espacio de almacenamiento se agrupen en un solo servidor. Esto puede resultar en un enorme ahorro de espacio en disco. Si bien las versiones anteriores de NFS son vulnerables, las versiones más nuevas han introducido niveles adicionales de protección, incluida la autenticación Kerberos.
Sin embargo, también hay algunas desventajas. Se ha descubierto que NFS se ralentiza en algunos casos durante el tráfico pesado de la red. Es posible compartir con Windows, pero puede requerir algunas aplicaciones de terceros. Pero esta no es una práctica muy sensata en términos de seguridad. Si la configuración no es correcta, pueden producirse accesos no autorizados.
Uso compartido del sistema de archivos simplificado en Linux mediante NFS
Conocer los problemas de seguridad y encontrar soluciones es una de las tareas más críticas de un administrador de sistemas. Es necesario conocer los procedimientos de seguridad para todos los sistemas de intercambio de archivos y herramientas de administración y no solo NFS.