NFSv4 - NFS Version 4 Protocol FreeBSD 13.2
Como administrador de un servidor NFS, puede configurarlo para que sólo admita NFSv4, lo que minimiza el número de puertos abiertos y servicios en ejecución en el sistema.
Opcionalmente, también puede deshabilitar la escucha de las llamadas de protocolo RPCBIND, MOUNT, y NSM, que no son necesarias en el caso de sólo NFSv4.
En este momento, es posible habilitar NFSv3 y/o NFSv4 sobre TCP, pero no NFSv3 sobre UDP, de todas maneras, NFSv3 sobre UDP está en desuso. Esto significa que la opción "-u" No se puede especificar para nfs_server_flags en el archivo /etc/rc.conf.
sharenfs=off|on Controla si el sistema de archivos se comparte a través de NFS y que acciones van a ser utilzadas. Un sistema de archivos con una sharenfs=off es administrado con el comando exportfs y entradas en el archivo /etc/exports. Por ejemplo
zfs get sharenfs zroot/usr/backup/dellhome NAME PROPERTY VALUE SOURCE zroot/usr/backup/dellhome sharenfs off local
El archivo exports especifica puntos de montaje remotos para el protocolo NFS. Cada linea especifica el punto de montaje e indicadores de exportacion dentro de un sistema de archivos del servidor local o la raiz del arbol NFSv4 para uno o mas hosts.
En el servidor NFSv4 agregamos a /etc/rc.conf a través de sysrc (editar de forma segura los archivos rc del sistema)
sysrc nfs_server_enable=YES sysrc nfs_server_only=YES sysrc nfsv4_server_only=YES
Usamos el archivo /etc/hosts como resolución de nombre de host en la red local
... 192.168.88.160 tormenta 192.168.88.51 solaris ...
Interfaces y rutas de red - servidor NFSv4
tormenta: # route get 0 route to: default destination: default mask: default gateway: 192.168.88.1 fib: 0 interface: re0 flags: <UP,GATEWAY,DONE,STATIC> recvpipe sendpipe ssthresh rtt,msec mtu weight expire 0 0 0 1500 1 0 # netstat -Winf inet Name Mtu Network Address Ipkts Ierrs Idrop Opkts Oerrs Coll re0 - 192.168.88.0/24 192.168.88.160 14571 - - 15956 - - lo0 - 127.0.0.0/8 127.0.0.1 0 - - 0 - -
Archivo de ejemplo /etc/exports compartiendo en la red local
tormenta: # cat /etc/exports V4: /usr/backup /usr/backup/dellhome -alldirs,quiet -maproot=root -network=192.168.88.0/24 /usr/backup/poolrecovery -alldirs,quiet -maproot=root -network=192.168.88.0/24 /usr/backup/docs -alldirs,quiet -maproot=root -network=192.168.88.0/24 /usr/backup/development -alldirs,quiet -maproot=root -network=192.168.88.0/24
Configurar cliente FreeBSD
cat /etc/hosts... 192.168.88.160 tormenta 192.168.88.51 solaris ...
Para que el servicion nfs client se inicie con el sistema
solaris:~ # sysrc nfs_client_enable=YES
Iniciar el servicio
solaris:~ # service nfsclient start NFS access cache time=60
# nc -v tormenta 2049 Connection to tormenta 2049 port [tcp/nfsd] succeeded!
Montar un directorio compartido en el cliente
solaris:~ # mkdir /mids4 # mount -o nfsv4 tormenta:/docs /mihs4
Archivo /etc/fstab para un montaje permanente y automático
# Device Mountpoint FStype Options Dump Pass# /dev/nvd0p1 /boot/efi msdosfs rw 2 2 /dev/nvd0p3 none swap sw 0 0 # Added by auto-admin from /usr/local/sbin/auto-add-fdesc-mount fdesc /dev/fd fdescfs rw 0 0 # End auto-admin addition # Added by auto-admin from desktop-installer proc /proc procfs rw 0 0 # End auto-admin addition # nfsv4 shared tormenta:/poolrecovery /misc4 nfs rw,nfsv4,late 0 0 tormenta:/development /mixs4 nfs ro,nfsv4,late 0 0 tormenta:/docs /mids4 nfs rw,nfsv4,late 0 0 tormenta:/dellhome /mihs4 nfs rw,nfsv4,late 0 0
Vamos a comprobar que podemos escribir en el directorio
cd /misc4 vim script-while-files.sh #!/bin/sh i=0 while [ $i -le 10 ] do echo 'creando archivos con contenido' i=$(($i+1)) echo Hola > "file$i.txt" done :wq chmod +x script-while-files.sh ./script-while-files.sh ls file3.txt file8.txt file1.txt file4.txt file9.txt file10.txt file5.txt script-while-files.sh file11.txt file6.txt file2.txt file7.txt
Puertos a la escucha (en el servidor)
tormenta:~ # sockstat -l4 USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS root sshd 1248 5 tcp4 *:22 *:* root nfsd 1218 5 tcp4 *:2049 *:*
solaris:~ % mount
... map -hosts on /net (autofs) tormenta:/poolrecovery on /misc4 (nfs, nfsv4acls) tormenta:/dellhome on /mixs4 (nfs, read-only, nfsv4acls) tormenta:/docs on /mids4 (nfs, nfsv4acls) tormenta:/dellhome on /mihs4 (nfs, nfsv4acls) ...
Firewall PF
# pfctl -f /etc/pf.conf
scrub in all no-df max-mss 1440 fragment reassemble block drop in on ! re0 inet from 192.168.88.0/24 to any block drop in inet from 192.168.88.160 to any block drop in on re0 from <rfc1918> to any pass in on re0 from <goodguys> to any flags S/SA keep state pass out on egress proto tcp all flags S/SA modulate state pass in on re0 proto tcp from <goodguys> to any port = nfsd flags S/SA keep state pass out on egress proto udp all keep state pass out on egress proto icmp all keep state pass in log on re0 inet proto tcp from 192.168.88.0/24 to any port = ssh flags S/SA keep stateFreeBSD es genial!.
No hay comentarios:
Publicar un comentario