GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar y configurar un servidor Linux Ubuntu NFS

¿Está buscando una aplicación que le permita compartir archivos y directorios a través de la red? ¿Para varios clientes? ¡Probablemente necesite NFS (Sistema de archivos de red)! Un servidor Ubuntu NFS le permite crear directorios compartidos para varios clientes con control de acceso adicional.

¿No eres un lector? ¡Mira este video tutorial relacionado! ¿No ve el video? Asegúrate de que tu bloqueador de anuncios esté deshabilitado.

En este tutorial, aprenderá cómo configurar un servidor NFS y compartir archivos de forma segura entre varias máquinas.

¿Listo? ¡Siga leyendo y empiece a compartir archivos de forma segura!

Requisitos

Este tutorial será una demostración práctica. Para seguir, asegúrese de cumplir con los siguientes requisitos:

  • Un servidor Linux y un cliente en la misma red:esta demostración utiliza un servidor Ubuntu 20.04 con el nombre de host nfs-server y un cliente Ubuntu 20.04 con nombre de host como client . Pero puede usar otra distribución de Linux, como Debian, CentOS o Fedora.
  • Un usuario no root con privilegios sudo.

Instalando un Servidor Ubuntu NFS

NFS permite el acceso seguro a archivos en sistemas remotos para usuarios como si fueran solo archivos almacenados localmente. Pero antes de compartir archivos y directorios, primero instalará un servidor Ubuntu NFS. En Ubuntu, instalará el nfs-kernel-server paquete en el nfs-server máquina.

Algunos comandos a lo largo del tutorial no tienen resultados. Sin embargo, se muestra un resultado de los pasos acumulados que ha realizado en el último paso de cada sección.

1. Inicie sesión en su servidor Linux y ejecute el sudo su Comando a continuación para obtener los privilegios de root.

sudo su

2. Ejecute los siguientes comandos para update el índice del paquete para su repositorio e instale el paquete del servidor NFS de Ubuntu (nfs-kernel-server ).

sudo apt update
sudo apt install nfs-kernel-server -y

3. Por último, ejecuta el systemctl Comandos a continuación para iniciar y habilitar el servicio NFS nfs-kernel-server , luego verifique el nfs-kernel-server el estado del servicio es activo.

# start and enable NFS service
sudo systemctl enable --now nfs-kernel-server.service

# verify status NFS service
sudo systemctl status nfs-kernel-server.service

Como puede ver a continuación, el activo (salido) el estado indica que el servicio NFS se está ejecutando. El salido el mensaje le dice que el administrador de systemd no puede encontrar ningún demonio para monitorear.

Configuración del directorio compartido NFS

Después de instalar el paquete del servidor NFS, ahora configurará el directorio compartido NFS creando nuevos directorios. Compartirá estos directorios con los clientes y agregará nuevas configuraciones a /etc/exports archivo.

1. Ejecute el siguiente comando para crear un nuevo directorio compartido NFS. En este ejemplo, compartirá el /srv/data directorio y /srv/test a los clientes.

sudo mkdir -p /srv/{data,test}

2. A continuación, ejecute el chown Comando a continuación para cambiar la propiedad del directorio compartido de NFS /srv/data/srv/test al usuario nobody y grupo nogroup . Este comando garantiza que los clientes puedan escribir en el directorio compartido de NFS. sudo chown -R nobody:nogroup /srv/{data,test}

Este comando garantiza que los clientes puedan escribir en el directorio compartido de NFS.

sudo chown -R nobody:nogroup /srv/{data,test}

3. Edite la configuración de NFS /etc/exports utilizando su editor preferido y complete el archivo con la siguiente configuración.

La siguiente configuración permite que las máquinas cliente accedan al directorio compartido de NFS con acceso de usuario especificado, ya sea de lectura y escritura (rw ) o de solo lectura (ro ). Asegúrese de cambiar las direcciones IP (172.16.1.25 y 172.16.1.0/24 ) con las direcciones IP de las máquinas cliente.

# sync - forces NFS to write change from the shared directory to disk immediately.
# no_subtree_check - disabling the subtree checking to get more performance.

# rw - set read/write access to NFS shared directory for clients.
# share /srv/data to client 172.16.1.25 with read and write access.
/srv/data 172.16.1.25(rw,sync,no_subtree_check,root_squash)

