OpenZFS SAPERTED NFS Server Part 1 - Création d'un serveur

OpenZFS SAPERTED NFS Server Part 1 - Création d'un serveur
Si vous connaissez OpenZFS, vous savez tout sur son interface riche en fonctionnalités, son architecture flexible, ses sommes de contrôle fiables et ses mécanismes de vache. Peut-être que vous le voulez aussi sur votre bureau, mais vous ne voulez pas reformater vos disques et partitions existants. Peut-être que vous utilisez Windows 10, qui ne prend pas en charge OpenZFS. Eh bien, dans cet article de blog, je vais discuter de la façon dont vous pouvez créer un système de fichiers réseau, ou NFS, exécuté dans un serveur séparé. Cet appareil NFS peut ensuite être monté sur votre poste de travail de bureau. De cette façon, vous pouvez avoir la fiabilité et la robustesse de ZFS avec la convivialité de votre système d'exploitation de bureau préféré, car NFS est disponible sur toutes les plateformes.

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

1. Création de Zpool

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-linux

Ensuite, nous énumérons tous les appareils de bloc disponibles, pour voir les nouveaux disques (et partitions) en attente d'être formatés avec ZFS.

$ lsblk
Nom Maj: Min RM Taille RO Type Mountpoint
Loop0 7: 0 0 89.5m 1 boucle / snap / core / 6130
Loop1 7: 1 0 86.9m 1 boucle / snap / core / 4917
Loop2 7: 2 0 91.1m 1 boucle / snap / core / 6259
SDA 8: 0 0 50g 0 disque
├ssda1 8: 1 0 1m 0 partie
└─Sda2 8: 2 0 50g 0 partie /
SDB 8:16 0 931G 0 Disque
SDC 8:32 0 931G 0 Disque
SR0 11: 0 1 1024M 0 ROM

Un 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
serveur $ sudo zpool tank
Réservoir de statut Zpool
piscine: réservoir
État: en ligne
Numérisation: aucune demandée
config:
Nom State Read Write Cksum
Tank Online 0 0 0
miroir-0 en ligne 0 0 0
sdb en ligne 0 0 0
SDC en ligne 0 0 0
Erreurs: aucune erreur de données connue

À 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 zfs
serveur $ sudo zfs Créer un réservoir / nfshare #create un nouvel ensemble de données au-dessus de la piscine

Dé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 / nfshare

Le 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-server

Traditionnellement, 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 / nfshare

Plus 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 / NFSShare

Le «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 $ ufw

Notez 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 / mnt

Cela 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.

Conclusion

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.