¿Cómo Instalar NFS en Ubuntu Server 18.04 LTS?
Tabla de contenido:
- Prerrequisitos
- Configurar el servidor NFS
- Instalar el servidor NFS
- Crear los sistemas de archivos
- Exportando los sistemas de archivos
- Configuración de firewall
- Configurar los clientes NFS
- Instalar el cliente NFS
- Montaje de sistemas de archivos
- Prueba de acceso NFS
- Desmontaje del sistema de archivos NFS
- Conclusión
Network File System (NFS) es un protocolo de sistema de archivos distribuido que le permite compartir directorios remotos a través de una red. Con NFS, puede montar directorios remotos en su sistema y trabajar con los archivos en la máquina remota como si fueran archivos locales.
El protocolo NFS no está cifrado de manera predeterminada y, a diferencia de Samba, no proporciona autenticación de usuario. El acceso al servidor está restringido por las direcciones IP o nombres de host de los clientes.
En este tutorial, veremos cómo configurar un servidor NFSv4 en Ubuntu 18.04. También le mostraremos cómo montar un sistema de archivos NFS en el cliente.
Prerrequisitos
Este ejemplo supone que tiene un servidor que ejecuta Ubuntu 18.04 y otro que ejecuta cualquier otra distribución de Linux. El servidor y los clientes deben poder comunicarse entre sí a través de 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 en el puerto
2049
solo de fuentes confiables.
Las máquinas en este ejemplo tienen las siguientes IP:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
Configurar el servidor NFS
Comenzaremos instalando y configurando el servidor NFS.
Instalar el servidor NFS
Actualice el índice de paquetes e instale el paquete del servidor NFS:
sudo apt update
sudo apt install nfs-kernel-server
Una vez que se completa la instalación, los servicios NFS se iniciarán automáticamente.
Por defecto, en Ubuntu 18.04 NFS versión 2 está deshabilitado. Las versiones 3 y 4 están habilitadas. Puede verificar eso ejecutando el siguiente comando
cat
:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 es bastante viejo ahora, y no hay razón para habilitarlo.
Las opciones de configuración del servidor NFS se establecen en
/etc/default/nfs-kernel-server
y
/etc/default/nfs-common
. La configuración predeterminada es suficiente en nuestro caso.
Crear los sistemas de archivos
Al configurar un servidor NFSv4, es una buena práctica usar un directorio raíz NFS global y montar los directorios reales en el punto de montaje compartido. En este ejemplo, utilizaremos el director
/srv/nfs4
como raíz NFS.
Vamos a compartir dos directorios (
/var/www
y
/opt/backups
), con diferentes configuraciones, para explicar mejor cómo se pueden configurar los montajes NFS.
/var/www/
es propiedad del usuario y el grupo
www-data
y
/opt/backups
es propiedad de
root
.
Cree el sistema de archivos de exportación con el comando
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
Montar los directorios reales:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Para que los montajes de enlace sean permanentes, abra el
/etc/fstab
:
sudo nano /etc/fstab
y agregue las siguientes líneas:
/ etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Exportando los sistemas de archivos
El siguiente paso es definir los sistemas de archivos que exportará el servidor NFS, las opciones de recursos compartidos y los clientes a los que se les permite acceder a esos sistemas de archivos. Para hacerlo, abra el
/etc/exports
:
sudo nano /etc/exports
El
/etc/exports
también contiene comentarios que describen cómo exportar un directorio.
En nuestro caso, necesitamos exportar los directorios
www
y de
backups
y permitir el acceso solo desde clientes en la red
192.168.33.0/24
:
/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 el directorio raíz NFS
/srv/nfs
. El acceso a este volumen NFS solo está permitido a los clientes desde la subred
192.168.33.0/24
. La opción
crossmnt
es necesaria para compartir directorios que son subdirectorios de un directorio exportado.
En la segunda línea muestra cómo especificar múltiples reglas de exportación para un sistema de archivos. Exporta el directorio
/srv/nfs4/backups
y permite solo acceso de lectura a todo el rango
192.168.33.0/24
y acceso de lectura y escritura a
192.168.33.3
. La opción de
sync
le dice a NFS que escriba los cambios en el disco antes de responder.
La última línea debe explicarse por sí misma. Para obtener más información sobre todas las opciones disponibles, escriba
man exports
en su terminal.
Guarde el archivo y exporte los recursos compartidos:
sudo exportfs -ra
Debe ejecutar el comando anterior cada vez que modifique el
/etc/exports
. Si hay algún error o advertencia, se mostrarán en el 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
/etc/exports
. Esas son opciones predeterminadas y si desea cambiarlas, deberá establecerlas explícitamente.
/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
En Ubuntu,
root_squash
está habilitado por defecto. Esta es una de las opciones más importantes con respecto a la seguridad NFS. Impide que los usuarios root conectados desde los clientes tengan privilegios root en los recursos compartidos montados.
nogroup
UID
y
GID
raíz a
nobody
/
nogroup
UID
/
GID
.
Para que los usuarios de las máquinas cliente tengan acceso, NFS espera que las ID de usuario y grupo del cliente coincidan con las del servidor. Otra opción es usar la función de asignación de mapas NFSv4 que traduce las identificaciones de usuarios y grupos a nombres y viceversa.
Eso es. En este punto, ha configurado un servidor NFS en su servidor Ubuntu. Ahora puede pasar al siguiente paso y configurar los clientes y conectarse al servidor NFS.
Configuración de firewall
Suponiendo que está utilizando
UFW
para administrar su firewall para permitir el acceso desde la subred
192.168.33.0/24
, debe ejecutar el siguiente comando:
sudo ufw allow from 192.168.33.0/24 to any port nfs
Para verificar el cambio, ejecute:
sudo ufw status
La salida debería mostrar que el tráfico en el puerto
2049
está permitido:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
Configurar los clientes NFS
Ahora que el servidor NFS está configurado y los recursos compartidos se exportan, el siguiente paso configura 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.
Instalar el cliente NFS
En las máquinas cliente, necesitamos instalar solo las herramientas necesarias para montar un sistema de archivos NFS remoto.
-
Instalar cliente NFS en Debian y Ubuntu
El nombre del paquete que incluye programas para montar sistemas de archivos NFS en distribuciones basadas en Debian es
nfs-common
. Para instalarlo ejecute:sudo apt update
sudo apt install nfs-common
Instalar cliente NFS en CentOS y Fedora
En Red Hat y sus derivados, instale el paquete
nfs-utils
:sudo yum install nfs-utils
Montaje de sistemas de archivos
Trabajaremos en la máquina cliente con IP
192.168.33.110
que tiene acceso de lectura y escritura al sistema de archivos
/srv/nfs4/www
y acceso de solo lectura al sistema de archivos
/srv/nfs4/backups
.
Cree dos nuevos directorios para los puntos de montaje. Puede crear estos directorios en cualquier lugar que desee.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Monte los sistemas de archivos exportados con el comando
mount
:
sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www
Donde
192.168.33.10
es la IP del servidor NFS. También puede usar el nombre de host en lugar de la dirección IP, pero el equipo cliente debe poder resolverlo. Esto generalmente se hace asignando el nombre de host a la IP en el
/etc/hosts
.
Al montar un sistema de archivos NFSv4, debe omitir el directorio raíz NFS, por lo que, en lugar de
/srv/nfs4/backups
, debe usar
/backups
.
Verifique que los sistemas de archivos remotos se monten correctamente utilizando el comando mount o
df
:
df -h
El comando imprimirá todos los sistemas de archivos montados. Las dos últimas líneas son los recursos compartidos montados:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www
Para hacer que los montajes sean permanentes al reiniciar, abra el
/etc/fstab
:
sudo nano /etc/fstab
y agregue las siguientes líneas:
/ etc / fstab
192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/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 crear una unidad systemd.
Prueba de acceso NFS
Probemos el acceso a los recursos compartidos creando un nuevo archivo para cada uno de ellos.
Primero, intente crear un archivo de prueba en el directorio
/backups
usando el comando
touch
:
sudo touch /backups/test.txt
El sistema de archivos
/backup
se exporta como de solo lectura y, como se esperaba, verá un mensaje de error de
Permission denied
:
touch: cannot touch '/backups/test': Permission denied
A continuación, intente crear un archivo de prueba en el directorio
/srv/www
como raíz utilizando el comando
sudo
:
sudo touch /srv/www/test.txt
Nuevamente, verá el mensaje
Permission denied
.
touch: cannot touch '/srv/www': Permission denied
Suponiendo que tiene un uso de
www-data
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ó nginx en ambas máquinas) puede probar para crear un archivo como usuario
www-data
con:
sudo -u www-data touch /srv/www/test.txt
El comando no mostrará ningún resultado, lo que significa que el archivo se creó correctamente.
Para verificarlo, enumere los archivos en el directorio
/srv/www
:
ls -la /srv/www
El resultado debe mostrar el archivo recién creado:
drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt
Desmontaje del sistema de archivos NFS
sudo umount /backups
Si el punto de montaje se define en el
/etc/fstab
, asegúrese de eliminar la línea o coméntelo agregando
#
al comienzo de la línea.
Conclusión
En este tutorial, le mostramos cómo configurar un servidor NFS y cómo montar los sistemas de archivos remotos en las máquinas cliente. Si está implementando NFS en producción y compartiendo datos sensibles, es una buena idea habilitar la autenticación kerberos.
Como alternativa a NFS, puede usar SSHFS para montar directorios remotos a través de una conexión SSH. SSHFS está encriptado de manera predeterminada y es mucho más fácil de configurar y usar.
Siéntase libre de dejar un comentario si tiene alguna pregunta.
ubuntu nfs terminal de montajeConfigurar, configurar, usar servidor remoto de papas: tutorial detallado de captura de pantalla
Este tutorial de captura de pantalla le indicará cómo configurar, configurar, configurar, Utilice Remote Potato Server en Windows 7.
Cómo instalar y configurar un servidor nfs en centos 8
En este tutorial, realizará los pasos necesarios para configurar un servidor NFSv4 en CentOS 8. También le mostraremos cómo montar un sistema de archivos NFS en el cliente.
Configurar y configurar un servidor de correo
En esta serie, le mostraremos cómo configurar un sistema de correo de usuario virtual completo en un servidor Ubuntu.