LinuxParty
Esta guía explica cómo configurar un servidor NFS y un cliente de NFS. El acrónimo NFS significa Network File System; y como a través de NFS, un cliente de acceso (lectura, escritura) compartirá con un servidor NFS, el contenido de éste último como si de un disco local se tratara
1 Nota preliminar
- Servidor NFS: server.example.com, dirección IP: 192.168.1.34
- Cliente NFS: client.example.com, dirección IP: 192.168.1.33
2 Instalación NFS
servidor:
En el servidor NFS, ejecutamos:
yum install nfs-utils nfs-utils-lib
(apt-get install, si usa Debian/Ubuntu)
Entonces creamos los enlaces de inicio del sistema para el servidor NFS e iniciarlo:
chkconfig --levels 235 nfs on
service nfs start
o/etc/init.d/nfs start
cliente:
En el cliente podemos instalar NFS como sigue (esto es realmente lo mismo que en el servidor):
yum install nfs-utils nfs-utils-lib
3 Exportación directorios del servidor
servidor:
Me gustaría hacer que los directorios /home y /var/nfs fueran accesibles al cliente; por lo tanto debemos "Exportarlos" en el servidor.
Cuando un cliente accede a un recurso compartido de NFS, sucede normalmente como el usuario nobody. Generalmente el directorio /home no es propiedad de nadie (y no lo recomiendo cambiar su propiedad a nadie!), porque si queremos leer y escribir en /home, decimos al NFS que los accesos deben hacerse como root (si nuestra cuota/Inicio era de sólo lectura, esto no sería necesario). No existe el directorio /var/nfs , así que debemos crearlo y cambiar su propiedad; en mis pruebas el usuario y grupo nobody tiene el ID el 99 en ambos mis sistemas de prueba de CentOS (servidor y cliente); Cuando traté de escribir a /var/nfs desde el cliente NFS, tengo un error de permiso denegado , así que hice un chmod 777 /var/nfs para que todo el mundo pudiera escribir en ese directorio.
mkdir /var/nfs
chmod 755 /var/nfs
Ahora debemos modificar /etc/exports donde "exportamos" nuestras acciones NFS. Especificamos /home y /var/nfs como compartidos e indicamos al servidor NFS que los accesos a /home se hagan como root (para aprender más acerca de /etc/exports, su formato y opciones disponibles, echa un vistazo a)
man 5 exports
Recuerde (en este ejemplo):
- Servidor NFS: server.example.com, dirección IP: 192.168.1.34
- Cliente NFS: client.example.com, dirección IP: 192.168.1.33
vi /etc/exports
/home 192.168.1.33(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.1.33(rw,sync,no_subtree_check) |
(La opción no_root_squash permite acceder como root a /home.)
Cada vez que modificamos /etc/exports, debemos ejecutar:
exportfs -a
para hacer efectivos los cambios.
cliente:
Primero creamos los directorios donde queremos montar las acciones NFS, por ejemplo:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs
Posteriormente, podemos montarles como sigue (debemos hacerlo como root, o escribiendo sudo delante si es un usuario con permisos):
Recuerde (en este ejemplo):
- Servidor NFS: server.example.com, dirección IP: 192.168.1.34
- Cliente NFS: client.example.com, dirección IP: 192.168.1.33
mount 192.168.1.34:/home /mnt/nfs/home
mount 192.168.1.34:/var/nfs /mnt/nfs/var/nfs
Ahora debería ver las dos acciones NFS en las salidas de "df -h"
[root@client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
28G 2.2G 25G 8% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 250M 0 250M 0% /dev/shm
192.168.1.34:/home 28G 2.6G 25G 10% /mnt/nfs/home
192.168.1.34:/var/nfs
28G 2.6G 25G 10% /mnt/nfs/var/nfs
[root@client ~]#
y la salida simple de "mount"
[root@client ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.1.34:/home on /mnt/nfs/home type nfs (rw,addr=192.168.1.34)
192.168.1.34:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.1.34)
[root@client ~]#
5 Ensayo
En el cliente, ahora puede intentar crear archivos de prueba en el servidor NFS:
cliente:
touch /mnt/nfs/home/prueba.txt
touch /mnt/nfs/var/nfs/prueba.txt
Ahora vaya al servidor y compruebe que si puede ver ambos archivos de prueba:
servidor:
ls -l /home/
[root@server ~] # ls -l /home/
55540 total
-rw-r--r--1 root root 0 Sep 16 17:30 prueba.txt
[root@server ~] #
ls -l /var/nfs
[root@server ~] # ls - l /var/nfs
0 total
-rw-r--r--1 65534 65534 0 Sep 16 17:30 prueba.txt
[root@server ~] #
(Tenga en cuenta las diferentes propiedades de los archivos de prueba: el recurso compartido de NFS /home obtiene acceso como root, por lo tanto /home/test.txt es propiedad de root, obtiene acceso a la cuota de /var/nfs nobody , por lo tanto, es propiedad de nobody)
6 Montaje NFS acciones durante el arranque
En lugar de montar manualmente las acciones NFS en el cliente, se puede modificar /etc/fstab para que las acciones NFS se montan automáticamente cuando el cliente se inicia.
Recuerde (en este ejemplo):
- Servidor NFS: server.example.com, dirección IP: 192.168.1.34
- Cliente NFS: client.example.com, dirección IP: 192.168.1.33
cliente:
Abra /etc/fstab y agregue las siguientes lineas:
vi /etc/fstab
[...] 192.168.1.34:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.34:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 |
En lugar de rw, sync, hard, intr puede utilizar opciones de montaje diferentes. Para más información sobre las opciones disponibles, echa un vistazo a
man nfs
Para probar si está funcionando su modificado /etc/fstab, reinicie al cliente:
reinicio
Después del reinicio, encontrará las dos acciones NFS en las salidas de
df .-h
[root@client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
28G 2.2G 25G 8% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 250M 0 250M 0% /dev/shm
192.168.1.34:/home 28G 2.6G 25G 10% /mnt/nfs/home
192.168.1.34:/var/nfs
28G 2.6G 25G 10% /mnt/nfs/var/nfs
[root@client ~]#
y
mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.1.34:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,addr=192.168.1.34)
192.168.1.34:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,addr=192.168.1.34)
[root@client ~]#
También te puede interesar tener la información cifrada y secreta, entonces deberías leer este artículo:
Montar directorios remotos con SSHFS en Ubuntu
-
Linux
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio
- Linus Torvalds sobre el 'hilarante' bombo de la IA
- Cambiar la hora en Linux con Chrony
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Linux 6.9 será el primero en superar los 10 millones de objetos Git
- Zorin OS 17.1 lanzado con soporte mejorado para aplicaciones de Windows, edición educativa
Comentarios
Tengo un fileserver synology y estoy tratando de que un servidor zimbra guarde la data en una carpeta compartida nfs.
Evidentemente es un ejemplo, tu puedes montar lo que quieras, generalmente es el directorio /home/ el que contiene los usuarios, que son los que contienen los datos.
Tal vez te interese leer:
Montar directorios por ssh en Linux (para comprobar la seguridad del sistema):
******www.linuxparty.es/index.php/57-seguridad/8879-montar-directorios-por-ssh-en-linux-para-comprobar-la-seguridad-del-sistema