Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:centos:6:avance:l105 [2021/12/29 09:39] adminelearning:workbooks:centos:6:avance:l105 [2023/02/15 15:55] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2020.01**+Version : **2022.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======LCF308 Validation de la Formation======+======LCF304 Gestion du Partage des Fichiers======
  
 =====Contenu du Module===== =====Contenu du Module=====
  
-  * **LCF308 Validation de la Formation**+  * **LCF304 Gestion du Partage des Fichiers**
     * Contenu du Module     * Contenu du Module
-    * Pour Aller Plus Loin +    * Gestion du Serveur NFS 
-      * Support de Cours +      * Présentation 
-      * L'Infrastructure Hors Formation +        * Les Services et Processus du Serveur NFSv3 
-        * Matériel +          * Les Services RPC 
-        * Logiciels +        * Options d'un Partage NFS 
-        * Machine Virtuelle +        * Commandes de Base 
-    * Rappel du Programme de la Formation +      * Installation 
-      * Jour #1 +      * LAB #1 Mise en Place du Serveur NFS 
-      * Jour #2 +        * Configuration du Serveur 
-      * Jour #3 +        * Configuration du Client 
-    Remettre en Etat l'Infrastructure +      * Surveillance du Serveur 
-    Évaluation de la Formation +        * La Commande rpcinfo 
-    Remerciements+        * La Commande nfsstat 
 +    * Gestion du Serveur CIFS Samba 
 +      * Les Réseaux Microsoft 
 +        * Types de Réseaux Microsoft 
 +        * Types de Clients Windows 
 +      * Présentation de Samba 
 +        * Daemons Samba 
 +        * Commandes Samba 
 +      * Installation de Samba 
 +        Configuration de base 
 +        Démarrage manuel de Samba 
 +        * Configuration de Samba 
 +          * Gestion des comptes et des groupes 
 +          * Création du fichier smbpasswd 
 +          * Comprendre la structure du fichier de configuration smb.conf 
 +      LAB #2 - Tester Samba en tant que Serveur de Fichiers
  
-=====Pour Aller Plus Loin=====+=====Gestion du Serveur NFS=====
  
-====Support de Cours====+====Présentation====
  
-L'accès au supports de cours ainsi que les LABS et les validations des acquis se fait grâce à un abonnement annuel par stagiaire à une plateforme de cours sur Internet.+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.
  
-L'utilisation de cette plateforme permet :+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 :
  
-  * de mesurer le niveau du stagiaire avant la formation et celui atteint en fin de formation grâce aux tests de validations des acquis+  * 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
-  * de suivre du travail de chaque participant en termes de temps passé dans chaque module grâce à un reporting détaillé.+  * 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.
  
-L'abonnement permet aux stagiaires :+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.
  
-  * de télécharger des supports de cours et des LABS au format PDF le dernier jour de la formation, +Il existe actuellement 3 versions de NFS :
-  * de refaire les LABS en mode autonome en cas de missions décalées en relation avec le contenu de la formation initiale, +
-  * de rester en contact avec le formateur en cas de problèmes en production liés au contenu du cours, +
-  * de consulter les mises à jour du contenu des supports de cours pendant la période de l'abonnement, +
-  * d'échanger avec les autres participants de la session ainsi qu'avec les anciens stagiaires.+
  
-====L'Infrastructure Hors Formation====+^ 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 |
  
-===Matériel===+La version utilisée par défaut sous CentOS/Redhat est **NFSv3**.
  
-  * Un poste 64 bits (MacOS, Linux, Windows(tm) ou Solaris(tm)), +===Les Services et Processus du Serveur NFSv3===
-  * Dans le cas de Windows(tm), **seulement** la version 7 ou 10 avec Hyper-V **désinstallé**, +
-  * Le mot de passe du compte administrateur du système, +
-  * Clavier AZERTY FR ou QWERTY US, +
-  * 8 Go de RAM minimum, +
-  * Processeur 4 cœurs minimum, +
-  * 8 Go d'espace disque disponible.+
  
-===Logiciels===+La version NFSv3 utilise les services suivants :
  
-  * Oracle VirtualBox v 6.0 ou plus (MacOS, Linux, Windows(tm) ou Solaris(tm)), +^ Services ^ Fonction ^ 
-  Si Windows(tm) - Putty et WinSCP, +**nfs** | Démarre le service NFS ainsi que les processus RPC pour recevoir et traiter les demandes des clients | 
-  * Navigateur Web Chrome ou Firefox.+| **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 |
  
-===Machine Virtuelle===+==Les Services RPC==
  
