Detallaré la creación de NFS Mount Point en un cliente de Windows 10 en la parte 2 de esta serie. Por ahora, centrémonos en un servidor Ubuntu que ofrece almacenamiento NFS y un cliente de Ubuntu que intenta conectarse a él.
La puesta en marcha
Mi servidor NFS se basará en Ubuntu 18.04 LTS. Puede usar su Linux Distro o FreeBSD favorito, o cualquier otro sistema operativo que admita OpenZFS. Mi razón para usar Ubuntu 18.04 es que es bastante popular y reduciría considerablemente la barrera de entrada.
Se supone que el NFS está disponible solo en mi LAN que tiene la máscara de subred de 255.255.255.0 y 192.168.0.1 como su puerta de enlace predeterminada. En inglés sencillo, esto significa que todos los dispositivos conectados a mi red doméstica (WiFi y Ethernet, et al) tendrán direcciones IP que van desde 192.168.0.2 a 192.168.0.254.
El servidor NFS se configurará para permitir que solo los dispositivos con la dirección IP mencionada tengan acceso al servidor NFS. Esto aseguraría que solo los dispositivos que se hayan conectado a mi LAN accedan a mis archivos y el mundo exterior no puede acceder a él. Si tiene una configuración de 'wifi' abierta o si la seguridad en el punto final de su enrutador es dudoso, esto no garantizaría ninguna seguridad.
No recomendaría ejecutar NFS a través de Internet público sin medida de seguridad adicional.
Por último, los comandos que se ejecutan en el servidor NFS tienen el aviso, el servidor $ y los comandos que se ejecutarán en el lado del cliente tienen el cliente indicador $
Creación de piscina y conjunto de datos OpenZFS
Si ya tienes un zpool en funcionamiento, omita este paso. En mi servidor NFS, que ejecuta Ubuntu 18.04 LTS Server, primero instalo OpenZFS.
servidor $ sudo apt install zfsutils-linuxA continuación, enumeramos todos los dispositivos de bloque disponibles para ver los nuevos discos (y particiones) esperando ser formateados con ZFS.
$ lsblkUn ejemplo típico se muestra arriba, pero su convención de nombres puede ser muy diferente. Tendrás que usar tu propio juicio y tener mucho cuidado al respecto. No desea formatear accidentalmente su disco OS. Por ejemplo, la partición SDA1 claramente tiene el sistema de archivos raíz como su punto de montaje, por lo que no es aconsejable tocarlo. Si está utilizando nuevos discos, es probable que no tengan un punto de montaje o ningún tipo de partición.
Una vez que conozca el nombre de sus dispositivos, utilizaremos el comando Zpool Crear para formatear un par de estos dispositivos de bloque (llamados SDB y SDC) en un Zpool con un solo VDEV que está compuesto por dos disco reflejado.
servidor $ sudo zpool Crear espejo de tanque SDB SDCEn el futuro, puede agregar discos en conjuntos de dos (llamados VDEV) para crecer del tamaño de este Zpool, los nuevos discos aparecerán como Mirror-1, Mirror-2, etc. No tiene que crear su Zpool como yo, puede usar la espejo con más discos, puede usar rayas sin redundancia pero mejor rendimiento, o puede usar Raidz. Al final del día, lo que importa es que hemos creado un Zpool llamado Tank. Sobre el cual vivirá el NFS compartido. Creemos un conjunto de datos que se compartirá. Primero asegúrese de que la piscina, llamada 'tanque', esté montada. El punto de montaje predeterminado es '/tanque' .
servidor $ sudo ZFS Mount TankConfiguración de permisos
Al compartir un directorio NFS, el Superuser en el sistema del cliente no tiene acceso a nada en el recurso compartido. Mientras que el SuperUser del lado del cliente es capaz de hacer algo en la máquina del cliente, el soporte NFS técnicamente no es parte de la máquina del cliente. Por lo tanto, permitir operaciones en nombre del superusor del lado del cliente asignado como superusor del lado del servidor podría dar lugar a problemas de seguridad. De forma predeterminada, NFS mapea las acciones del superusor del lado del cliente a nadie: usuario de nogroup y grupo de usuarios. Si tiene la intención de acceder a los archivos montados como root, entonces el conjunto de datos en nuestro servidor NFS también debe tener los mismos permisos,
servidor $ sudo chown nadie: nogroup /tank /nfsshareEl servidor NFS ejecutará cualquier acción por parte de la raíz del lado del cliente como usuario de nadie, por lo que el permiso anterior permitirá que las operaciones pasen.
Si está utilizando un nombre de usuario diferente (regular), a menudo es conveniente tener un usuario con el mismo nombre de usuario exacto en ambos lados.
Creando compartir NFS
Una vez que haya creado zpool, debe instalar el paquete del servidor NFS desde su administrador de paquetes:
servidor $ sudo apt install nfs-kernel-serverTradicionalmente, el servidor NFS usa /etc /exporta archivo para obtener una lista de clientes aprobados y los archivos a los que tendrán acceso. Sin embargo, utilizaremos la función incorporada de ZFS para lograr lo mismo.
Simplemente use el comando:
servidor $ sudo zfs set sharenfs = "on" /tank /nfsshareAnteriormente, aludí a dar solo ciertos IP el acceso. Puedes hacerlo como sigue:
servidor $ sudo zfs set sharenfs = "rw [email protected] de 0/24 "/nfsshareEl 'RW' significa permisos de lectura-escritura, y eso es seguido por el rango de IPS. Asegúrese de que el puerto número 111 y 2049 esté abierto en su firewall. Si está usando UFW, puede verificarlo ejecutando:
Estado de $ UFW de servidorTome nota de la IP de su servidor en la LAN, utilizando el comando IFCONFIG o ADDR IP. Llamémoslo servidor.IP
Montaje del lado del cliente
Una vez que se crea la compartir, puede montarla en la máquina de su cliente, ejecutando el comando:
Cliente $ Mount -T NFS Server.IP:/Tank/Nfsshare/MNTEsto montará la carpeta NFS compartir en /mnt, pero podría haber elegido fácilmente cualquier otro punto de montaje de su elección.
El intercambio de archivos es probablemente el aspecto más importante de la administración del sistema. Mejora su comprensión de la pila de almacenamiento, redes, permisos de usuario y privilegios. Rápidamente se dará cuenta de la importancia del principio de menor privilegio, es decir, solo le dará al usuario el mejor acceso posible que necesita a su trabajo.
También aprenderá sobre la interoperabilidad entre los diferentes sistemas operativos. Los usuarios de Windows pueden acceder a los archivos NFS, al igual que los usuarios de Mac y BSD pueden. No puede restringirse a un sistema operativo cuando se trata de una red de máquinas, todas sus propias convenciones y vernáculos. Así que adelante y experimente con su NFS Share. Espero que hayas aprendido algo.