# r0 - set read-only access to NFS shared directory for clients.
# share /srv/test to network 172.16.1.0/24 with read only access.
/srv/test 172.16.1.0/24(ro,sync,no_subtree_check)

4. Ejecute el siguiente comando para aplicar el directorio compartido y verifique el /etc/exports archivo de configuración. Si no recibe ningún mensaje de salida, la configuración de NFS es correcta.

sudo exportfs -a

5. Ahora, ejecuta el systemctl Comando a continuación para reiniciar el nfs-kernel-server Servicio.

sudo systemctl restart nfs-kernel-server

6. Por último, ejecuta el showmount Comando a continuación para enumerar los directorios compartidos en el servidor NFS de Ubuntu. Asegúrese de cambiar la dirección IP (172.16.1.20 ) con la dirección IP del servidor NFS.

showmount --exports 172.16.1.20

Ahora debería ver la lista de directorios compartidos en el servidor NFS con la dirección IP que le permitió acceder al servidor Ubuntu NFS.

Asegurar directorio compartido NFS con UFW Firewall

Configuró el directorio compartido de NFS, pero por lo general, querrá evitar que usuarios aleatorios accedan al directorio compartido.

Asegúrese de que solo la dirección IP permitida pueda acceder al directorio compartido. ¿Cómo? Configurando el firewall UFW y especificando la dirección IP al puerto NFS.

1. Ejecute los siguientes comandos para abrir el puerto NFS (2049 ) y permitir clientes en las direcciones IP 172.16.1.25172.16.1.0/24 acceso al servidor Ubuntu NFS. Asegúrese de reemplazar la dirección IP con la dirección IP de su cliente.

# allow client IP 172.16.1.25 to access NFS server
sudo ufw allow from 172.16.1.25 to any port nfs

# allow network 172.16.1.0/24 to access NFS server
sudo ufw allow from 172.16.1.0/24 to any port nfs

2. A continuación, ejecute el ufw Comando a continuación para recargar el firewall UFW y aplicar una nueva configuración.

sudo ufw reload

3. Por último, ejecuta el ufw Comando a continuación para verificar el estado del firewall UFW.

sudo ufw status

A continuación, puede ver que el puerto del servidor NFS 2049 se agrega al firewall y solo se puede acceder desde la dirección IP del cliente 172.16.1.25 y la red 172.16.1.0/24.

Montaje de directorio compartido NFS en equipo cliente

En este punto, ha configurado completamente el servidor NFS de Ubuntu. Pero, ¿cómo pueden las máquinas cliente acceder al directorio compartido de NFS? Ejecutando el mount El comando para acceder al directorio compartido de NFS hará el truco. Pero primero, instalará nfs-common (para la distribución Debian Linux) o nfs-utils (para distribución RHEL, CentOS) a la máquina cliente.

1. Inicie sesión en su máquina cliente, abra la terminal y ejecute sudo su comando para obtener los privilegios de root.

sudo su

2. A continuación, ejecute cualquiera de los siguientes comandos para instalar paquetes NFS en la máquina cliente, según su sistema operativo.

# for Ubuntu/Debian based distribution
sudo apt install nfs-common -y

# for RHEL/CentOS/Fedora Linux distribution
sudo dnf install nfs-utils -y

3. Ejecute el siguiente comando para crear el directorio de montaje de destino. El directorio compartido NFS se montará en la máquina cliente /data/test directorios en este ejemplo.

mkdir -p /{data,test}

4. Ejecuta cada mount comandos a continuación para acceder al directorio compartido de NFS.

El -t nfs La opción especifica que el tipo de sistema de archivos es servidor NFS. Este comando monta el /srv/data directorio compartido en el servidor NFS de Ubuntu al directorio del cliente local (/data ). Y el /srv/test directorio compartido al directorio local del clic /test .

# mount shared directory `/srv/data on the nfs server 172.16.1.20
# to the local client directory /data
sudo mount -t nfs 172.16.1.20:/srv/data /data

# mount shared directory `/srv/test on the nfs server 172.16.1.20
# to the local client directory /test
sudo mount -t nfs 172.16.1.20:/srv/test /test

5. Ejecute el df Comando a continuación para verificar la lista de sistemas de archivos montados en la máquina cliente.

sudo df -h

En el siguiente resultado, verá que el directorio compartido de NFS /srv/data está montado en el directorio /data en la máquina cliente. Al mismo tiempo, el directorio compartido (/srv/test) se monta en el directorio local (/test) en la máquina cliente.

