howtos/Linux/nfs.txt

76 lines
3.2 KiB
Plaintext

#########
SERVIDOR
#########
Instalamos el servidor NFS en un ordenador de nuestra red:
sudo apt-get install nfs-kernel-server
Vamos a compartir un directorio general y el home
Creamos un directorio para exportar como nfs:
sudo mkdir /var/nfs/general -p
NFS traducirá cualquier operación root sobre el cliente a las credenciales nobody:nogroup como medida de seguridad.
Por tanto, debemos cambiar la propiedad del directorio para que coincida con esas credenciales:
sudo chown nobody:nogroup /var/nfs/general
El directorio /home ya existe por lo que no lo crearemos, tampoco le cambiamos los permisos, ya que tiene los adecuados.
Editamos el archivo /etc/exports y escribimos:
/var/nfs/general 192.168.0.0/24(rw,sync,no_subtree_check)
/home 192.168.0.37(rw,sync,no_root_squash,no_subtree_check)
Esto comparte el directorio general en toda la red 192.168 y el home a un solo equipo
Permisos que se pueden aplicar:
ro : lectura
rw : lectura y escritura
link_relative : convierte los enlaces simbólicos absolutos en enlaces simbólicos relativos.
link_absolute : Lo contrario, de relativos a absolutos. Esta es la opción predeterminada.
root_squash : trata las consultas como si vinieran del usuario nobody (lo más seguro). O sea, que evitamos que los usuarios conectados actúen como root.
no_root_sqash : Desactiva lo anterior, y por tanto implica algo de riesgo porque habilita los privilegios de root.
all_squash : Realiza la acción root_squash para todos los usuarios, incluido los usuarios root.
no_all_squash : Habilita la autorización del usuario.
Exportamos el directorio compartido con:
sudo exportfs -a
Parámetros interesantes de exportfs:
exportfs -v : muestra una lista de recursos compartidos y sus opciones configuradas en el archivo /etc/exports
exportfs -a : Exporta todos los directorios declarados en el archivo /etc/exports
exportfs -u : Sirve para des-exportar uno o más recursos.
exportfs -r : re-exporta los directorios después de modificar el archivo /etc/exports
Ahora reinicimos el servidor NFS:
sudo systemctl restart nfs-kernel-server
Ajustamos el firewall:
sudo ufw allow from 192.168.0.0/24 to any port nfs
#########
CLIENTE
#########
En el ordenador cliente instalamos nfs-common:
sudo apt-get install rpcbind nfs-common
Añadimos una línea al archivo /etc/hosts.deny:
rpcbind : ALL
Y otra al archivo /etc/hosts.allow:
rpcbind : ip-del-servidor
Creamos un directorio llamado directorio-red para montar en él el directorio home del servidor:
mkdir directorio-red
Montamos el directorio donde deseemos con:
sudo mount ip-del-servidor:/home /home/usuario/directorio-red
Vemos si está montado:
mount -t nfs
Para que el directorio-red se monte automáticamente al iniciar el sistema operativo, abrimos el archivo /etc/fstab y escribimos al final la siguiente línea (suponemos que el servidor nfs es 192.168.1.8):
ip-del-servidor:/home /home/usuario/directorio-red nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
Si alguna vez queremos desmontar este directorio de red:
sudo umount /home/usuario/directorio-red
y luego eliminamos la línea añadida previamente al archivo /etc/fstab