Je détaillerai la création du point de montage NFS sur un client Windows 10 dans la partie 2 de cette série. Pour l'instant, concentrons-nous sur un serveur Ubuntu offrant un stockage NFS et un client Ubuntu essayant d'y connecter.
La mise en place
Mon serveur NFS va être basé sur Ubuntu 18.04 LTS. Vous pouvez utiliser votre distribution Linux préférée ou FreeBSD, ou tout autre système d'exploitation qui prend en charge OpenZFS. Ma raison d'utiliser Ubuntu 18.04 est qu'il est très populaire et réduirait considérablement la barrière d'entrée.
Le NFS est censé être disponible uniquement sur mon LAN qui a le masque de sous-réseau de 255.255.255.0 et 192.168.0.1 Comme sa passerelle par défaut. En anglais simple, cela signifie que tous les appareils connectés à mon réseau domestique (WiFi et Ethernet, et al) auront des adresses IP allant de 192.168.0.2 à 192.168.0.254.
Le serveur NFS sera configuré pour autoriser uniquement les périphériques avec seulement l'adresse IP susmentionnée pour avoir accès au serveur NFS. Cela garantirait que seuls les appareils connectés à mon réseau. Si vous avez une configuration «ouverte WiFi» ou si la sécurité sur le point de terminaison de votre routeur est douteuse, cela ne garantirait aucune sécurité.
Je ne recommanderais pas d'exécuter des NF sur Internet public sans mesure de sécurité supplémentaire.
Enfin, les commandes exécutées sur le serveur NFS ont l'invite, le serveur $ et les commandes à exécuter côté client ont le client invite $
Création du pool et de l'ensemble de données OpenZFS
Si vous avez déjà un zpool en cours d'exécution, sautez cette étape. Sur mon serveur NFS, qui exécute Ubuntu 18.04 serveur LTS, j'installe d'abord OpenZFS.
serveur $ sudo apt installer zfsutils-linuxEnsuite, nous énumérons tous les appareils de bloc disponibles, pour voir les nouveaux disques (et partitions) en attente d'être formatés avec ZFS.
$ lsblkUn exemple typique est illustré ci-dessus, mais votre convention de dénomination peut être extrêmement différente. Vous devrez utiliser votre propre jugement et faire très attention à cela. Vous ne voulez pas formater accidentellement votre disque OS. Par exemple, la partition SDA1 a clairement le système de fichiers racine comme point de montage, il n'est donc pas sage de le toucher. Si vous utilisez de nouveaux disques, il est probable qu'ils n'auront pas de point de montage ou de partitionnement.
Une fois que vous connaissez le nom de vos appareils, nous utiliserons la commande zpool Create pour formater quelques-uns de ces appareils de bloc (appelés SDB et SDC) dans un zpool avec un seul VDEV composé de deux disques miroir.
serveur $ sudo zpool Créer un miroir de char sdb sdcÀ l'avenir, vous pouvez ajouter des disques dans des ensembles de deux (appelés VDEV) pour augmenter la taille de ce zpool, les nouveaux disques apparaîtront comme miroir-1, miroir-2 etc. Vous n'avez pas besoin de créer votre Zpool comme je l'ai fait, vous pouvez utiliser la miroir avec plus de disques, vous pouvez utiliser la bande sans redondance mais de meilleures performances, ou vous pouvez utiliser Raidz. À la fin de la journée, ce qui compte, c'est que nous avons créé un Zpool nommé Tank. Sur lequel les NF partagés vivront. Créons un ensemble de données qui sera partagé. Assurez-vous d'abord que la piscine, nommée «Tank», est montée. Le point de montage par défaut est «/ tank» .
serveur $ sudo zfsDéfinition des autorisations
Lors du partage d'un répertoire NFS, le superutilisateur du système client n'a accès à rien sur la part. Alors que le superutilisateur côté client est capable de faire quoi que ce soit sur la machine client, le support NFS ne fait techniquement pas partie de la machine client. Ainsi, autoriser les opérations au nom du superutilisateur côté client cartographié en tant que superutilisateur côté serveur pourrait entraîner des problèmes de sécurité. Par défaut, NFS mappe les actions des superutilisatrices côté client à personne: Nogroup User and User Group. Si vous avez l'intention d'accès aux fichiers montés comme racine, alors l'ensemble de données sur notre serveur NFS devrait également avoir les mêmes autorisations,
serveur $ sudo chown Nobody: nogroup / tank / nfshareLe serveur NFS exécutera n'importe quelle action par la racine côté client en tant qu'utilisateur personne, donc l'autorisation ci-dessus permettra aux opérations de passer par.
Si vous utilisez un nom d'utilisateur différent (régulier), il est souvent pratique d'avoir un utilisateur avec le même nom d'utilisateur exact des deux côtés.
Création de partage NFS
Une fois que vous avez créé Zpool, vous devez installer le package NFS Server à partir de votre gestionnaire de packages:
serveur $ sudo apt installer nfs-kernel-serverTraditionnellement, le serveur NFS utilise / etc. Cependant, nous utiliserons la fonctionnalité intégrée de ZFS pour obtenir la même.
Utilisez simplement la commande:
serveur $ sudo zfs définit sharenfs = ”on” / tank / nfsharePlus tôt, j'ai fait allusion à ne donner que certains IPS l'accès. Vous pouvez le faire comme suit:
serveur $ sudo zfs set sharenfs = "rw = @ 192.168.0.0/24 "Tank / NFSShareLe «RW» représente les autorisations en lecture-écriture, et qui est suivie de la gamme d'IPS. Assurez-vous que le port numéro 111 et 2049 est ouvert sur votre pare-feu. Si vous utilisez UFW, vous pouvez vérifier cela en fonctionnant:
État du serveur $ ufwNotez une note de l'IP de votre serveur sur le LAN, en utilisant la commande ifconfig ou ip addr. Appelons-le serveur.IP
Montage côté client
Une fois le partage créé, vous pouvez le monter sur votre machine client, en exécutant la commande:
Client $ Mount -T NFS Server.ip: / tank / nfshare / mntCela montera le dossier NFS Partager sur / mnt, mais vous pourriez avoir tout aussi facilement choisi n'importe quel autre point de montage de votre choix.
Le partage de fichiers est probablement l'aspect le plus important de l'administration du système. Cela améliore votre compréhension de la pile de stockage, de la mise en réseau, des autorisations et des privilèges des utilisateurs. Vous réaliserez rapidement l'importance du principe des moindres privilèges - c'est-à-dire, ne donnez que l'accès le plus à l'accès possible à son travail.
Vous découvrirez également l'interopérabilité entre différents systèmes d'exploitation. Les utilisateurs de Windows peuvent accéder aux fichiers NFS, il en va de même pour les utilisateurs Mac et BSD. Vous ne pouvez pas vous limiter à un seul système d'exploitation lorsque vous traitez avec un réseau de machines ayant toutes ses propres conventions et vernaculaires. Alors allez-y et expérimentez votre partage NFS. J'espère que tu as appris quelque chose.