Cómo instalar y configurar un servidor NFS en CENTOS 8 2021
El sistema de archivos de red (NFS) es un protocolo de sistema de archivos distribuido que le permite compartir directorios remotos en una red. Con NFS, puede montar directorios remotos en su sistema y trabajar con archivos en la máquina remota como si fueran archivos locales.
El protocolo NFS no está cifrado de forma predeterminada y, a diferencia de Samba, no proporciona autenticacion de usuario. El acceso al servidor está limitado por direcciones IP o nombres de host del cliente.
En este tutorial, seguirá los pasos necesarios para configurar un servidor NFSV4 en CENTOS 8. También le mostraremos cómo montar una Sistema de archivos NFS en el cliente.
Requisitos previos
Supongamos que tiene un servidor que ejecuta CentOS 8 en el que configuraremos el servidor NFS y otras máquinas que actuarán como clientes NFS. El servidor y los clientes deben poder comunicarse entre sí en una red privada. Si su proveedor de alojamiento no ofrece direcciones IP privadas, puede usar las direcciones IP públicas y configurar el firewall del servidor para permitir el tráfico de puertos 2049
solo de fuentes confiables.
Las máquinas en este ejemplo tienen las siguientes direcciones IP:
NFS Server IP: 192.168.33.148 NFS Clients IPs: From the 192.168.33.0/24 range
Configurar el servidor NFS
Esta La sección explica cómo instalar los paquetes necesarios, crear y exportar directorios de NFS y configurar el firewall.
Instalación del servidor NFS
El paquete «NFS-Utilities» proporciona servicios públicos y demonios NFS El servidor NFS. Para instalarlo, ejecute el siguiente comando:
Una vez que la instalación esté completa, active e inicie el servicio NFS en la tecla:
sudo systemctl enable --now nfs-server
De forma predeterminada, en los Centros 8, las versiones NFS 3 y 4.x están habilitadas, la versión 2 se desactiva. NFSV2 tiene la edad suficiente ahora, y no hay razón para activarlo. Para comprobarlo, ejecute el comando cat
:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
Las opciones de configuración del servidor NFS se definen en el y . La configuración predeterminada es suficiente para nuestro tutorial.
Creación de sistemas de archivos
Cuando se configura un servidor NFSV4, se recomienda usar un directorio de raíces GLOBAL NFS. Y vincular el ensamblaje del Real Directorios para compartir el punto de montaje. En este ejemplo, utilizaremos el director /srv/nfs4
como raíz de NFS.
Para explicar mejor cómo se pueden configurar los montes de NFS, compartiremos dos directorios (/var/www
y /opt/backups
) con diferentes parámetros de configuración.
El /var/www/
pertenece al usuario y grupo apache
y /opt/backups
pertenece a root
.
Crear el sistema de archivos de exportación utilizando el comando :
sudo mkdir -p /srv/nfs4/{backups, www}
Monte Los directorios reales:
Para realizar los accesorios de conexión, agregue el Tras entradas al archivo /etc/fstab
:
sudo nano /etc/fstab
/ etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Exportación de sistemas de archivos
El siguiente paso es configurar los sistemas de archivos que se exportarán por el servidor NFS, las opciones de intercambio y los clientes podrán acceder a estos sistemas de archivos. Para hacer esto, abra el archivo /etc/exports
:
sudo nano /etc/exports
Exportar los directorios www
y backups
y permiten el acceso solo de los clientes a la red 192.168.33.0/24
:
/ etc / exportaciones
/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)
La primera línea contiene fsid=0
que define la raíz de directorio nfs /srv/nfs
. El acceso a este volumen NFS solo se le permite a los clientes de la subred 192.168.33.0/24
. La opción crossmnt
se requiere para compartir directorios que sean subdirectorios de un directorio exportado.
La segunda línea muestra cómo especificar múltiples reglas de exportación para un sistema de archivos. Exporta el /srv/nfs4/backups
y permite solo acceso de acceso a toda la gama 192.168.33.0/24
, así como acceso a la lectura y la escritura a 192.168.33.3
.La opción de sync
indica a NFS para escribir los cambios en el disco antes de contestar.
La última línea debe ser explícita. Para obtener más información sobre todas las opciones disponibles, escriba en su dispositivo.
GUARDAR EL ARCHIVO Y EXPORTAR LAS ACTUALES:
sudo exportfs -ra
Debe ejecutar el comando de arriba cada vez que cambie el archivo /etc/exports
. Si hay errores o advertencias, se mostrarán en la terminal.
Para ver las exportaciones activas actuales y su estado, use:
sudo exportfs -v
La salida incluirá todas las acciones con sus opciones. Como puede ver, también hay opciones que no hemos definido en el archivo /etc/exports
. Estas son opciones de forma predeterminada, y si desea cambiarlas, deberá definir estas opciones explícitamente.
/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
root_squash
es una de las opciones más importantes para la seguridad de NFS. Previene los usuarios root conectados a los clientes para tener privilegios de root en las acciones montadas. IL nogroup
UID
y el GID
raíz en nobody
nogroup
UID
GID
para eso Los usuarios en las máquinas cliente tienen acceso, NFS está esperando que los ID de usuario y grupo del cliente coincidan con los del servidor. Otra opción es usar la función de asignación de ID NFSV4 que traduce los ID de usuario y el grupo en nombres y viceversa.
Eso es. En este punto, ha configurado un servidor NFS en su servidor CENTOS. Ahora puede ir al siguiente paso y configurar los clientes y conectarse al servidor NFS.
Configuración de firewall
Firewalld es la solución de firewall predeterminada en CentOS 8.
El servicio NFS incluye reglas predefinidas para permitir el acceso al servidor NFS.
Los siguientes comandos permitirán el acceso permanentemente desde el 192.168.33.0/24
:
sudo firewall-cmd --new-zone=nfs --permanent
sudo firewall-cmd --zone=nfs --add-service=nfs --permanent
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload
Configure a los clientes NFS
Ahora que el servidor NFS está configurado y el Se exportan las acciones, el siguiente paso configura a los clientes y monta los sistemas de archivos remotos.
También puede montar el recurso compartido. NFS en máquinas MACOS y Windows, pero nos centraremos en los sistemas Linux.
Instalación del cliente NFS
en el Máquinas de cliente, instale las herramientas requeridas para montar sistemas de archivos REMOTOS REMOTOS.
-
Instale el cliente NFS en Debian y Ubuntu
El nombre del paquete que incluye programas Para montar los sistemas de archivos NFS en las distribuciones basadas en Debian, es
nfs-common
. Para instalarlo Ejecutar:sudo apt update
sudo apt install nfs-common
Instale el cliente NFS en los centros y Fedora
en el sombrero rojo y sus derivados, instale el paquete
nfs-utils
:
Sistemas de archivos de montaje
Trabajaremos en la máquina cliente con IP 192.168.33.110
, que una lea y escriba acceso al sistema de archivos /srv/nfs4/www
y acceso de solo lectura al sistema de archivos /srv/nfs4/backups
.
Crea dos Nuevos directorios para puntos de montaje. Puede crear estos directorios en cualquier ubicación de su elección.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Sube los sistemas de archivos exportados con el comando mount
sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www
donde 192.168.33.148
es la IP del servidor NFS. También puede usar el nombre de host en lugar de la dirección IP, pero debe resolverse por la máquina cliente. Esto generalmente se hace asignando el nombre de host en la dirección IP en el archivo /etc/hosts
.
Cuando se monta un sistema de archivos NFSV4, debe omitir el directorio raíz de NFS , así que en lugar de /srv/nfs4/backups
tiene que usar /backups
.
Verificar que los sistemas de archivos remotos estén montados correctamente usando el monte o df
:
df -h
El comando imprimirá todo el archivo montado sistemas.Las dos últimas líneas son las acciones montadas:
... 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www
Para realizar los accesorios de fijación al reinicio, abra el archivo /etc/fstab
:
sudo nano /etc/fstab
y agregue las siguientes líneas:
/ etc / fstab
192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0
Para encontrar más información sobre las opciones disponibles al montar un sistema de archivos NFS, escriba man nfs
en su terminal.
Otra opción para montar los sistemas de archivos remotos es usar la herramienta autofs
o para crear una unidad SystemD.
PRUEBA DE ACCESO DE NFS
Acceso a la prueba compartiendo el acceso al crear un nuevo archivo en cada uno de ellos.
primero, intente crear un archivo de prueba en el /backups
Directorio usando el comando touch
:
sudo touch /backups/test.txt
El sistema de archivos se exporta solo lectura, y como se esperaba, verá un mensaje de error Permission denied
:
touch: cannot touch '/backups/test': Permission denied
A continuación, intente crear un archivo de prueba en el /srv/www
como root usando el sudo
:
sudo touch /srv/www/test.txt
Una vez más, verá el mensajePermission denied
touch: cannot touch '/srv/www': Permission denied
El directorio /var/www
pertenece al usuario apache
, y este intercambio tiene la opción root_squash
root_squash
, que asigna la raíz del usuario al usuario nobody
y nogroup
grupo nogroup
que no tiene permisos d escribir en el recurso remoto.
Suponiendo que un usuario existe en la máquina cliente con el mismo UID
y GID
que en el servidor remoto (que debería ser el caso si, por ejemplo, instaló Apache en ambas máquinas), puede probar para crear un archivo como usuario apache
con:
sudo -u apache touch /srv/www/test.txt
El comando no mostrará ninguna salida, lo que significa que el archivo ha sido creado con éxito.
Para verificarlo, enumeró los archivos en el /srv/www
:
ls -la /srv/www
La salida debe mostrar el archivo recién creado:
drwxr-xr-x 3 apache apache 4096 Jun 23 22:18 . drwxr-xr-x 3 root root 4096 Jun 23 22:29 .. -rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html -rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt
Desmontaje del sistema de archivos NFS
sudo umount /backups
Si el punto de montaje se establece en el archivo /etc/fstab
, asegúrese de eliminar la línea o comentario agregando #
al principio de la línea.
Conclusión
En este tutorial, le mostramos cómo configurar un servidor NFS y CO Sistemas de archivos remotos de Munt Mount en máquinas cliente. Si implementa NFS en la producción y los datos confidenciales de la producción, es una buena idea habilitar la autenticación de Kerberos.
Como alternativa a NFS, puede usar SSHFS para montar directorios remotos en una conexión SSH. SSHFS está encriptada de forma predeterminada y mucho más fácil de configurar y usar.
Write a Reply or Comment