-A télécharger : **[[https://my-short.link/JQn9qhM|CentOs_7]]**.+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.
  
-=====Rappel du Programme de la Formation=====+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.
  
-====Jour #1 - 7 heures==== 
  
-  * **LCF300 - CentOS Linux (RHEL) - System Administrator** - 1 heure. +===Options d'un Partage NFS===
-    * Pré-requis +
-      * Matériel +
-      * Logiciels +
-      * Internet +
-    * Utilisation de l'Infrastructure +
-      * Connexion au Serveur Cloud +
-        * Linux, MacOS et Windows 10 muni du client ssh +
-        * Windows 7 et Windows 10 sans client ssh +
-      * Démarrage de la Machine Virtuelle +
-      * Connexion à la Machine Virtuelle +
-    * Programme de la Formation +
-    * Évaluation des Compétences+
  
-  * **LCF301 - Gestion des Paramètres et les Ressources du Matériel**  - 3 heures. +Certaines options, appliquées à un partage, modifient le comportement du serveur NFS pour le partage concerné lors de son démarrage :
-    * Fichiers Spéciaux  +
-    * Commandes +
-      * La Commande lspci +
-      * La Commande lsusb +
-      * La Commande dmidecode +
-    * Répertoire /proc +
-      * Répertoires +
-        * ide/scsi +
-        * acpi +
-        * bus +
-        * net +
-        * sys +
-          * La commande sysctl +
-            * Options de la commande +
-      * Fichiers +
-        * Processeur +
-        * Interruptions système +
-        * Canaux DMA +
-        * Plages d'entrée/sortie +
-        * Périphériques +
-        * Modules +
-        * Statistiques de l'utilisation des disques +
-        * Partitions +
-        * Espaces de pagination +
-        * Statistiques d'utilisation du processeur +
-        * Statistiques d'utilisation de la mémoire +
-        * Version du noyau +
-      * Interprétation des informations dans /proc +
-        * Commandes +
-          * free +
-          * uptime ou w  +
-          * iostat +
-          * vmstat +
-          * mpstat +
-          * sar +
-          * Utilisation des commandes en production +
-            * Identifier un système limité par le processeur +
-            * Identifier un système ayant un problème de mémoire +
-            * Identifier un système ayant un problème d'E/+
-    * Modules usb +
-    * udev +
-      * La commande udevadm +
-        * Les options de la commande +
-    * Système de fichiers /sys +
-    * Limiter les Ressources +
-      * ulimit +
-      * Groupes de Contrôle +
-        * LAB #1 - Travailler avec les cgroups sous RHEL/CentOS 7+
  
-  * **LCF302 - Gestion Avancée des Disques - Raid Logiciel** - 3 heures. +^ Option ^ Comportement ^ 
-    Concepts RAID +**ro** | Accès en lecture seule | 
-      Disques en miroir +| **rw** | Accès en lecture / écriture | 
-      Bandes de données +**sync** | Ecriture synchrone ( écriture immédiate sur disque ) | 
-    Types de RAID +**async** | Ecriture asynchrone ( écriture sur disque en utilisant une cache ) | 
-      RAID 0 - Concaténation +**root_squash** | Root perd ses prérogatives sur le partage concerné | 
-      RAID 0 - Striping +| **no_root_squash*| Root garde ses prérogatives sur le partage concerné | 
-      RAID 1 - Miroir +**no_lock** | Pas de verrous sur les fichiers accédés | 
-      RAID 1+0 - Striping en Miroir +**all_squash** | Force la mapping de tous les utilisateurs vers l'utilisateur **nobody** | 
-      RAID 2 - Miroir avec Contrôle d'Erreurs +**anonuid** | Fixe l'UID de l'utilisateur anonyme | 
-      RAID 3 et 4 - Striping avec Parité +**anongid** | Fixe le GID de l'utilisateur anonyme |
-      RAID 5 - Striping avec Parité Distribuée +
-      Au délà de RAID 5 +
-    RAID Logiciel sous RHEL +
-      Préparation du disque +
-      Partitionnement +
-      Mise en Place du RAID 5 Logiciel+
  
-====Jour #2 7 heures====+<WRAP center round important> 
 +**Important** : Si plusieurs options sont spécifiées, celles-ci doivent être séparées par des virgules. 
 +</WRAP>
  
-  * **LCF303 - Gestion du Noyau et des Quotas** - 3 heures. +===Commandes de Base===
-    * Rôle du noyau +
-    * Compilation et installation du noyau et des modules +
-      * Déplacer /home +
-      * Créer un Nouveau Noyau +
-      * Préparer l'Arborescence Source du Noyau +
-      * Paramétrage du noyau +
-      * Compiler le Noyau +
-      * Installer le Nouveau Noyau +
-    * Gestion des Quotas +
-      * La Commande quotacheck +
-      * La Commande edquota +
-      * La Commande quotaon +
-      * La Commande repquota +
-      * La Commande quota +
-      * La Commande warnquota+
  
-  * **LCF304 - Gestion du Système X et de l'Accès Universel** - 2 heures. +Plusieurs commandes permettent de gérer et de s'informer sur l'activité du serveur NFS :
-    * X Window System +
-      * Configuration +
-    * Gestionnaire de Fenêtres +
-    * Toolkits +
-    * Freedesktop +
-    * Display Manager +
-      * XDM, GDM et KDM +
-      * LightDM +
-    * X.orgX11 +
-      * Présentation +
-      * Démarrage et Arrêt +
-      * Utilisation +
-      * Configuration +
-        * La Section ServerFlags +
-        * La Section ServerLayout +
-        * La Section Files +
-        * La Section Modules +
-        * La Section InputDevice +
-        * La Section Monitor +
-        * La Section Device +
-        * La Section Screen +
-      * La Commande xwininfo +
-      * La Commande xdpyinfo +
-    * L'Accès Universel +
-      * Le Clavier et la Souris +
-      * Claviers Visuels +
-      * L'Ecran +
-      * Autres Technologies+
  
-    * **LCF305 - La Langage SQL** - 2 heures. +^ Commande ^ Comportement ^ 
-      SQL +**exportfs** | Affiche les partages actifs sur le serveur courant | 
-        Chaînes de caractères +**nfsstat** | Affiche les statistiques de l'activité NFS | 
-        Nombres +**rpcinfo** | Affiche les démons gérés en effectuant une requête RPC sur le serveur courant | 
-          Nombres Entiers +**showmount** | Affiche les partages actifs sur un serveur distant | 
-          Nombres Décimaux +**mount** | Permet de monter un partage distant sur un répertoire local |
-          Nombres Négatifs +
-        Valeurs NULL +
-        Noms de Fichiers +
-        Variables Utilisateurs +
-        Commentaires +
-        Commandes +
-          SELECT +
-          UPDATE +
-          DELETE FROM +
-          DROP TABLE +
-          INSERT +
-          ALTER +
-          MATCH +
-        Opérateurs +
-          Mathématiques +
-          * Logiques +
-          * Comparaison +
-        * Fonctions +
-          * Mathématiques +
-          * Chaînes +
-          * Dates +
-          * Contrôle +
-          * Agrégation +
-          * Autres +
-      * Types de Champs +
-        * Nombres entiers +
-        * Nombres à virgule flottante +
-        * Dates et Heures +
-          * Types de données TIMESTAMP +
-        * Chaînes +
-        * TEXT et BLOB +
-        * ENUM et SET +
-      * Types de Moteurs de Stockage +
-      * Caractéristiques des Moteurs +
-        * InnoDB +
-          * Mécanisme Interne +
-          * Transactions +
-          * Tablespace +
-          * Multiversion Concurrency Control +
-          * Transaction Isolation Levels +
-        * MyISAM +
-          * MyISAM FIXED +
-          * MyISAM DYNAMIC +
-          * MyISAM COMPRESSED +
-          * Particularités +
-        * Memory +
-          * Particularités +
-          * En Pratique +
-        * Archive +
-          * Particularités +
-        * CSV +
-        * FEDERATED +
-        * NDB Cluster +
-        * Autres Moteurs Non Standards +
-          * XtraDB +
-          * Aria +
-      * Jointures +
-        * FULL JOIN +
-        * LEFT JOIN +
-        * RIGHT JOIN +
-      * LAB #1 - Le Langage SQL+
  
-====Jour #3 - 7 heures====+====LAB #1 Mise en Place du Serveur NFS====
  
-  * **LCF306 - Gestion du Réseau** - 4 heures. +===Configuration du Serveur===
-    * Configuration du Réseau sous RHEL/CentOS 5 et 6 +
-      * Configuration de TCP/IP +
-        * DHCP +
-          * /etc/sysconfig/network +
-          * /etc/sysconfig/network-scripts/ifcfg-ethX (où X=0,1 ...) +
-        * IP Fixe +
-          * /etc/sysconfig/network +
-          * /etc/sysconfig/network-scripts/ifcfg-ethX (où X=0,1 ...) +
-        * La Commande hostname +
-        * La Commande ifconfig +
-        * Activer/Désactiver une Interface Manuellement +
-        * /etc/networks +
-        * Résolution d'adresses IP +
-          * /etc/resolv.conf +
-          * /etc/nsswitch.conf +
-          * /etc/hosts +
-        * Services réseaux +
-          * xinetd +
-          * TCP Wrapper +
-        * Routage Statique +
-          * La Commande route +
-          * Activer/désactiver le routage sur le serveur +
-      * Configuration du Réseau sous RHEL/CentOS 7 +
-        * La Commande nmcli +
-        * Connections et Profils +
-        * Ajouter une Deuxième Adresse IP à un Profil +
-        * La Commande hostname +
-        * La Commande ip +
-        * Activer/Désactiver une Interface Manuellement +
-        * Routage Statique +
-          * La commande ip +
-          * Activer/désactiver le routage sur le serveur +
-    * Diagnostique du Réseau +
-      * ping +
-      * netstat -i +
-      * traceroute +
-    * Connexions à Distance +
-      * Telnet +
-      * wget +
-      * ftp +
-      * SSH +
-        * Introduction +
-          * SSH-1 +
-          * SSH-2 +
-        * L'authentification par mot de passe +
-        * L'authentification par clef asymétrique +
-          * Installation +
-          * Configuration +
-            * Serveur +
-          * Utilisation +
-          * Tunnels SSH +
-      * SCP +
-        * Introduction +
-        * Utilisation +
-        * Mise en place des clefs +
-    * Annexe #1 - Comprendre les Réseaux +
-      * Présentation des Réseaux +
-      * Classification des Réseaux +
-        * Classification par Mode de Transmission +
-        * Classification par Topologie +
-          * La Topologie Physique +
-          * La Topologie en Ligne +
-          * La Topologie en Bus +
-          * La Topologie en Étoile +
-          * La Topologie en Anneau +
-          * La Topologie en Arbre +
-          * La Topologie Maillée +
-        * Classification par Etendue +
-        * Les Types de LAN +
-          * Réseau à Serveur Dédié +
-          * Réseau Poste-à-Poste +
-      * Le Modèle Client/Serveur +
-      * Modèles de Communication +
-        * Le modèle OSI +
-          * Les Couches +
-          * Les Protocoles +
-          * Les Interfaces +
-          * Protocol Data Units +
-          * Encapsulation et Désencapsulation +
-        * Spécification NDIS et le Modèle ODI +
-        * Le modèle TCP/IP +
-      * Les Raccordements +
-        * Les Modes de Transmission +
-        * Les Câbles +
-          * Le Câble Coaxial +
-          * Le Câble Paire Torsadée +
-          * Catagories de Blindage +
-          * La Prise RJ45 +
-          * Channel Link et Basic Link +
-          * La Fibre Optique +
-        * Les Réseaux sans Fils +
-        * Le Courant Porteur en Ligne +
-      * Technologies +
-        * Ethernet +
-        * Token-Ring +
-      * Périphériques Réseaux Spéciaux +
-        * Les Concentrateurs +
-        * Les Répéteurs +
-        * Les Ponts +
-          * Le Pont de Base +
-          * Le Pont en Cascade +
-          * Le Pont en Dorsale +
-        * Les Commutateurs +
-        * Les Routeurs +
-        * Les Passerelles +
-    * Annexe #2 - Comprendre TCP Version 4 +
-      * En-tête TCP +
-      * En-tête UDP +
-      * Fragmentation et Ré-encapsulation +
-      * Adressage +
-      * Masques de sous-réseaux +
-      * VLSM +
-      * Ports et sockets +
-      * /etc/services +
-      * Résolution d'adresses Ethernet +
-    * Annexe #3 - Comprendre le Chiffrement +
-      * Introduction à la cryptologie +
-        * Définitions +
-          * La Cryptographie +
-          * Le Chiffrement par Substitution +
-      * Algorithmes à clé secrète +
-        * Le Chiffrement Symétrique +
-      * Algorithmes à clef publique +
-        * Le Chiffrement Asymétrique +
-        * La Clef de Session +
-      * Fonctions de Hachage +
-      * Signature Numérique +
-      * LAB #1 - Utilisation de GnuPG +
-        * Présentation +
-        * Installation +
-        * Configuration +
-        * Signer un message +
-        * Chiffrer un message +
-      * PKI +
-        * Certificats X509+
  
-  * **LCF307 - Gestion du Serveur NFS** - 2 heures. +<WRAP center round important> 
-    Présentation +**Important** : Arrêtez votre VMDans 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 1 en Réseau NAT dans le réseau NatNetwork. Démarrez votre VM. 
-      Les Services et Processus du Serveur NFSv3 +</WRAP>
-        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+
  
-  * **LCF308 - Validation de la Formation** - 1 heure. +Configurez votre interface réseau si ce n'est pas déjà fait :
-    * Pour Aller Plus Loin +
-      * Support de Cours +
-      * L'Infrastructure Hors Formation +
-        * Matériel +
-        * Logiciels +
-        * Machine Virtuelle +
-    * Rappel du Programme de la Formation +
-      * Jour #1 +
-      * Jour #2 +
-      * Jour #3 +
-    * Remettre en Etat l'Infrastructure +
-    * Évaluation de la Formation +
-    * Remerciements+
  
-=====Remettre en Etat l'Infrastructure=====+<code> 
 +[root@centos7 ~]# nmcli connection add con-name ip_fixe ifname enp0s3 type ethernet ip4 10.0.2.16/24 gw4 10.0.2.2 
 +Connection 'ip_fixe' (5ac899e6-3f7b-415e-b9d7-c950fab007d5) successfully added. 
 +[root@centos7 ~]# nmcli connection mod ip_fixe ipv4.dns 8.8.8.8 
 +[root@centos7 ~]# nmcli connection up ip_fixe  
 +Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) 
 +[root@centos7 ~]# systemctl restart NetworkManager.service 
 +</code>
  
-Utilisez la commande suivante pour arrêter la machine virtuelle :+Ajoutez une autre adresse IP pour le NFS :
  
 <code> <code>
-desktop@serverXX:~$ VBoxManage controlvm CentOS_7 poweroff +[root@centos7 ~]# nmcli connection mod ip_fixe +ipv4.addresses 192.168.1.2/24
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%+
 </code> </code>
  
-Ensuite restaurez l'état d'origine de la machine virtuelle :+Continuez maintenant par la mise en place du service **nfs** :
  
 <code> <code>
-desktop@serverXX:~$ VBoxManage snapshot CentOS_7 restorecurrent +[root@centos7 ~]# systemctl status nfs.service 
-Restoring snapshot 'snapshot1' (22df4e22-876a-4e94-88a8-8422a3a6b158+nfs-server.service NFS server and services 
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%+   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled
 +   Active: inactive (dead) 
 + 
 +[root@centos7 ~]# systemctl enable nfs-server.service 
 +ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/multi-user.target.wants/nfs-server.service' 
 +[root@centos7 ~]# systemctl status nfs.service 
 +nfs-server.service - NFS server and services 
 +   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled) 
 +   Active: inactive (dead)
 </code> </code>
  
-=====Évaluation de la Formation=====+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//
  
-Afin de valider votre formation, veuillez compléter l’Évaluation de la Formation.+<code> 
 +[root@centos7 ~]# exportfs 
 +[root@centos7 ~]# exportfs 192.168.1.2:/home/trainee 
 +[root@centos7 ~]# exportfs 
 +/home/trainee 192.168.1.2 
 +</code>
  
-=====Remerciements=====+Démarrez maintenant le service **nfs** :
  
-Nous vous remercions de votre confiance et nous vous souhaitons une excellente continuation.+<code> 
 +[root@centos7 ~]# systemctl start nfs.service 
 +[root@centos7 ~]# systemctl status nfs.service 
 +nfs-server.service - NFS server and services 
 +   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled) 
 +   Active: active (exited) since Thu 2015-10-01 13:18:13 CEST; 4s ago 
 +  Process: 9552 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS) 
 +  Process: 9551 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) 
 + Main PID: 9552 (code=exited, status=0/SUCCESS) 
 +   CGroup: /system.slice/nfs-server.service 
 + 
 +Oct 01 13:18:13 centos7.fenestros.loc systemd[1]: Starting NFS server and services... 
 +Oct 01 13:18:13 centos7.fenestros.loc systemd[1]: Started NFS server and services. 
 +</code> 
 + 
 +Afin de mettre en place un ou des partages **permanents**, il est nécessaire d'éditer le fichier **/etc/exports** : 
 + 
 +<code> 
 +/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> 
 + 
 +Redémarrez maintenant le service nfs afin que le fichier **/etc/exports** soit re-lu : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl restart nfs.service 
 +[root@centos7 ~]# systemctl status nfs.service 
 +nfs-server.service - NFS server and services 
 +   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled) 
 +   Active: active (exited) since Thu 2015-10-01 14:24:50 CEST; 18s ago 
 +  Process: 4642 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS) 
 +  Process: 4639 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS) 
 +  Process: 4638 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS) 
 +  Process: 4650 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS) 
 +  Process: 4649 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) 
 + Main PID: 4650 (code=exited, status=0/SUCCESS) 
 +   CGroup: /system.slice/nfs-server.service 
 + 
 +Oct 01 14:24:50 centos7.fenestros.loc systemd[1]: Starting NFS server and services... 
 +Oct 01 14:24:50 centos7.fenestros.loc exportfs[4649]: exportfs: No options for /home/trainee 192.168.1.1: suggest 192.168.1.1(sync) to avoid warning 
 +Oct 01 14:24:50 centos7.fenestros.loc exportfs[4649]: exportfs: No options for /tmp *: suggest *(sync) to avoid warning 
 +Oct 01 14:24:50 centos7.fenestros.loc systemd[1]: Started NFS server and services. 
 +</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@centos7 ~]# exportfs -v 
 +/home/trainee 192.168.1.1(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash) 
 +/tmp          <world>(ro,wdelay,root_squash,no_subtree_check,fsid=0,sec=sys,ro,secure,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@centos7 ~]# nmcli connection del ip_fixe 
 + 
 +[root@centos7 ~]# nmcli connection show ip_fixe 
 +Error: ip_fixe - no such connection profile. 
 + 
 +[root@centos7 ~]# nmcli connection add con-name ip_fixe ifname enp0s3 type ethernet ip4 10.0.2.17/24 gw4 10.0.2.2 
 +Connection 'ip_fixe' (5b54ad20-c3e2-4606-b54d-38b225cc578f) successfully added. 
 + 
 +[root@centos7 ~]# nmcli connection mod ip_fixe ipv4.dns 8.8.8.8 
 + 
 +[root@centos7 ~]# nmcli connection mod ip_fixe +ipv4.addresses 192.168.1.1/24 
 + 
 +[root@centos7 ~]# nmcli connection up ip_fixe  
 +Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) 
 + 
 +[root@centos7 ~]# systemctl restart NetworkManager.service 
 +</code> 
 + 
 +<WRAP center round important > 
 +**Important** : Démarrez la VM d'origine. 
 +</WRAP> 
 + 
 +Dans la VM d'origine (serveur) passez SELinux en mode permissive et arrêtez le pare-feu : 
 + 
 +<code> 
 +[root@centos7 ~]# getenforce 
 +Enforcing 
 +[root@centos7 ~]# setenforce permissive 
 +[root@centos7 ~]# systemctl status firewalld.service 
 +firewalld.service - firewalld - dynamic firewall daemon 
 +   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) 
 +   Active: active (running) since Thu 2015-10-01 14:54:57 CEST; 19min ago 
 + Main PID: 479 (firewalld) 
 +   CGroup: /system.slice/firewalld.service 
 +           └─479 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 
 + 
 +Oct 01 14:54:57 centos7.fenestros.loc systemd[1]: Started firewalld - dynamic firewall daemon. 
 +[root@centos7 ~]# systemctl stop firewalld.service 
 +</code> 
 + 
 +A partir de votre client, consultez les répertoire exportés du serveur : 
 + 
 +<code> 
 +[root@centos7 ~]# 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@centos7 ~]# mkdir /nfs 
 +[root@centos7 ~]# mount -t nfs 192.168.1.2:/home/trainee /nfs 
 +</code> 
 + 
 +Notez que quand vous essayer de rentrer dans le répertoire en tant que root, vous obtenez le message **-bash: cd: /nfs: Permission non accordée** : 
 + 
 +<code> 
 +[root@centos7 ~]# cd /nfs 
 +-bash: cd: /nfs: Permission denied 
 +</code> 
 + 
 +<WRAP center round important> 
 +**Important** : Puisque le répertoire **/home/trainee** a été exporté avec l'option par défaut **root_squash**. Ceci implique que root perd ses droits sur le répertoire quand il est monté. En fait, le service nfs remplace l'UID de 0 avec l'UID de l'utilisateur **nobody**. 
 +</WRAP> 
 + 
 +Retournez donc dans le serveur et modifiez le fichier **/etc/exports** ainsi : 
 + 
 +<code> 
 +[root@centos7 ~]# cat /etc/exports 
 +/home/trainee 192.168.1.1(async,rw,no_root_squash)  
 +/tmp * 
 +</code> 
 + 
 +Redémarrez le service nfs : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl restart nfs.service 
 +</code> 
 + 
 +Vous noterez que maintenant vous êtes capable de vous positionner dans le répertoire **/nfs** du client en tant que **root**  
 + 
 +<code> 
 +[root@centos7 ~]# cd /nfs 
 +[root@centos7 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@centos6 ~]# 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     /var/run/rpcbind.sock  portmapper superuser 
 +    100000    3    local     /var/run/rpcbind.sock  portmapper superuser 
 +    100024    1    udp       0.0.0.0.182.127        status     29 
 +    100024    1    tcp       0.0.0.0.182.157        status     29 
 +    100024    1    udp6      ::.146.50              status     29 
 +    100024    1    tcp6      ::.139.119             status     29 
 +    100011    1    udp       0.0.0.0.3.107          rquotad    superuser 
 +    100011    2    udp       0.0.0.0.3.107          rquotad    superuser 
 +    100011    1    tcp       0.0.0.0.3.107          rquotad    superuser 
 +    100011    2    tcp       0.0.0.0.3.107          rquotad    superuser 
 +    100005    1    udp       0.0.0.0.204.191        mountd     superuser 
 +    100005    1    tcp       0.0.0.0.196.122        mountd     superuser 
 +    100005    1    udp6      ::.177.18              mountd     superuser 
 +    100005    1    tcp6      ::.229.141             mountd     superuser 
 +    100005    2    udp       0.0.0.0.215.201        mountd     superuser 
 +    100005    2    tcp       0.0.0.0.174.127        mountd     superuser 
 +    100005    2    udp6      ::.199.96              mountd     superuser 
 +    100005    2    tcp6      ::.147.162             mountd     superuser 
 +    100005    3    udp       0.0.0.0.210.10         mountd     superuser 
 +    100005    3    tcp       0.0.0.0.155.14         mountd     superuser 
 +    100005    3    udp6      ::.147.130             mountd     superuser 
 +    100005    3    tcp6      ::.220.126             mountd     superuser 
 +    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            nfs_acl    superuser 
 +    100227    3    tcp       0.0.0.0.8.1            nfs_acl    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            nfs_acl    superuser 
 +    100227    3    udp       0.0.0.0.8.1            nfs_acl    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                 nfs_acl    superuser 
 +    100227    3    tcp6      ::.8.1                 nfs_acl    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                 nfs_acl    superuser 
 +    100227    3    udp6      ::.8.1                 nfs_acl    superuser 
 +    100021    1    udp       0.0.0.0.163.78         nlockmgr   superuser 
 +    100021    3    udp       0.0.0.0.163.78         nlockmgr   superuser 
 +    100021    4    udp       0.0.0.0.163.78         nlockmgr   superuser 
 +    100021    1    tcp       0.0.0.0.137.82         nlockmgr   superuser 
 +    100021    3    tcp       0.0.0.0.137.82         nlockmgr   superuser 
 +    100021    4    tcp       0.0.0.0.137.82         nlockmgr   superuser 
 +    100021    1    udp6      ::.175.250             nlockmgr   superuser 
 +    100021    3    udp6      ::.175.250             nlockmgr   superuser 
 +    100021    4    udp6      ::.175.250             nlockmgr   superuser 
 +    100021    1    tcp6      ::.188.197             nlockmgr   superuser 
 +    100021    3    tcp6      ::.188.197             nlockmgr   superuser 
 +    100021    4    tcp6      ::.188.197             nlockmgr   superuser 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# 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     /var/run/rpcbind.sock  portmapper superuser 
 +    100000    3    local     /var/run/rpcbind.sock  portmapper superuser 
 +    100024    1    udp       0.0.0.0.231.232        status     29 
 +    100024    1    tcp       0.0.0.0.176.90         status     29 
 +    100024    1    udp6      ::.168.173             status     29 
 +    100024    1    tcp6      ::.234.102             status     29 
 +    100005    1    udp       0.0.0.0.78.80          mountd     superuser 
 +    100005    1    tcp       0.0.0.0.78.80          mountd     superuser 
 +    100005    1    udp6      ::.78.80               mountd     superuser 
 +    100005    1    tcp6      ::.78.80               mountd     superuser 
 +    100005    2    udp       0.0.0.0.78.80          mountd     superuser 
 +    100005    2    tcp       0.0.0.0.78.80          mountd     superuser 
 +    100005    2    udp6      ::.78.80               mountd     superuser 
 +    100005    2    tcp6      ::.78.80               mountd     superuser 
 +    100005    3    udp       0.0.0.0.78.80          mountd     superuser 
 +    100005    3    tcp       0.0.0.0.78.80          mountd     superuser 
 +    100005    3    udp6      ::.78.80               mountd     superuser 
 +    100005    3    tcp6      ::.78.80               mountd     superuser 
 +    100003    3    tcp       0.0.0.0.8.1            nfs        superuser 
 +    100003    4    tcp       0.0.0.0.8.1            nfs        superuser 
 +    100227    3    tcp       0.0.0.0.8.1            nfs_acl    superuser 
 +    100003    3    udp       0.0.0.0.8.1            nfs        superuser 
 +    100003    4    udp       0.0.0.0.8.1            nfs        superuser 
 +    100227    3    udp       0.0.0.0.8.1            nfs_acl    superuser 
 +    100003    3    tcp6      ::.8.1                 nfs        superuser 
 +    100003    4    tcp6      ::.8.1                 nfs        superuser 
 +    100227    3    tcp6      ::.8.1                 nfs_acl    superuser 
 +    100003    3    udp6      ::.8.1                 nfs        superuser 
 +    100003    4    udp6      ::.8.1                 nfs        superuser 
 +    100227    3    udp6      ::.8.1                 nfs_acl    superuser 
 +    100021    1    udp       0.0.0.0.193.97         nlockmgr   superuser 
 +    100021    3    udp       0.0.0.0.193.97         nlockmgr   superuser 
 +    100021    4    udp       0.0.0.0.193.97         nlockmgr   superuser 
 +    100021    1    tcp       0.0.0.0.132.11         nlockmgr   superuser 
 +    100021    3    tcp       0.0.0.0.132.11         nlockmgr   superuser 
 +    100021    4    tcp       0.0.0.0.132.11         nlockmgr   superuser 
 +    100021    1    udp6      ::.151.89              nlockmgr   superuser 
 +    100021    3    udp6      ::.151.89              nlockmgr   superuser 
 +    100021    4    udp6      ::.151.89              nlockmgr   superuser 
 +    100021    1    tcp6      ::.234.241             nlockmgr   superuser 
 +    100021    3    tcp6      ::.234.241             nlockmgr   superuser 
 +    100021    4    tcp6      ::.234.241             nlockmgr   superuser 
 +</code> 
 + 
 +===La Commande nfsstat=== 
 + 
 +La Commande **nfsstat** permet de vérifier l'activité sur le serveur NFS : 
 + 
 +<code> 
 +[root@centos6 ~]# nfsstat 
 +Server rpc stats: 
 +calls      badcalls   badauth    badclnt    xdrcall 
 +50                  0          0          0        
 + 
 +Server nfs v4: 
 +null         compound      
 +2         4% 48       96%  
 + 
 +Server nfs v4 operations: 
 +op0-unused   op1-unused   op2-future   access       close        commit        
 +0         0% 0         0% 0         0% 5         4% 0         0% 0         0%  
 +create       delegpurge   delegreturn  getattr      getfh        link          
 +0         0% 0         0% 0         0% 45       41% 5         4% 0         0%  
 +lock         lockt        locku        lookup       lookup_root  nverify       
 +0         0% 0         0% 0         0% 3         2% 0         0% 0         0%  
 +open         openattr     open_conf    open_dgrd    putfh        putpubfh      
 +0         0% 0         0% 0         0% 0         0% 46       42% 0         0%  
 +putrootfh    read         readdir      readlink     remove       rename        
 +2         1% 0         0% 3         2% 0         0% 0         0% 0         0%  
 +renew        restorefh    savefh       secinfo      setattr      setcltid      
 +0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +setcltidconf verify       write        rellockowner bc_ctl       bind_conn     
 +0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +exchange_id  create_ses   destroy_ses  free_stateid getdirdeleg  getdevinfo    
 +0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +getdevlist   layoutcommit layoutget    layoutreturn secinfononam sequence      
 +0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +set_ssv      test_stateid want_deleg   destroy_clid reclaim_comp  
 +0         0% 0         0% 0         0% 0         0% 0         0%  
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# nfsstat 
 +Server rpc stats: 
 +calls      badcalls   badclnt    badauth    xdrcall 
 +34                  0          0          0        
 + 
 +Server nfs v4: 
 +null         compound      
 +1         2% 33       97%  
 + 
 +Server nfs v4 operations: 
 +op0-unused   op1-unused   op2-future   access       close        commit        
 +0         0% 0         0% 0         0% 5         7% 0         0% 0         0%  
 +create       delegpurge   delegreturn  getattr      getfh        link          
 +0         0% 0         0% 0         0% 22       31% 4         5% 0         0%  
 +lock         lockt        locku        lookup       lookup_root  nverify       
 +0         0% 0         0% 0         0% 5         7% 0         0% 0         0%  
 +open         openattr     open_conf    open_dgrd    putfh        putpubfh      
 +0         0% 0         0% 0         0% 0         0% 23       33% 0         0%  
 +putrootfh    read         readdir      readlink     remove       rename        
 +1         1% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +renew        restorefh    savefh       secinfo      setattr      setcltid      
 +5         7% 0         0% 0         0% 0         0% 0         0% 2         2%  
 +setcltidconf verify       write        rellockowner bc_ctl       bind_conn     
 +2         2% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +exchange_id  create_ses   destroy_ses  free_stateid getdirdeleg  getdevinfo    
 +0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +getdevlist   layoutcommit layoutget    layoutreturn secinfononam sequence      
 +0         0% 0         0% 0         0% 0         0% 0         0% 0         0%  
 +set_ssv      test_stateid want_deleg   destroy_clid reclaim_comp  
 +0         0% 0         0% 0         0% 0         0% 0         0%  
 +</code> 
 + 
 +=====Gestion du Serveur SMB/CIFS Samba===== 
 + 
 +====Les Réseaux Microsoft==== 
 + 
 +Le fonctionnement d'un réseau Windows(tm) se repose sur le protocole **CIFS** (//Common Internet %%FileSystem%%//) le successeur du protocole **SMB** (//Server Message Block//).  
 + 
 +===Types de Réseaux Microsoft=== 
 + 
 +Les réseaux Microsoft(tm) se divisent en trois types distincts : 
 + 
 +  * **Un groupe de travail**, 
 +    * Windows (tm) 3.11, 9x, ME, NT Workstation, 2000 Workstation, XP, Vista, Seven, 
 +    * Les systèmes se trouvent sur le même réseau physique, 
 +    * La gestion des partages n'est pas centralisée, 
 +    * La sécurité est fournie par des mots de passe qui protègent les ressources individuelles, 
 +  * **Un domaine**, 
 +    * Windows(tm) NT Server 3.5, 3.51 ou 4, 
 +    * Nécessite la mise en place d'un **PDC** (//Primary Domain Controller//), 
 +    * La gestion des utilisateurs est accomplie via le service **SAM** (//Security Account Manager//), 
 +    * La sécurité s'appuie sur des objets appelés **SIDs** (//Security %%IDentifiers%%//), 
 +    * Peut contenir un ou plusieurs **BDC** (//Backup Domain Controller//), 
 +  * **Active Directory**, 
 +    * Windows(tm) 2000 Server, Server 2003, Server 2008, 
 +    * La gestion de l'authentification des utilisateurs est assurée par un annuaire **LDAP** (//Lightweight Directory Access Protocol//), 
 +    * Le service des noms est assurée par le **DNS** (//Domain Name Service//), 
 + 
 +===Types de Clients Windows=== 
 + 
 +Le fonctionnement du client Windows(tm) 2000 et les versions ultérieures implique que le protocole SMB s'appuie directement sur **TCP/IP** en utilisant le port **445**. 
 + 
 +Le fonctionnement du client Windows(tm) antérieur à Windows(tm) 2000 nécessite le protocole **NBT** (//Network Basic Import/Export System over TCP/IP//) qui utilise les ports suivants : 
 + 
 +  * **137**, 
 +    * //Name Service// - La résolution des noms et le parcours du réseau (//Browsing//), 
 +  * **138**, 
 +    * //Datagram Service//, 
 +  * **139**, 
 +    * //Session Service// - Le partage de fichiers et d'imprimante. 
 + 
 +Un nom %%NetBIOS%% est codé sur 16 octets dont les 15 premiers sont définis par l'utilisateur. Le dernier contient une valeur hexadécimale qui indique le type de ressource fournie par le système : 
 + 
 +^  Valeur Hexadécimale  ^ Type de Ressource  ^  
 +|  00  | Standard Workstation  |  
 +|  03  | Messenger Service  |  
 +|  06  | RAS Server Service  |  
 +|  21  | RAS Client Service  |  
 +|  1B  | Domain Master Browser Service  |  
 +|  1D  | Master Browser Name  |  
 +|  20  | Fileserver et/ou Printserver  |  
 +|  BE  | Network Monitor Agent  |  
 +|  BF  | Network Monitor Utility  |  
 + 
 +Les noms %%NetBIOS%% peuvent aussi être utilisés pour des noms de groupes : 
 + 
 +^  Valeur Hexadécimale  ^ Type de Ressource  ^  
 +|  00  | Standard Workstation Group  |  
 +|  1C  | Logon Server |  
 +|  1D  | Master Browser Name  |  
 +|  1E  | Normal Group Name  |  
 + 
 +<WRAP center round important> 
 +**Important** : Le nom NetBIOS ne doit pas contenir les charactères suivants : **"** **/** **\** **[** **]** **:** **;** **|** **=** **,** **^** ***** **?** **>** **<**  
 +</WRAP> 
 + 
 +La commande Windows(tm) **NBTSTAT** peut être utilisée pour visualiser la liste des types de ressources et les noms %%NetBIOS%% : 
 + 
 +<code> 
 +C:\Documents and Settings\Administrateur>NBTSTAT -n 
 + 
 +Connexion au réseau local: 
 +Adresse IP du noeud : [192.168.1.29] ID d'étendue : [] 
 + 
 +                Table nom local NetBIOS 
 + 
 +       Nom                Type         Statut 
 +    --------------------------------------------- 
 +    WINDOWS-FFC9AFA<00>  UNIQUE      Inscrit 
 +    WORKGROUP      <00>  Groupe      Inscrit 
 +    WINDOWS-FFC9AFA<20>  UNIQUE      Inscrit 
 +    WORKGROUP      <1E>  Groupe      Inscrit 
 + 
 +</code> 
 + 
 +====Présentation de Samba==== 
 + 
 +Le serveur Samba est en réalité un ensemble de programmes qui permettent le **partage de fichiers et d'imprimantes** entre un serveur Unix ou Linux et des stations **Windows(tm)** ( 3.11, 9x, NT4, 2000, XP, Vista, 2003, Seven et 10 ) ainsi que des stations **OS/2 **, **Linux** et **Mac**. 
 + 
 +Le serveur Samba3 était capable offrir : 
 + 
 +  * des services classiques d'un serveur de fichiers et d'impression, 
 +  * l'authentification des utilisateurs, 
 +  * la gestion des droits d'accès, 
 +  * la résolution des noms, 
 +  * le parcours du voisinage réseau (//Local Master Browser//, //Local Backup Browser//, //Domain Master Browser//), 
 +  * les services d'un serveur **WINS** primaire, 
 +  * les services d'un serveur **PDC** (//Primary Domain Controller//), 
 +  * les services d'un serveur Microsoft(tm) **DFS** (//Distributed %%FileSystem%%//), 
 + 
 +Le serveur Samba n'est **pas** capable d'offrir : 
 + 
 +  * les services d'un serveur **WINS** secondaire, 
 +  * les services d'un contrôleur de domaine Active Directory, 
 +  * les services d'un **BDC** - contrôleur secondaire de domaine (//Backup Domain Controller//) quand le PDC est un serveur Windows(tm). 
 + 
 +Samba4 apporte les nouveautés suivantes : 
 + 
 +  * Support de l'authentification et de l'administration d'Active Directory, 
 +  * Support complet de NTFS, 
 +  * Annuaire LDAP, 
 +  * Serveur Kerberos, 
 +  * Serveur DNS, 
 +  * Support du nouveau protocole RPC et de Python. 
 + 
 +===Daemons Samba=== 
 + 
 +Samba se repose sur trois **Daemons** (//Disk And Extension %%MONitor%%//) : 
 + 
 +  * **smbd** qui : 
 +    * fournit les services de gestion des ressources partagées et les fonctionnalités d'authentification, 
 +    * génère un processus fils pour chaque connexion active, 
 +  * **nmbd** qui : 
 +    * participe à la fonctionnalité du parcours du voisinage réseau et fournit un serveur compatible Microsoft(tm) WINS, 
 +    * génère une deuxième instance de lui-même dans le cas où Samba joue le rôle d'un serveur WINS, 
 +  * **winbindd** qui :  
 +    * permet d'obtenir des informations sur les utilisateurs définis sur des contrôleurs de domaine Windows(tm) NT ou 2000, 
 +    * facilite l'intégration d'un serveur Samba dans un domaine ayant déjà un PDC. 
 + 
 +===Commandes Samba=== 
 + 
 +Samba propose un nombre important de commandes et utilitaires : 
 + 
 +^  Commande  ^  Description 
 +|  findsmb  | Obtention d'informations sur les systèmes utilisant le protocole SMB  | 
 +|  net  | Commande similaire à la commande Windows(tm) du même nom  | 
 +|  nmblookup  | Interrogation d'un serveur de noms %%NetBIOS%% 
 +|  pdbedit  | Gestion de comptes stockés dans une base de données SAM  | 
 +|  rpcclient  | Exécution de programmes d'administration sur des clients Windows(tm) 
 +|  smbcacls  | Gestion des ACL  | 
 +|  smbclient  | Programme interactif multifonction 
 +|  smbcontrol  | Interrogations simples auprès des deamons 
 +|  smbmount  | Montage des ressources SMB sous Linux  | 
 +|  smbpasswd  | Gestion des mots de passe  | 
 +|  smbspool  | Gestion des impressions 
 +|  smbstatus  | Etat des connexions 
 +|  smbtar  | Utilitaire de sauvegarde 
 +|  smbumount  | Démontage d'une ressource SMB sous Linux  | 
 +|  swat  | Utilitaire de configuration 
 +|  testparm  | Vérification du fichier de configuration 
 +|  testprns  | Vérification des informations sur les imprimantes 
 +|  wbinfo  | Interrogation du deamon winbindd 
 + 
 +====Installation de Samba==== 
 + 
 +<WRAP center round important> 
 +**Important** : Configurez votre machine virtuelle CentOS 7 en mode réseau ponté avant de la démarrer. 
 +</WRAP> 
 + 
 +Désactivez SELINUX afin de ne pas avoir des erreurs de ce dernier : 
 + 
 +<code> 
 +[root@centos7 /]# setenforce permissive 
 +[root@centos7 /]# getenforce 
 +Permissive 
 +</code> 
 + 
 +Editez ensuite le fichier **/etc/sysconfig/selinux** ainsi : 
 + 
 +<code> 
 +[root@centos7 /]# vi /etc/sysconfig/selinux 
 +[root@centos7 /]# cat /etc/sysconfig/selinux 
 + 
 +# This file controls the state of SELinux on the system. 
 +# SELINUX= can take one of these three values: 
 +#     enforcing - SELinux security policy is enforced. 
 +#     permissive - SELinux prints warnings instead of enforcing. 
 +#     disabled - No SELinux policy is loaded. 
 +SELINUX=permissive 
 +# SELINUXTYPE= can take one of three two values: 
 +#     targeted - Targeted processes are protected, 
 +#     minimum - Modification of targeted policy. Only selected processes are protected.  
 +#     mls - Multi Level Security protection. 
 +SELINUXTYPE=targeted  
 + 
 +</code> 
 + 
 +Afin d'éviter les problèmes liés au pare-feu arrêtez le service firewalld : 
 + 
 +<code> 
 +[root@centos7 /]# systemctl status firewalld.service 
 +● firewalld.service - firewalld - dynamic firewall daemon 
 +   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) 
 +   Active: active (running) since Fri 2017-07-28 11:10:59 CEST; 42min ago 
 +     Docs: man:firewalld(1) 
 + Main PID: 616 (firewalld) 
 +   CGroup: /system.slice/firewalld.service 
 +           └─616 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 
 + 
 +Jul 28 11:10:52 centos7.fenestros.loc systemd[1]: Starting firewalld - dynamic firewall daemon... 
 +Jul 28 11:10:59 centos7.fenestros.loc systemd[1]: Started firewalld - dynamic firewall daemon. 
 +[root@centos7 /]# systemctl stop firewalld.service 
 +[root@centos7 /]# systemctl disable firewalld.service 
 +Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. 
 +Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. 
 +[root@centos7 /]# systemctl status firewalld.service 
 +● firewalld.service - firewalld - dynamic firewall daemon 
 +   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) 
 +   Active: inactive (dead) 
 +     Docs: man:firewalld(1) 
 + 
 +Jul 28 11:10:52 centos7.fenestros.loc systemd[1]: Starting firewalld - dynamic firewall daemon... 
 +Jul 28 11:10:59 centos7.fenestros.loc systemd[1]: Started firewalld - dynamic firewall daemon. 
 +Jul 28 11:54:00 centos7.fenestros.loc systemd[1]: Stopping firewalld - dynamic firewall daemon... 
 +Jul 28 11:54:00 centos7.fenestros.loc systemd[1]: Stopped firewalld - dynamic firewall daemon. 
 +</code> 
 + 
 +Modifiez ensuite le fichier **/etc/hosts** pour définir votre **hostname** et votre adresse IP : 
 + 
 +<code> 
 +[root@centos7 ~]# cat /etc/hosts 
 +127.0.0.1 localhost.localdomain localhost 
 +::1 localhost6.localdomain6 localhost6 
 +192.168.1.103 centos7.fenestros.loc 
 +</code> 
 + 
 +<WRAP center round todo> 
 +**Important** : Modifiez l'adresse IP dans votre fichier **/etc/hosts** en fonction de **votre** adresse IP réelle. 
 +</WRAP> 
 + 
 +Maintenant installez le paquet samba-swat : 
 + 
 +<code> 
 +[root@centos7 ~]# yum install samba-swat 
 +Loaded plugins: fastestmirror, langpacks 
 +adobe-linux-x86_64                                                                                              | 2.9 kB  00:00:00      
 +base                                                                                                            | 3.6 kB  00:00:00      
 +extras                                                                                                          | 3.4 kB  00:00:00      
 +updates                                                                                                         | 3.4 kB  00:00:00      
 +(1/3): adobe-linux-x86_64/primary_db                                                                            | 2.7 kB  00:00:00      
 +(2/3): extras/7/x86_64/primary_db                                                                               | 191 kB  00:00:00      
 +(3/3): updates/7/x86_64/primary_db                                                                              | 7.8 MB  00:00:47      
 +Determining fastest mirrors 
 + * base: centos.mirrors.ovh.net 
 + * extras: mirrors.standaloneinstaller.com 
 + * updates: mirrors.standaloneinstaller.com 
 +Resolving Dependencies 
 +--> Running transaction check 
 +---> Package samba.x86_64 0:4.4.4-14.el7_3 will be installed 
 +--> Processing Dependency: samba-libs = 4.4.4-14.el7_3 for package: samba-4.4.4-14.el7_3.x86_64 
 +--> Processing Dependency: samba-common-tools = 4.4.4-14.el7_3 for package: samba-4.4.4-14.el7_3.x86_64 
 +--> Processing Dependency: samba-common-libs = 4.4.4-14.el7_3 for package: samba-4.4.4-14.el7_3.x86_64 
 +--> Processing Dependency: samba-common = 4.4.4-14.el7_3 for package: samba-4.4.4-14.el7_3.x86_64 
 +--> Processing Dependency: samba-client-libs = 4.4.4-14.el7_3 for package: samba-4.4.4-14.el7_3.x86_64 
 +--> Processing Dependency: libwbclient = 4.4.4-14.el7_3 for package: samba-4.4.4-14.el7_3.x86_64 
 +--> Running transaction check 
 +---> Package libwbclient.x86_64 0:4.4.4-12.el7_3 will be updated 
 +---> Package libwbclient.x86_64 0:4.4.4-14.el7_3 will be an update 
 +---> Package samba-client-libs.x86_64 0:4.4.4-12.el7_3 will be updated 
 +--> Processing Dependency: samba-client-libs = 4.4.4-12.el7_3 for package: samba-client-4.4.4-12.el7_3.x86_64 
 +--> Processing Dependency: samba-client-libs = 4.4.4-12.el7_3 for package: libsmbclient-4.4.4-12.el7_3.x86_64 
 +---> Package samba-client-libs.x86_64 0:4.4.4-14.el7_3 will be an update 
 +---> Package samba-common.noarch 0:4.4.4-12.el7_3 will be updated 
 +---> Package samba-common.noarch 0:4.4.4-14.el7_3 will be an update 
 +---> Package samba-common-libs.x86_64 0:4.4.4-12.el7_3 will be updated 
 +---> Package samba-common-libs.x86_64 0:4.4.4-14.el7_3 will be an update 
 +---> Package samba-common-tools.x86_64 0:4.4.4-12.el7_3 will be updated 
 +---> Package samba-common-tools.x86_64 0:4.4.4-14.el7_3 will be an update 
 +---> Package samba-libs.x86_64 0:4.4.4-12.el7_3 will be updated 
 +---> Package samba-libs.x86_64 0:4.4.4-14.el7_3 will be an update 
 +--> Running transaction check 
 +---> Package libsmbclient.x86_64 0:4.4.4-12.el7_3 will be updated 
 +---> Package libsmbclient.x86_64 0:4.4.4-14.el7_3 will be an update 
 +---> Package samba-client.x86_64 0:4.4.4-12.el7_3 will be updated 
 +---> Package samba-client.x86_64 0:4.4.4-14.el7_3 will be an update 
 +--> Finished Dependency Resolution 
 + 
 +Dependencies Resolved 
 + 
 +======================================================================================================================================= 
 + Package                               Arch                      Version                              Repository                  Size 
 +======================================================================================================================================= 
 +Installing: 
 + samba                                 x86_64                    4.4.4-14.el7_3                       updates                    610 k 
 +Updating for dependencies: 
 + libsmbclient                          x86_64                    4.4.4-14.el7_3                       updates                    126 k 
 + libwbclient                           x86_64                    4.4.4-14.el7_3                       updates                    100 k 
 + samba-client                          x86_64                    4.4.4-14.el7_3                       updates                    547 k 
 + samba-client-libs                     x86_64                    4.4.4-14.el7_3                       updates                    4.6 M 
 + samba-common                          noarch                    4.4.4-14.el7_3                       updates                    191 k 
 + samba-common-libs                     x86_64                    4.4.4-14.el7_3                       updates                    161 k 
 + samba-common-tools                    x86_64                    4.4.4-14.el7_3                       updates                    451 k 
 + samba-libs                            x86_64                    4.4.4-14.el7_3                       updates                    260 k 
 + 
 +Transaction Summary 
 +======================================================================================================================================= 
 +Install  1 Package 
 +Upgrade             ( 8 Dependent packages) 
 + 
 +Total download size: 7.0 M 
 +Is this ok [y/d/N]: y 
 +</code> 
 + 
 +Les paquets ainsi installés sont : 
 + 
 +<code> 
 +[root@centos7 ~]# rpm -qa | grep samba 
 +samba-libs-4.4.4-14.el7_3.x86_64 
 +samba-client-4.4.4-14.el7_3.x86_64 
 +samba-client-libs-4.4.4-14.el7_3.x86_64 
 +samba-common-tools-4.4.4-14.el7_3.x86_64 
 +samba-common-4.4.4-14.el7_3.noarch 
 +samba-4.4.4-14.el7_3.x86_64 
 +samba-common-libs-4.4.4-14.el7_3.x86_64 
 +</code> 
 + 
 +Les deamons **smb** et **nmb** ne sont pas démarrés :  
 + 
 +<code> 
 +[root@centos7 ~]# systemctl status smb 
 +● smb.service - Samba SMB Daemon 
 +   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) 
 +   Active: inactive (dead) 
 +[root@centos7 ~]# systemctl status nmb 
 +● nmb.service - Samba NMB Daemon 
 +   Loaded: loaded (/usr/lib/systemd/system/nmb.service; disabled; vendor preset: disabled) 
 +   Active: inactive (dead) 
 +</code> 
 + 
 +Notez que le démarrage automatique de Samba n'est pas configuré. Configurez donc le démarrage automatique de Samba : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl enable smb 
 +Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service. 
 +[root@centos7 ~]# systemctl enable nmb 
 +Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service. 
 +</code> 
 + 
 +===Configuration de base=== 
 + 
 +La configuration de Samba est obtenue en éditant le fichier **/etc/samba/smb.conf**. Lors de l'installation des paquets Samba, un fichier smb.conf minimaliste est créé. Vérifiez ce fichier à l'aide de la commande **testparm** : 
 + 
 +<code> 
 +[root@centos7 ~]# testparm 
 +Load smb config files from /etc/samba/smb.conf 
 +rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) 
 +Processing section "[homes]" 
 +Processing section "[printers]" 
 +Processing section "[print$]" 
 +Loaded services file OK. 
 +Server role: ROLE_STANDALONE 
 + 
 +Press enter to see a dump of your service definitions 
 + 
 +# Global parameters 
 +[global] 
 + workgroup = SAMBA 
 + printcap name = cups 
 + security = USER 
 + idmap config * : backend = tdb 
 + cups options = raw 
 + 
 + 
 +[homes] 
 + comment = Home Directories 
 + browseable = No 
 + inherit acls = Yes 
 + read only = No 
 + valid users = %S %D%w%S 
 + 
 + 
 +[printers] 
 + comment = All Printers 
 + path = /var/tmp 
 + browseable = No 
 + printable = Yes 
 + create mask = 0600 
 + 
 + 
 +[print$] 
 + comment = Printer Drivers 
 + path = /var/lib/samba/drivers 
 + create mask = 0664 
 + directory mask = 0775 
 + write list = root 
 +</code> 
 + 
 +===Démarrage manuel de Samba=== 
 + 
 +Démarrez maintenant les daemons smb et nmb et constatez les processus ainsi créés : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl start smb 
 +[root@centos7 ~]# systemctl start nmb 
 +[root@centos7 ~]# systemctl status smb 
 +● smb.service - Samba SMB Daemon 
 +   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled) 
 +   Active: active (running) since Sat 2017-07-29 11:53:31 CEST; 11s ago 
 + Main PID: 6793 (smbd) 
 +   Status: "smbd: ready to serve connections..." 
 +   CGroup: /system.slice/smb.service 
 +           ├─6793 /usr/sbin/smbd 
 +           ├─6794 /usr/sbin/smbd 
 +           ├─6795 /usr/sbin/smbd 
 +           └─6796 /usr/sbin/smbd 
 + 
 +Jul 29 11:53:31 centos7.fenestros.loc systemd[1]: Starting Samba SMB Daemon... 
 +Jul 29 11:53:31 centos7.fenestros.loc smbd[6793]: [2017/07/29 11:53:31.692284,  0] ../lib/util/become_daemon.c:124(daemon_ready) 
 +Jul 29 11:53:31 centos7.fenestros.loc systemd[1]: Started Samba SMB Daemon. 
 +Jul 29 11:53:31 centos7.fenestros.loc smbd[6793]:   STATUS=daemon 'smbd' finished starting up and ready to serve connections 
 +[root@centos7 ~]# systemctl status nmb 
 +● nmb.service - Samba NMB Daemon 
 +   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled) 
 +   Active: active (running) since Sat 2017-07-29 11:53:36 CEST; 15s ago 
 + Main PID: 6825 (nmbd) 
 +   Status: "nmbd: ready to serve connections..." 
 +   CGroup: /system.slice/nmb.service 
 +           └─6825 /usr/sbin/nmbd 
 + 
 +Jul 29 11:53:36 centos7.fenestros.loc systemd[1]: Starting Samba NMB Daemon... 
 +Jul 29 11:53:36 centos7.fenestros.loc nmbd[6825]: [2017/07/29 11:53:36.108613,  0] ../lib/util/become_daemon.c:124(daemon_ready) 
 +Jul 29 11:53:36 centos7.fenestros.loc systemd[1]: Started Samba NMB Daemon. 
 +Jul 29 11:53:36 centos7.fenestros.loc nmbd[6825]:   STATUS=daemon 'nmbd' finished starting up and ready to serve connections 
 + 
 +[root@centos7 ~]# ps aux | grep mb 
 +root      6793  0.0  0.3 410660  6164 ?        Ss   11:53   0:00 /usr/sbin/smbd 
 +root      6794  0.0  0.1 404480  2880 ?        S    11:53   0:00 /usr/sbin/smbd 
 +root      6795  0.0  0.1 404472  2600 ?        S    11:53   0:00 /usr/sbin/smbd 
 +root      6796  0.0  0.1 410668  3512 ?        S    11:53   0:00 /usr/sbin/smbd 
 +root      6825  0.0  0.1 337320  2716 ?        Ss   11:53   0:00 /usr/sbin/nmbd 
 +root      7296  0.0  0.0 112648   960 pts/0    R+   11:54   0:00 grep --color=auto mb 
 +</code> 
 + 
 +Testez ensuite le bon fonctionnement de Samba grâce à la commande **smbclient** : 
 + 
 +<code> 
 +[root@centos7 ~]# smbclient -U% -L localhost 
 +Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4] 
 + 
 + Sharename       Type      Comment 
 + ---------       ----      ------- 
 + print$          Disk      Printer Drivers 
 + IPC$            IPC       IPC Service (Samba 4.4.4) 
 +Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4] 
 + 
 + Server               Comment 
 + ---------            ------- 
 + CENTOS7              Samba 4.4.4 
 + 
 + Workgroup            Master 
 + ---------            ------- 
 + SAMBA                CENTOS7      
 +</code> 
 + 
 +Les options de la commande smbclient sont nombreuses : 
 + 
 +<code> 
 +[root@centos7 ~]# smbclient --help 
 +Usage: smbclient service <password> 
 +  -R, --name-resolve=NAME-RESOLVE-ORDER     Use these name resolution services only 
 +  -M, --message=HOST                        Send message 
 +  -I, --ip-address=IP                       Use this IP to connect to 
 +  -E, --stderr                              Write messages to stderr instead of stdout 
 +  -L, --list=HOST                           Get a list of shares available on a host 
 +  -m, --max-protocol=LEVEL                  Set the max protocol level 
 +  -T, --tar=<c|x>IXFqgbNan                  Command line tar 
 +  -D, --directory=DIR                       Start from directory 
 +  -c, --command=STRING                      Execute semicolon separated commands 
 +  -b, --send-buffer=BYTES                   Changes the transmit/send buffer 
 +  -t, --timeout=SECONDS                     Changes the per-operation timeout 
 +  -p, --port=PORT                           Port to connect to 
 +  -g, --grepable                            Produce grepable output 
 +  -B, --browse                              Browse SMB servers using DNS 
 + 
 +Help options: 
 +  -?, --help                                Show this help message 
 +  --usage                                   Display brief usage message 
 + 
 +Common samba options: 
 +  -d, --debuglevel=DEBUGLEVEL               Set debug level 
 +  -s, --configfile=CONFIGFILE               Use alternate configuration file 
 +  -l, --log-basename=LOGFILEBASE            Base name for log files 
 +  -V, --version                             Print version 
 +  --option=name=value                       Set smb.conf option from command line 
 + 
 +Connection options: 
 +  -O, --socket-options=SOCKETOPTIONS        socket options to use 
 +  -n, --netbiosname=NETBIOSNAME             Primary netbios name 
 +  -W, --workgroup=WORKGROUP                 Set the workgroup name 
 +  -i, --scope=SCOPE                         Use this Netbios scope 
 + 
 +Authentication options: 
 +  -U, --user=USERNAME                       Set the network username 
 +  -N, --no-pass                             Don't ask for a password 
 +  -k, --kerberos                            Use kerberos (active directory) authentication 
 +  -A, --authentication-file=FILE            Get the credentials from a file 
 +  -S, --signing=on|off|required             Set the client signing state 
 +  -P, --machine-pass                        Use stored machine account password 
 +  -e, --encrypt                             Encrypt SMB transport 
 +  -C, --use-ccache                          Use the winbind ccache for authentication 
 +  --pw-nt-hash                              The supplied password is the NT hash 
 +</code> 
 + 
 +Celles qui nous intéressent ici sont : 
 + 
 +  * **-U%**  
 +    * sert à éviter une authentification avec mot de passe, 
 +  * **-L** 
 +    * liste les ressources disponibles sur **localhost**. 
 + 
 +=== Configuration de Samba === 
 + 
 +==Gestion des comptes et des groupes == 
 + 
 +Vous allez maintenant créer le groupe **staff**, utilisé pour le partage **Public**: 
 + 
 +  [root@centos7 ~]# groupadd staff 
 + 
 +Pour insérer des utilisateurs dans le groupe **staff**, ouvrez le fichier **/etc/group** et ajoutez tous les utilisateurs à qui vous souhaitez donner accès au partage public de samba au groupe staff. 
 + 
 +<code> 
 +[root@centos7 ~]# vi /etc/group 
 +[root@centos7 ~]# cat /etc/group 
 +root:x:0: 
 +... 
 +trainee:x:1000:trainee 
 +vboxsf:x:983: 
 +staff:x:1001:trainee 
 +</code> 
 + 
 +Faites la même procédure pour le fichier **/etc/gshadow** : 
 + 
 +<code> 
 +[root@centos7 ~]# vi /etc/gshadow 
 +[root@centos7 ~]# cat /etc/gshadow 
 +root::: 
 +... 
 +trainee:!!::trainee 
 +vboxsf:!:: 
 +staff:!::trainee 
 +</code> 
 + 
 +== Création du fichier smbpasswd == 
 + 
 +Afin de pouvoir permettre des connexions au serveur Samba, il faut créer le fichier **/var/lib/samba/private/smbpasswd** qui contiendra les utilisateurs autorisés. 
 + 
 +En effet, le serveur Samba n'utilise pas le fichier de mots de passe de la machine Linux, à savoir le fichier **/etc/passwd**. Cependant, une fois le serveur Samba fonctionnel, nous pouvons stipuler que les deux fichiers soient synchronisés lors des modifications futures. 
 + 
 +Modifiez la directive **passdb backend** du fichier **/etc/samba/smb.conf** afin d'utiliser le fichier **/var/lib/samba/private/smbpasswd** pour stocker les mots de passe samba : 
 + 
 +<code> 
 +[root@centos7 ~]# vi /etc/samba/smb.conf 
 +[root@centos7 ~]# cat /etc/samba/smb.conf 
 +# See smb.conf.example for a more detailed config file or 
 +# read the smb.conf manpage. 
 +# Run 'testparm' to verify the config is correct after 
 +# you modified it. 
 + 
 +[global] 
 + workgroup = SAMBA 
 + security = user 
 + 
 + #passdb backend = tdbsam 
 + passdb backend = smbpasswd 
 + 
 + printing = cups 
 + printcap name = cups 
 + load printers = yes 
 + cups options = raw 
 + 
 +[homes] 
 + comment = Home Directories 
 + valid users = %S, %D%w%S 
 + browseable = No 
 + read only = No 
 + inherit acls = Yes 
 + 
 +[printers] 
 + comment = All Printers 
 + path = /var/tmp 
 + printable = Yes 
 + create mask = 0600 
 + browseable = No 
 + 
 +[print$] 
 + comment = Printer Drivers 
 + path = /var/lib/samba/drivers 
 + write list = root 
 + create mask = 0664 
 + directory mask = 0775 
 +</code> 
 + 
 +Le système de stockage des mots de passe peut être un des suivants : 
 + 
 +  * smbpasswd - utilise un fichier. Par défaut: **/etc/samba/smbpasswd**, 
 +  * tdbsam - utilise une base de données de type Trivial Database. Par défaut : **/var/lib/samba/private/passdb.tdb**, 
 +  * ldapsam - utilise un URL vers un LDAP, Par défaut : **ldap://localhost**. 
 + 
 +**La Commande smbpasswd** 
 + 
 +Créez maintenant les mots de passe samba pour chaque utilisateur dans le fichier /var/lib/samba/private/smbpasswd : 
 + 
 +<code> 
 +[root@centos7 ~]# smbpasswd -a root 
 +New SMB password: 
 +Retype new SMB password: 
 +startsmbfilepwent_internal: file /var/lib/samba/private/smbpasswd did not exist. File successfully created. 
 +Added user root. 
 +[root@centos7 ~]# smbpasswd -a trainee 
 +New SMB password: 
 +Retype new SMB password: 
 +Added user trainee. 
 +</code> 
 + 
 +Consultez le fichier **/var/lib/samba/private/smbpasswd**. Vous devez constater une ligne pour chaque utilisateur. Chaque ligne doit comporter une chaîne de caractères alphanumérique : 
 + 
 +<code> 
 +[root@centos7 ~]# cat /var/lib/samba/private/smbpasswd 
 +root:0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:E183384163AA4BFFAF24CC678CF19EAB:[U          ]:LCT-597C6334: 
 +trainee:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:2A217A32BDE94A23B26A8EEA26C70874:[U          ]:LCT-597C6343: 
 +</code> 
 + 
 +Créez ensuite un lien symbolique : 
 + 
 +<code> 
 +[root@centos7 ~]# ln -s /var/lib/samba/private/smbpasswd /etc/samba/smbpasswd 
 +</code> 
 + 
 +**La Commande pdbedit** 
 + 
 +La commande pdbedit est utilisée pour la gestion de la base de données de SAMBA. Par exemple pour lister les utilisateurs de SAMBA : 
 + 
 +<code> 
 +[root@centos7 ~]# pdbedit -L 
 +root:0:root 
 +trainee:1000:trainee 
 +</code> 
 + 
 +Pour créer un compte SAMBA, l'utilisateur doit d'abord posséder un compte Unix : 
 + 
 +<code> 
 +[root@centos7 ~]# useradd sambauser 
 +</code> 
 + 
 +Il est ensuite possible d'utiliser la commande pdbedit pour créer l'utilisateur dans la base de données de SAMBA : 
 + 
 +<code> 
 +[root@centos7 ~]# useradd sambauser 
 +[root@centos7 ~]# pdbedit -a sambauser 
 +new password: 
 +retype new password: 
 +Unix username:        sambauser 
 +NT username:           
 +Account Flags:        [U          ] 
 +User SID:             S-1-5-21-3392617607-4065925175-2212523533-3002 
 +Primary Group SID:    S-1-5-21-3392617607-4065925175-2212523533-513 
 +Full Name:             
 +Home Directory:       \\centos7\sambauser 
 +HomeDir Drive:         
 +Logon Script:          
 +Profile Path:         \\centos7\sambauser\profile 
 +Domain:               CENTOS7 
 +Account desc:          
 +Workstations:          
 +Munged dial:           
 +Logon time:           0 
 +Logoff time:          never 
 +Kickoff time:         never 
 +Password last set:    Tue, 15 Aug 2017 16:21:39 CEST 
 +Password can change:  Tue, 15 Aug 2017 16:21:39 CEST 
 +Password must change: never 
 +Last bad password   : 0 
 +Bad password count  : 0 
 +Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
 +</code> 
 + 
 +Cette commande a donc ajouté l'utilisateur au fichier **/var/lib/samba/private/smbpasswd** : 
 + 
 +<code> 
 +[root@centos7 ~]# cat /var/lib/samba/private/smbpasswd 
 +root:0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:E183384163AA4BFFAF24CC678CF19EAB:[U          ]:LCT-5993021B: 
 +trainee:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:2A217A32BDE94A23B26A8EEA26C70874:[U          ]:LCT-5993022B: 
 +sambauser:1001:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:C27F8C725297C4466C963B7F88906297:[U          ]:LCT-59930373: 
 +</code> 
 + 
 +Pour visualiser les informations d'un utilisateur SAMBA existant, il convient d'utiliser les options **-Lv** : 
 + 
 +<code> 
 +[root@centos7 ~]# pdbedit -Lv sambauser 
 +Unix username:        sambauser 
 +NT username:           
 +Account Flags:        [U          ] 
 +User SID:             S-1-5-21-3392617607-4065925175-2212523533-3002 
 +Primary Group SID:    S-1-5-21-3392617607-4065925175-2212523533-513 
 +Full Name:             
 +Home Directory:       \\centos7\sambauser 
 +HomeDir Drive:         
 +Logon Script:          
 +Profile Path:         \\centos7\sambauser\profile 
 +Domain:               CENTOS7 
 +Account desc:          
 +Workstations:          
 +Munged dial:           
 +Logon time:           0 
 +Logoff time:          never 
 +Kickoff time:         never 
 +Password last set:    Tue, 15 Aug 2017 16:21:39 CEST 
 +Password can change:  Tue, 15 Aug 2017 16:21:39 CEST 
 +Password must change: never 
 +Last bad password   : 0 
 +Bad password count  : 0 
 +Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
 +</code> 
 + 
 +La commande peut aussi être utiliser pour supprimer un utilisateur SAMBA : 
 + 
 +<code> 
 +[root@centos7 ~]# pdbedit -x sambauser 
 +[root@centos7 ~]# cat /var/lib/samba/private/smbpasswd 
 +root:0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:E183384163AA4BFFAF24CC678CF19EAB:[U          ]:LCT-5993021B: 
 +trainee:1000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:2A217A32BDE94A23B26A8EEA26C70874:[U          ]:LCT-5993022B: 
 +[root@centos7 ~]# cat /etc/passwd | grep sambauser 
 +sambauser:x:1001:1002::/home/sambauser:/bin/bash 
 +</code> 
 + 
 + 
 +== Comprendre la structure du fichier de configuration smb.conf == 
 + 
 +Ayant maintenant créé un fichier smbpasswd, il est le moment de terminer la configuration de votre serveur Samba. 
 + 
 +Cette configuration est dictée par un seul et unique fichier – **/etc/samba/smb.conf**. 
 + 
 +Avant de faire des manipulations, veillez à sauvegarder votre fichier smb.conf actuel : 
 + 
 +<code> 
 +[root@centos7 ~]# cp /etc/samba/smb.conf /etc/samba/smb.old 
 +</code> 
 + 
 +Examinez le fichier smb.conf suivant ainsi que le tableau récapitulatif des paramètres : 
 + 
 +<file> 
 +# Example d'un fichier smb.conf pour des partages par ressources 
 +# Toute ligne commencant par un # ou un ; est un commentaire et  
 +# n'est pas prise en compte lors de la lecture de ce fichier par  
 +# samba. N'oubliez pas de lancer la commande 'service smb restart'  
 +# lors de chaque changement et enregistrement de ce fichier.  
 + 
 +#======================= Section Globale ========================  
 + 
 +[global] 
 + 
 +# 1. Options du nom du serveur:  
 +# Modifiez la ligne qui suit pour votre workgroup  
 +workgroup = WORKGROUP 
 +# Modifiez la ligne qui suit pour votre nom de machine. Par défaut sa valeur est la valeur de hostname 
 +netbios name = Machine01 
 +server string = Samba Server %v 
 + 
 +# 2. Options d'impression :  
 +printcap name = cups 
 +load printers = yes  
 +printing = cups 
 + 
 +# 3. Options de journalisation :  
 +log file = /var/log/samba/log.%m  
 +max log size = 50  
 +log level = 5 
 + 
 +# 4. Options de sécurité :  
 +# Modifiez la ligne qui suit pour votre adresse reseau  
 +hosts allow = 192.168.1.  127. 
 +hosts deny = all 
 +security = user 
 +passdb backend = smbpasswd 
 +encrypt passwords = yes  
 +smb passwd file = /etc/samba/smbpasswd  
 +unix password sync = Yes  
 +passwd program = /usr/bin/passwd %u  
 +passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n  
 +*passwd:*all*authentication*tokens*updated*successfully* 
 + 
 +# 5. Options du reseau:  
 +# Modifiez la ligne qui suit pour l'adresse IP de votre carte reseau  
 +interfaces = 192.168.1.22/255.255.255.0 
 +# Modifiez la ligne qui suit à l'adresse de diffussion de votre reseau  
 +remote announce = 192.168.1.255 
 + 
 +# 6.Options de resolutions de nom Netbios:  
 +name resolve order = wins lmhosts bcast host  
 +dns proxy = yes 
 + 
 +# 7. Options de nommage de fichiers:  
 +dos charset = 850  
 +unix charset = ISO8859-1 
 + 
 +#======================== Definitions des Partages ==============================  
 + 
 +[homes]  
 +comment = Repertoires Personnels  
 +browseable = no  
 +writable = yes 
 + 
 +[public]  
 +comment = Repertoire Public  
 +path = /home/samba/public  
 +write list = @staff  
 +read list = @staff  
 +writable = yes  
 +guest ok = no  
 +create mode = 0755 
 +#Fin 
 +</file> 
 + 
 +Ce fichier est un exemple d'un smb.conf avec **security = user**. De cette façon chaque utilisateur ne verra que les partages auxquels il a un droit d'accès. En équivalence Windows(tm), ceci correspond à mettre en place un réseau poste-à-poste avec Windows(tm) NT4.0 Workstation. 
 + 
 +Toute ligne commençant par **#** ou **;** est un commentaire et n'est pas prise en compte lors de la lecture du fichier par Samba. Le fichier est divisé en deux parties – la section **globale **et la section **partages**. 
 + 
 +L'exemple de smb.conf ci-dessus établira un **niveau de sécurité par ressource**. Dans ce cas, un utilisateur verra toutes les ressources partagées sur le serveur Linux dans le Voisinage Réseau Windows, mais il n'aura accès qu'aux ressources pour lesquelles il existe une autorisation explicite pour lui. 
 + 
 +Afin de comprendre les paramètres dans le fichier précédent, consultez le tableau suivant : 
 + 
 +^ **Paramètre ** ^ **Valeur Par Défaut ** ^ **Description ** ^ 
 +| Workgroup = | s/o | Le nom du groupe de travail | 
 +| Netbios name = | La valeur de hostname | Le nom NetBIOS du serveur | 
 +| Server string = | s/o |La description du serveur | 
 +| path = | s/o | Désigne le chemin du répertoire à partager | 
 +| comment = | s/o | Désigne le nom du partage visible dans le voisinage réseau Windows | 
 +| guest ok = yes | no | Si yes, le partage est en accès libre sans restrictions de mot de passe. | 
 +| guest account =  | nobody | Le nom du compte d'accès libre. | 
 +| valid users = | tout utilisateur | Désigne une liste d'utilisateurs qui peuvent avoir accès à la ressource. La liste d'utilisateurs est séparé par des espaces. Chaque groupe commence avec @. Ex: **valid users = user1 user2 @groupe3 ** | 
 +| printable = true | false | Partager un service d'impression | 
 +| writeable = yes | no | Désigne si oui ou non le droit d'écriture est accordé dans le répertoire concerné. | 
 +| write list = | tout utilisateur | Désigne la liste des utilisateurs qui peuvent écrire dans un répertoire. | 
 +| read list = | tout utilisateur | Désigne la liste des utilisateurs qui peuvent lire dans un répertoire. | 
 +| browseable = | yes | Désigne si oui ou non le partage sera visible par tous, y compris les utilisateurs non authentifiés. | 
 +| create mode = | 0744 | Désigne les droits maximum accordés à un fichier créés dans le répertoire concerné. | 
 +| create mask = | 0744 | Idem create mode =. | 
 +| directory mode = | 0755 | Désigne les droits maximum accordés à un répertoire créé dans la ressource. | 
 +| directory mask = | 0755 | Idem directory mode =. | 
 +| force create mode | s/o | Désigne les droits accordés à un fichier créés dans le répertoire concerné. | 
 +| force directory mode| s/o | Désigne les droits accordés à un répertoire créé dans la ressource. | 
 +| force group = | s/o | Impose un groupe propriétaire pour tout fichier créé dans le répertoire. | 
 +| hide dot files = | yes | Cache les fichiers cachés de Linux. | 
 +| hosts allow = | toute station | Liste d'adresses IP ayant accès à une ressource. | 
 +| hosts deny = | aucune | Liste d'adresses IP n'ayant pas accès à une ressource. | 
 +| max connections = | 0 | Désigne un nombre de connections illimités à la ressource concernée. Sinon spécifiez un nombre maximum de connexions. | 
 +| Log file = /chemin/log.%m | s/o | Désigne le chemin des logs. L'opérateur **%m **implique que chaque log aura le nom de la machine associé. Ex: log.station1, log.station2 etc. | 
 +| max log size = | s/o | La taille est à définir en Ko. C'est la taille maximale du fichier log. | 
 +| interfaces = | s/o | Désigne l'adresse IP de la carte réseau connecté au réseau Windows. A exprimer sous la forme **N° IP/N° sous-masque. ** | 
 +| remote announce = | s/o | L'adresse de Broadcast du réseau, ici le 192.168.1.255. | 
 + 
 +Notez que lors de chaque changement et enregistrement de ce fichier, il faut que smb relise le fichier. 
 + 
 +Le fichier smb.conf utilise également des variables : 
 + 
 +^ **Variable ** ^ **Description ** ^ 
 +| %a | L'architecture du client (Samba, Windows 2000, Windows NT, Unknown | 
 +| %l | L'adresse IP du client | 
 +| %M | Le nom DNS du client | 
 +| %m | Le nom NetBIOS du client | 
 +| %u | L'identité de l'utilisateur | 
 +| %U | L'identité souhaité par l'utilisateur | 
 +| %H | Le répertoire de connexion de l'utilisateur | 
 +| %g | Le groupe principal de l'utilisateur | 
 +| %S | Le nom du partage | 
 +| %P | Le répertoire racine du partage | 
 +| %d | Le PID du process courant | 
 +| %h | Le nom DNS du serveur SAMBA | 
 +| %L | Le nom NetBIOS du serveur SAMBA | 
 +| %N | Idem %L | 
 +| %v | La version de SAMBA | 
 +| %T | La date et l'heure du système | 
 +| %var | La valeur de la variable var | 
 + 
 +Créez donc le fichier smb.conf ci-dessous et placez-le dans le répertoire **/etc/samba**. Modifiez les directives **hosts allow**, **interfaces** et **remote announce** en fonction de votre adresse IP : 
 + 
 +<file text smb.conf> 
 +[global] 
 +workgroup = WORKGROUP  
 +netbios name = Machine01 
 +server string = Samba Server %v 
 +printcap name = cups 
 +load printers = yes 
 +printing = cups 
 +log file = /var/log/samba/log.%m 
 +max log size = 50 
 +log level = 5 
 +hosts allow = 192.168.1.  127. 
 +hosts deny = all 
 +security = user 
 +passdb backend = smbpasswd 
 +encrypt passwords = yes 
 +smb passwd file = /etc/samba/smbpasswd 
 +unix password sync = Yes 
 +passwd program = /usr/bin/passwd %u 
 +passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* 
 +interfaces = 192.168.1.103/255.255.255.0 
 +remote announce = 192.168.1.255 
 +name resolve order = wins lmhosts bcast host 
 +dns proxy = yes  
 +dos charset = 850 
 +unix charset = ISO8859-1 
 + 
 +[homes] 
 +comment = Repertoires Personnels 
 +browseable = no 
 +writable = yes 
 + 
 +[public] 
 +comment = Repertoire Public 
 +path = /home/samba/public 
 +write list = @staff 
 +read list = @staff 
 +writable = yes 
 +guest ok = no 
 +create mode = 0755 
 +</file> 
 + 
 +Rechargez le fichier de configuration smb.conf : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl reload smb 
 +</code> 
 + 
 +Créez maintenant le répertoire **/home/samba/public** : 
 + 
 +<code> 
 +[root@centos7 ~]# mkdir -p /home/samba/public 
 +</code> 
 + 
 +Ensuite, afin que chaque utilisateur puisse écrire dans le répertoire public mais supprimer uniquement ses propres fichiers et répertoires, il faut modifier les permissions pour le répertoire **/home/samba/public ** : 
 + 
 +<code> 
 +[root@centos7 ~]# chmod 1777 /home/samba/public 
 +</code> 
 + 
 +Vous pouvez tester votre fichier **smb.conf** avec la commande **testparm** :  
 + 
 +<code> 
 +[root@centos7 ~]# testparm 
 +Load smb config files from /etc/samba/smb.conf 
 +rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) 
 +Processing section "[homes]" 
 +Processing section "[public]" 
 +Loaded services file OK. 
 +Server role: ROLE_STANDALONE 
 + 
 +Press enter to see a dump of your service definitions 
 + 
 +# Global parameters 
 +[global] 
 + dos charset = 850 
 + interfaces = 192.168.1.103/255.255.255.0 
 + netbios name = MACHINE01 
 + server string = Samba Server %v 
 + unix charset = ISO8859-1 
 + log file = /var/log/samba/log.%m 
 + max log size = 50 
 + remote announce = 192.168.1.255 
 + printcap name = cups 
 + name resolve order = wins lmhosts bcast host 
 + passdb backend = smbpasswd 
 + passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* 
 + passwd program = /usr/bin/passwd %u 
 + security = USER 
 + smb passwd file = /etc/samba/smbpasswd 
 + unix password sync = Yes 
 + idmap config * : backend = tdb 
 + hosts allow = 192.168.1. 127. 
 + hosts deny = all 
 + 
 + 
 +[homes] 
 + comment = Repertoires Personnels 
 + browseable = No 
 + read only = No 
 + 
 + 
 +[public] 
 + comment = Repertoire Public 
 + path = /home/samba/public 
 + create mask = 0755 
 + read list = @staff 
 + read only = No 
 + write list = @staff 
 +</code> 
 + 
 +==== LAB #2 - Tester Samba en tant que Serveur de Fichiers ==== 
 + 
 +Pour tester votre configuration : 
 + 
 +  * Consultez la section **Réseau** de l'**Explorateur de Fichiers** de votre machine hôte Windows(tm), 
 +  * Identifiez la machine **MACHINE01**, 
 +  * Connectez-vous à la **MACHINE01** avec le compte **trainee/trainee**, 
 +  * Vérifiez que vous pouvez créer un fichier dans le partage du serveur samba appelé **public** ainsi que dans le partage du répertoire personnel de trainee.
  
 ----- -----
  
-<html> +Copyright © 2023 Hugh Norris. 
-<DIV ALIGN="CENTER"> +
-Copyright © 2020 Hugh Norris<BR><BR> +
-Document non-contractuelLe programme peut être modifié sans préavis. +
-</div> +
-</html>+
Menu