Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
elearning:workbooks:redhat:rh134:l109 [2024/09/26 13:36] – created adminelearning:workbooks:redhat:rh134:l109 [2024/10/24 03:59] (Version actuelle) – created admin
Ligne 1: Ligne 1:
-~~PDF:LANDSCAPE~~ +======RH13410 Validation des Acquis======
- +
-Dernière mise-à-jour : ~~LASTMOD~~ +
- +
-======LDF514 Gestion du Serveur NFS====== +
- +
-=====Contenu du Module===== +
- +
-  * **LDF514 - Gestion du Serveur NFS** +
-    * Présentation +
-      * Les Services et Processus du Serveur NFSv3 +
-        * Les Services RPC +
-      * Options d'un Partage NFS +
-      * Commandes de Base +
-    * Installation +
-    * Mise en Place +
-      * Configuration du Serveur +
-      * Configuration du Client +
-    * Surveillance du Serveur +
-      * La Commande rpcinfo +
-      * La Commande nfsstat +
- +
-=====Présentation===== +
- +
-Quand on parle de NFS, on parle d'**exportation** d'un répertoire sur le serveur afin que celui-ci puisse être vu par des clients sur le réseau. Ces clients peuvent ensuite monter le répertoire et l'utiliser comme si celui-ci faisait partie de son propre filesystem. +
- +
-Le Network File System (NFS) est le protocole de partage de fichiers historique sur des systèmes Unix. Lors de l'introduction de Samba, NFS a vu sa popularité diminuée, essentiellement parce que la connexion est non-sécurisée : +
- +
-  * le partage ainsi que ses caractéristiques sont configurés par rapport à l'adresse IP du client, or l'IP Spoofing est de plus en plus répandu, +
-  * aucun mot de passe n'est demandé lors de la connexion d'un utilisateur à une ressource car le serveur NFS présume que l'utilisateur //jean// distant est le même utilisateur du compte //jean// sur le serveur NFS. +
- +
-Cependant l'arrivée sur le marché de serveurs NAS domestiques ainsi que l'utilisation de la virtualisation dans le milieu professionnel fait que NFS connait un regain d'intérêt en tant que stockage mutualisé raid, simple à mettre en œuvre. +
- +
-Il existe actuellement 3 versions de NFS : +
- +
-^ Version ^ Protocole Utilisé ^ Dépendance ^ +
-| **NFSv2** | TCP et UDP | portmap | +
-| **NFSv3** | TCP et UDP | portmap | +
-| **NFSv4** | TCP | Aucune - les fonctions de portmap sont incluses dans NFSv4 | +
- +
-La version utilisée par défaut sous CentOS/Redhat est **NFSv3**. +
- +
-====Les Services et Processus du Serveur NFSv3==== +
- +
-La version NFSv3 utilise les services suivants : +
- +
-^ Services ^ Fonction ^ +
-| **nfs** | Démarre le service NFS ainsi que les processus RPC pour recevoir et traiter les demandes des clients | +
-| **nfslock** | Démarre les processus RPC qui permettent aux clients de verrouiller les fichiers sur le serveur +
-| **portmap** | Gestion des réservations des ports pour les services RPC locaux afin que les services RPC distants puissent se connecter | +
- +
-===Les Services RPC=== +
- +
-Les services RPC ( //Remote Procedure Calls// ou appel de procédures distantes ) ont été inventé par SUN Microsystem pour faciliter le travail des développeurs  de pous des échanges entre mchines distantes. Les RPC s'appuient sur des numéros de programmes. +
- +
-Lorsque le client veut faire une requête à un service RPC, il contacte en premier lieu le service **rpcbind** qui assigne un numéro de port au délà du numéro **32768** à un numéro de programme RPC. +
- +
-====Options d'un Partage NFS==== +
- +
-Certaines options, appliquées à un partage, modifient le comportement du serveur NFS pour le partage concerné lors de son démarrage : +
- +
-^ Option ^ Comportement ^ +
-| **ro** | Accès en lecture seule | +
-| **rw** | Accès en lecture / écriture | +
-| **sync** | Ecriture synchrone ( écriture immédiate sur disque ) | +
-| **async** | Ecriture asynchrone ( écriture sur disque en utilisant une cache ) | +
-| **root_squash** | Root perd ses prérogatives sur le partage concerné | +
-| **no_root_squash** | Root garde ses prérogatives sur le partage concerné | +
-| **no_lock** | Pas de verrous sur les fichiers accédés | +
-| **all_squash** | Force la mapping de tous les utilisateurs vers l'utilisateur **nobody** | +
-| **anonuid** | Fixe l'UID de l'utilisateur anonyme | +
-| **anongid** | Fixe le GID de l'utilisateur anonyme | +
- +
-<WRAP center round important> +
-**Important** : Si plusieurs options sont spécifiées, celles-ci doivent être séparées par des virgules. +
-</WRAP> +
- +
-====Commandes de Base==== +
- +
-Plusieurs commandes permettent de gérer et de s'informer sur l'activité du serveur NFS : +
- +
-^ Commande ^ Comportement ^ +
-| **exportfs** | Affiche les partages actifs sur le serveur courant | +
-| **nfsstat** | Affiche les statistiques de l'activité NFS | +
-| **rpcinfo** | Affiche les démons gérés en effectuant une requête RPC sur le serveur courant | +
-| **showmount** | Affiche les partages actifs sur un serveur distant | +
-| **mount** | Permet de monter un partage distant sur un répertoire local | +
- +
-=====Installation===== +
- +
-Installez le serveur et le client NFS en utilisant apt-get : +
- +
-<code> +
-root@debian8:~# apt-get install nfs-kernel-server nfs-common +
-Reading package lists... Done +
-Building dependency tree        +
-Reading state information... Done +
-nfs-common is already the newest version. +
-The following NEW packages will be installed: +
-  nfs-kernel-server +
-0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +
-Need to get 115 kB of archives. +
-After this operation, 515 kB of additional disk space will be used. +
-Do you want to continue? [Y/n] y +
-Get:1 http://ftp.fr.debian.org/debian/ jessie/main nfs-kernel-server amd64 1:1.2.8-9 [115 kB] +
-Fetched 115 kB in 0s (318 kB/s)            +
-Selecting previously unselected package nfs-kernel-server. +
-(Reading database ... 82450 files and directories currently installed.) +
-Preparing to unpack .../nfs-kernel-server_1%3a1.2.8-9_amd64.deb ... +
-Unpacking nfs-kernel-server (1:1.2.8-9) ... +
-Processing triggers for man-db (2.7.0.2-5) ... +
-Processing triggers for systemd (215-17+deb8u4) ... +
-Setting up nfs-kernel-server (1:1.2.8-9) ... +
- +
-Creating config file /etc/exports with new version +
- +
-Creating config file /etc/default/nfs-kernel-server with new version +
-Processing triggers for systemd (215-17+deb8u4) ... +
-</code> +
- +
-=====Mise en Place===== +
- +
-====Configuration du Serveur==== +
- +
-<WRAP center round important> +
-**Important** : Arrêtez votre VM. Dans la fenêtre de Oracle VM VirtualBox, cliquez sur **Fichier > Paramètres > Réseau** et créez un réseau NAT appelé **NatNetwork**. Dans les paramètres de votre VM, cliquez sur **Réseau** et configurez la Carte 2 en Réseau NAT dans le réseau NatNetwork. Démarrez votre VM. +
-</WRAP> +
- +
-Configurez votre interface réseau #2 (eth1) : +
- +
-<code> +
-root@debian8:~# nmcli connection add con-name ip_fixe ifname eth1 type ethernet ip4 10.0.2.16/24 gw4 10.0.2.2 +
-Connection 'ip_fixe' (d61c409c-d334-44db-a2fd-a7456562e63a) successfully added. +
-root@debian8:~# nmcli connection mod ip_fixe ipv4.dns 8.8.8.8 +
-root@debian8:~# nmcli connection up ip_fixe +
-Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) +
-root@debian8:~# nmcli c show +
-NAME             UUID                                  TYPE            DEVICE  +
-eth1             e9fe77dc-2750-47ba-a3ef-50a8c5c8e22a  802-3-ethernet  --      +
-eth0             02dd6b3d-097b-4243-8f86-eeb71ff27736  802-3-ethernet  eth0    +
-Ifupdown (eth0)  681b428f-beaf-8932-dce4-687ed5bae28e  802-3-ethernet  --      +
-ip_fixe          d61c409c-d334-44db-a2fd-a7456562e63a  802-3-ethernet  eth1    +
-root@debian8:~# systemctl restart NetworkManager.service +
-root@debian8:~# nmcli c show +
-NAME             UUID                                  TYPE            DEVICE  +
-eth0             e7181c1d-73c3-4c7e-89f2-7902c130ec9e  802-3-ethernet  eth0    +
-ip_fixe          d61c409c-d334-44db-a2fd-a7456562e63a  802-3-ethernet  --      +
-Ifupdown (eth0)  681b428f-beaf-8932-dce4-687ed5bae28e  802-3-ethernet  --      +
-eth1             d33363de-a915-4030-8cea-0d64997ae669  802-3-ethernet  eth1    +
-</code> +
- +
-Ajoutez une autre adresse IP pour le NFS : +
- +
-<code> +
-root@debian8:~# nmcli connection mod ip_fixe +ipv4.addresses 192.168.1.2/24 +
-</code> +
- +
-Continuez maintenant par la mise en place du service **nfs** : +
- +
-<code> +
-root@debian8:~# systemctl enable nfs-kernel-server +
-Synchronizing state for nfs-kernel-server.service with sysvinit using update-rc.d... +
-Executing /usr/sbin/update-rc.d nfs-kernel-server defaults +
-Executing /usr/sbin/update-rc.d nfs-kernel-server enable +
-</code> +
- +
-La mise en place d'un partage ponctuel se fait en utilisant la commande **exportfs** en indiquant en argument le répertoire sous la forme de //adresse_ip_du_serveur:chemin_du_partage// :  +
- +
-<code> +
-root@debian8:~# exportfs +
-root@debian8:~# exportfs 192.168.1.1:/home/trainee +
-root@debian8:~# exportfs +
-/home/trainee 192.168.1.1 +
-</code> +
- +
-Afin de mettre en place un ou des partages **permanents**, il est nécessaire d'éditer le fichier **/etc/exports** : +
- +
-<code> +
-root@debian8:~# vi /etc/exports +
-root@debian8:~# cat /etc/exports +
-# /etc/exports: the access control list for filesystems which may be exported +
-# to NFS clients.  See exports(5). +
-+
-# Example for NFSv2 and NFSv3: +
-# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) +
-+
-# Example for NFSv4: +
-# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) +
-# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check) +
-+
-/home/trainee 192.168.1.1 +
-/tmp *(fsid=0) +
-</code> +
- +
-<WRAP center round important> +
-**Important** : Dans ce cas, nous avons partagé le répertoire **/home/trainee** pour la seule adresse IP 192.168.1.1. +
-</WRAP> +
- +
-Démarrez maintenant le service nfs afin que le fichier **/etc/exports** soit re-lu : +
- +
-<code> +
-root@debian8:~# systemctl reload nfs-kernel-server +
-root@debian8:~# systemctl start nfs-kernel-server +
-root@debian8:~# systemctl status nfs-kernel-server +
-● nfs-kernel-server.service - LSB: Kernel NFS server support +
-   Loaded: loaded (/etc/init.d/nfs-kernel-server) +
-   Active: active (exited) since Thu 2018-03-22 10:04:01 GMT; 22min ago +
-  Process: 10475 ExecReload=/etc/init.d/nfs-kernel-server reload (code=exited, status=0/SUCCESS) +
- +
-Mar 22 10:04:01 debian8 nfs-kernel-server[506]: Not starting NFS kernel daemon: no exports. ... (warning). +
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]: Re-exporting directories for NFS kernel daemon...exportfs: No options for /home/t...warning +
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]: exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specifi...ainee"+
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]: Assuming default behaviour ('no_subtree_check'). +
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]: NOTE: this default has changed since nfs-utils version 1.0.x +
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]: exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specifi...:/tmp"+
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]: Assuming default behaviour ('no_subtree_check'). +
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]: NOTE: this default has changed since nfs-utils version 1.0.x +
-Mar 22 10:25:59 debian8 nfs-kernel-server[10475]:+
-Hint: Some lines were ellipsized, use -l to show in full. +
-</code> +
- +
-Puisque aucune option ne soit spécifiée pour les montages, ceux-ci ont été exportés avec des option par défaut. En utilisant l'option **-v** de la commande **exportfs**, il est possible de consulter ces options : +
- +
-<code> +
-root@debian8:~# exportfs -v +
-/home/trainee 192.168.1.1(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,root_squash,no_all_squash) +
-/tmp          <world>(ro,wdelay,root_squash,no_subtree_check,fsid=0,sec=sys,ro,root_squash,no_all_squash) +
-</code> +
- +
-====Configuration du Client==== +
- +
-<WRAP center round important> +
-**Important** : Arrêtez votre VM. Créez une clône de votre VM. Démarrez la VM clonée. +
-</WRAP> +
- +
-Re-configurez ensuite l'interface réseau de votre VM Client : +
- +
-<code> +
-root@debian8:~# nmcli connection del ip_fixe +
-root@debian8:~# nmcli connection show ip_fixe +
-Error: ip_fixe - no such connection profile. +
-root@debian8:~# nmcli connection add con-name ip_fixe ifname eth1 type ethernet ip4 10.0.2.17/24 gw4 10.0.2.2 +
-Connection 'ip_fixe' (5f81cfd6-9ccb-4828-a9ff-aa610719de31) successfully added. +
-root@debian8:~# nmcli connection mod ip_fixe ipv4.dns 8.8.8.8 +
-root@debian8:~# nmcli connection mod ip_fixe +ipv4.addresses 192.168.1.1/24 +
-root@debian8:~# nmcli connection up ip_fixe  +
-Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3) +
-root@debian8:~# systemctl restart NetworkManager.service +
-</code> +
- +
-<WRAP center round important > +
-**Important** : Démarrez la VM d'origine. +
-</WRAP> +
- +
-A partir de votre client, consultez les répertoire exportés du serveur : +
- +
-<code> +
-root@debian8:~# showmount --exports 192.168.1.2 +
-Export list for 192.168.1.2: +
-/tmp          * +
-/home/trainee 192.168.1.1 +
-</code> +
- +
-Créez maintenant le répertoire **/nfs** dans le client et montez le partage **192.168.1.2:/home/trainee** : +
- +
-<code> +
-root@debian8:~# mkdir /nfs +
-root@debian8:~# mount -t nfs 192.168.1.2:/home/trainee /nfs +
-</code> +
- +
-=====Surveillance du Serveur===== +
- +
-====La Commande rpcinfo==== +
- +
-La commande **rpcinfo** permet de faire une requête RPC sur le serveur et de voir les démons gérés : +
- +
-<code> +
-root@debian8:/# rpcinfo +
-   program version netid     address                service    owner +
-    100000    4    tcp6      ::.0.111               portmapper superuser +
-    100000    3    tcp6      ::.0.111               portmapper superuser +
-    100000    4    udp6      ::.0.111               portmapper superuser +
-    100000    3    udp6      ::.0.111               portmapper superuser +
-    100000    4    tcp       0.0.0.0.0.111          portmapper superuser +
-    100000    3    tcp       0.0.0.0.0.111          portmapper superuser +
-    100000    2    tcp       0.0.0.0.0.111          portmapper superuser +
-    100000    4    udp       0.0.0.0.0.111          portmapper superuser +
-    100000    3    udp       0.0.0.0.0.111          portmapper superuser +
-    100000    2    udp       0.0.0.0.0.111          portmapper superuser +
-    100000    4    local     /run/rpcbind.sock      portmapper superuser +
-    100000    3    local     /run/rpcbind.sock      portmapper superuser +
-    100024    1    udp       0.0.0.0.203.188        status     107 +
-    100024    1    tcp       0.0.0.0.148.150        status     107 +
-    100024    1    udp6      ::.169.248             status     107 +
-    100024    1    tcp6      ::.161.44              status     107 +
-    100003    2    tcp       0.0.0.0.8.1            nfs        superuser +
-    100003    3    tcp       0.0.0.0.8.1            nfs        superuser +
-    100003    4    tcp       0.0.0.0.8.1            nfs        superuser +
-    100227    2    tcp       0.0.0.0.8.1            -          superuser +
-    100227    3    tcp       0.0.0.0.8.1            -          superuser +
-    100003    2    udp       0.0.0.0.8.1            nfs        superuser +
-    100003    3    udp       0.0.0.0.8.1            nfs        superuser +
-    100003    4    udp       0.0.0.0.8.1            nfs        superuser +
-    100227    2    udp       0.0.0.0.8.1            -          superuser +
-    100227    3    udp       0.0.0.0.8.1            -          superuser +
-    100003    2    tcp6      ::.8.1                 nfs        superuser +
-    100003    3    tcp6      ::.8.1                 nfs        superuser +
-    100003    4    tcp6      ::.8.1                 nfs        superuser +
-    100227    2    tcp6      ::.8.1                          superuser +
-    100227    3    tcp6      ::.8.1                          superuser +
-    100003    2    udp6      ::.8.1                 nfs        superuser +
-    100003    3    udp6      ::.8.1                 nfs        superuser +
-    100003    4    udp6      ::.8.1                 nfs        superuser +
-    100227    2    udp6      ::.8.1                          superuser +
-    100227    3    udp6      ::.8.1                          superuser +
-    100021    1    udp       0.0.0.0.209.119        nlockmgr   superuser +
-    100021    3    udp       0.0.0.0.209.119        nlockmgr   superuser +
-    100021    4    udp       0.0.0.0.209.119        nlockmgr   superuser +
-    100021    1    tcp       0.0.0.0.197.239        nlockmgr   superuser +
-    100021    3    tcp       0.0.0.0.197.239        nlockmgr   superuser +
-    100021    4    tcp       0.0.0.0.197.239        nlockmgr   superuser +
-    100021    1    udp6      ::.207.89              nlockmgr   superuser +
-    100021    3    udp6      ::.207.89              nlockmgr   superuser +
-    100021    4    udp6      ::.207.89              nlockmgr   superuser +
-    100021    1    tcp6      ::.237.162             nlockmgr   superuser +
-    100021    3    tcp6      ::.237.162             nlockmgr   superuser +
-    100021    4    tcp6      ::.237.162             nlockmgr   superuser +
-    100005    1    udp       0.0.0.0.227.242        mountd     superuser +
-    100005    1    tcp       0.0.0.0.225.144        mountd     superuser +
-    100005    1    udp6      ::.154.158             mountd     superuser +
-    100005    1    tcp6      ::.215.191             mountd     superuser +
-    100005    2    udp       0.0.0.0.185.106        mountd     superuser +
-    100005    2    tcp       0.0.0.0.212.122        mountd     superuser +
-    100005    2    udp6      ::.136.22              mountd     superuser +
-    100005    2    tcp6      ::.193.198             mountd     superuser +
-    100005    3    udp       0.0.0.0.133.232        mountd     superuser +
-    100005    3    tcp       0.0.0.0.232.4          mountd     superuser +
-    100005    3    udp6      ::.193.195             mountd     superuser +
-    100005    3    tcp6      ::.198.65              mountd     superuser +
-</code> +
- +
-====La Commande nfsstat==== +
- +
-La Commande **nfsstat** permet de vérifier l'activité sur le serveur NFS : +
- +
-<code> +
-root@debian8:/# nfsstat +
-Server rpc stats: +
-calls      badcalls   badclnt    badauth    xdrcall +
-0          0          0          0          0        +
- +
-Client rpc stats: +
-calls      retrans    authrefrsh +
-77                  77       +
- +
-Client nfs v3: +
-null         getattr      setattr      lookup       access       readlink      +
-0         0% 10       27% 0         0% 2         5% 8        22% 0         0%  +
-read         write        create       mkdir        symlink      mknod         +
-0         0% 0         0% 1         2% 0         0% 0         0% 0         0%  +
-remove       rmdir        rename       link         readdir      readdirplus   +
-0         0% 0         0% 0         0% 0         0% 0         0% 6        16%  +
-fsstat       fsinfo       pathconf     commit        +
-0         0% 6        16% 3         8% 0         0%  +
- +
-Client nfs v4: +
-null         read         write        commit       open         open_conf     +
-0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  +
-open_noat    open_dgrd    close        setattr      fsinfo       renew         +
-0         0% 0         0% 0         0% 0         0% 6        16% 0         0%  +
-setclntid    confirm      lock         lockt        locku        access        +
-3         8% 3         8% 0         0% 0         0% 0         0% 3         8%  +
-getattr      lookup       lookup_root  remove       rename       link          +
-3         8% 3         8% 3         8% 0         0% 0         0% 0         0%  +
-symlink      create       pathconf     statfs       readlink     readdir       +
-0         0% 0         0% 3         8% 0         0% 0         0% 0         0%  +
-server_caps  delegreturn  getacl       setacl       fs_locations rel_lkowner   +
-9        25% 0         0% 0         0% 0         0% 0         0% 0         0%  +
-secinfo      exchange_id  create_ses   destroy_ses  sequence     get_lease_t   +
-0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  +
-reclaim_comp layoutget    getdevinfo   layoutcommit layoutreturn getdevlist    +
-0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  +
-(null)        +
-0         0%  +
-</code> +
- +
------ +
-Copyright © 2020 Hugh Norris+
Menu