6. A continuación, ejecute los siguientes comandos para navegar hasta el directorio de montaje de destino (/data ) y crea un archivo llamado file.txt .

Dado que el directorio compartido (/srv/data ) tiene permisos de lectura y escritura, puede crear un archivo nuevo.

# navigate to /data directory
cd /data

# create a new file with "This file from client machine!" as content
echo "This file from client machine!" > file.txt

7. Ejecute el lscat Comandos a continuación para verificar que el archivo está disponible en el directorio de montaje /data .

# list files on the current directory
ls -lah

# showing the content of the file.txt
cat file.txt

8. Por último, ejecute cada comando a continuación para navegar al directorio de montaje (/test) y crea un archivo llamado file.txt . Este comando le permite probar las restricciones de acceso de escritura en el sistema de archivos de solo lectura.

# navigate to /test directory
cd /test

# create new file
echo "Test create a file on Read-only filesystem" > file.txt

Al igual que el siguiente resultado, recibirá un mensaje de error porque el directorio compartido (/srv/test) solo tiene permiso de solo lectura.

Montar directorio compartido NFS de forma permanente

Ahora ha montado con éxito el directorio compartido NFS en la máquina cliente, pero desaparecerá después de reiniciar el sistema. ¿Cómo montar el directorio compartido NFS de forma permanente? Al definir el directorio compartido de NFS en /etc/fstab archivo.

1. Edite el /etc/fstab archivo de configuración usando su editor preferido y agregue la siguiente configuración. Cambie la dirección IP con la dirección IP del servidor NFS, el directorio compartido y el directorio de destino de montaje.

# rw/ro - allow read and write or read-only to the target mount.
# hard - enable client machine to always try to connect to the NFS whenever fail.
# noexec - disable binary file execution on the file system.
# rsize - maximum READ requests that client machine can handle.
# wzise - maximum WRITE requests that client machine can handle.
# timeo - timeout for NFS client before retries requests to the NFS server.

# NFS Shared Directory - target - type - options - dump - pass
172.16.1.20:/srv/data /data nfs rw,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0
172.16.1.20:/srv/test /test nfs ro,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0

2. A continuación, ejecute el mount Comando a continuación para montar todo el sistema de archivos en /etc/fstab archivo y verifique el /etc/fstab configuración. Si no hay ningún mensaje de error, entonces la configuración es correcta.

sudo mount -a

3. Ejecute el df Comando a continuación para verificar el sistema de archivos montado en la máquina cliente.

sudo df -h

Similar a la salida a continuación, debería ver que el directorio compartido NFS se monta automáticamente en su máquina cliente.

4. Por último, ejecuta el reboot comando para reiniciar la máquina cliente. Una vez reiniciado, inicie sesión y vuelva a ejecutar df como lo hizo en el paso tres para verificar el directorio compartido de NFS.

sudo df -h

Como puede ver a continuación, el directorio compartido de NFS todavía está montado de forma permanente en la máquina cliente.

Conclusión

A lo largo de este tutorial, ha aprendido a configurar un servidor NFS en un servidor Linux para compartir un directorio de forma segura. También se refirió al montaje permanente del directorio compartido NFS, por lo que no tendrá que montar manualmente el directorio compartido cada vez que reinicie su máquina.

En este punto, tiene un servidor NFS completamente funcional. ¿Qué es lo siguiente? ¿Quizás aprender a agregar una capa de seguridad para NFS usando la autenticación Kerberos?


Linux
  1. Cómo instalar y configurar Nginx en Ubuntu 20.04

  2. Cómo instalar y configurar un servidor NFS en Ubuntu 20.04

  3. Cómo instalar y configurar VNC en Ubuntu 20.04

  4. Cómo instalar y configurar el servidor SVN en Ubuntu y LinuxMint

  5. Cómo instalar y configurar el servidor y el cliente NTP de Linux

Cómo instalar y configurar un servidor NFS en un sistema Linux

Cómo instalar y configurar KVM en Ubuntu Linux

Cómo instalar y configurar Parse Server en Ubuntu 20.04

Cómo instalar y configurar un servidor TeamSpeak en Ubuntu 18.04

Cómo instalar y configurar un servidor de Minecraft en Ubuntu 18.04

Cómo instalar y configurar el servidor DNS en Linux