TP1 : Réseau local Linux - NIS / NFS
Transcription
TP1 : Réseau local Linux - NIS / NFS
T.P. n°1 Réseau local sous Linux Authentification NIS Partages NFS Binôme Exemple sur le poste n°3 , etudiant 'toto' Groupe 1 – Introduction Ce TP consiste à configurer un petit réseau local de plusieurs machines sous Linux Fedora 14 (14 clients et 1 serveur). Il s’agira de créer de nouveaux utilisateurs, de mettre en œuvre une authentification et une résolution de noms par serveur NIS, et de paramétrer des accès à des répertoires partagés par NFS sur un serveur Linux. Nous travaillerons sur des machines virtuelles VMware Fedora 14 « vues » comme directement reliées par leurs cartes réseau virtuelles au switch physique de la salle et disposant donc chacune d’une adresse IP propre sur le réseau local 192.168.0.0/24 Chaque binôme aura la charge de configurer sa machine cliente Fedora ainsi qu’une partie de la machine serveur Fedora. Vous utilisez pour cela voWUH cours ainsi que de la documentation fournie ou trouvée sur le Web. Organisation de la salle C309 La salle C309 dispose de 14 postes étudiants sous Windows 7 Intégrale, numéroté de 1 à 14 d’un poste enseignant également sous Windows 7 Intégrale, numéroté 15 Chaque machine possède 2 interfaces réseau physiques, notées « Carte reseau 1 » et « Carte reseau 2 », et quatre interfaces virtuelles dont nous verrons l’utilisation plus tard. Les 14 postes étudiants Windows 7 ainsi que le poste enseignant sont reliées par leur interface « Carte reseau 1 » à un commutateur pour former un réseau local 192.168.0.0/24 11 12 13 14 10 9 8 7 4 5 6 3 2 1 15 Configuration des postes : machines physiques et machines virtuelles Chaque machine physique sous Windows héberge également une machine virtuelle sous Linux Fedora 14, reliée par son interface eth0 virtuelle à un pont vers l’interface physique « Carte reseau 1 », et qui s’affiche sur le second écran. Les machines virtuelles disposent ainsi de leurs propres adresses IP sur le même réseau local 192.168.0.0/24 de la salle. Tout se passe en pratique comme si l’on disposait donc de 2 machines physiques cote à cote avec chacune son interface réseau, la machine sous Windows servant à consulter la documentation accessible par le raccourci réseau sur le bureau et à rédiger le compte rendu, alors que la machine sous Linux Fedora sert à réaliser les manipulations du TP. L’avantage de la machine virtuelle est que l’on peut par exemple faire du Copier (Ctrl+C) /Coller (Ctrl+V) de texte entre une fenêtre de terminal de la machine virtuelle Fedora et un cadre de réponse du compte-rendu. Les noms et adresses IP des différentes machines sur le réseau 192.168.0.0/24 de la salle C309 seront définis comme suit : client-fedora-1 PC-1 client- fedora-14 PC-14 serveur-fedora 192.168.0.114 192.168.0.115 PC-15 …… 192.168.0.101 192.168.0.1 192.168.0.14 192.168.0.15 2 – Démarrage et découverte de la machine cliente Démarrez votre machine virtuelle client-fedora en cliquant sur son icône sur votre bureau La machine démarre alors avec VMware Player sur le second écran. Vous pouvez alors agir dessus avec le clavier et la souris exactement comme si c’était une 2ème machine physique autonome. Connectez-vous sous le compte root , mot de passe root (le compte utilisateur user a lui pour mot passe user) 3 – Configuration réseau de la machine cliente Selon le schéma de la salle, déterminez le numéro et le nom de votre machine cliente Fedora. n°3, client-fedora-3 Modifiez alors ce nom dans le fichier de configuration /etc/sysconfig/network Affectez les paramètres IP (adresse, masque, passerelle, DNS) de votre machine cliente Fedora au début du fichier de configuration /etc/sysconfig/network-scripts/ifcfg-eth0 (le serveur Windows 2008R2 physique 192.168.0.254 jouera le rôle de passerelle et de serveur DNS du domaine de nom iutrt.lan) Redémarrez le service réseau par la commande NETWORKING=yes HOSTNAME=client-fedora-3 IPADDR=192.168.0.103 NETMASK=255.255.255.0 GATEWAY=192.168.0.254 DNS1=192.168.0.254 DOMAIN=iutrt.lan service NetworkManager restart Vérifiez alors la configuration de votre interface eth0 avec une commande à préciser. [root@client-fedora-3 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:61:AC:B2 inet adr:192.168.0.103 Bcast:192.168.0.255 Masque:255.255.255.0 Vérifiez que vous pouvez joindre les machines virtuelles clientes et serveur Fedora ainsi que les machines physiques de la salle par leurs adresses IP [root@client-fedora-3 ~]# ping 192.168.0.10x -> OK [root@client-fedora-3 ~]# ping 192.168.0.115 -> OK root@client-fedora-3 ~]# ping 192.168.0.x -> OK Essayez maintenant de les joindre par leurs noms de machines Lesquelles sont joignables et lesquelles ne le sont pas ? client-fedora-i ,…, serveur-fedora , PC-i ,…, [root@client-fedora-3 ~]# ping client-fedora-i -> KO [root@client-fedora-3 ~]# ping serveur-fedora -> OK root@client-fedora-3 ~]# ping PC-i -> OK Parmi les machines joignables par leur nom,lesquelles sont enregistrées sur le serveur DNS ? (utiliser nslookup) [root@client-fedora-3 ~]# nslookup serveur-fedora -> KO [root@client-fedora-3 ~]# nslookup PC-i -> OK Comment votre machine cliente résoud-elle le nom serveur-fedora ? (regardez votre fichier /etc/hosts) Le fichier local /etc/hosts contient la ligne 192.168.0.115 serveur-fedora serveur-fedora.iutrt.lan qui permet à la machine locale de connaitre l'adresse IP de la machine serveur-fedora sans utiliser de requete DNS Pourquoi n’est-ce pas une solution idéale de rajouter tous les noms des machines du réseau dans /etc/hosts ? Car il faudrait le faire sur toutes les machines clientes, et s'il y a un changement quelconque (ajout ou retrait d'une machine) il faut les remettre à jour sur toutes les machines 1 4 – premières modifications Ouvrez une session root distante sur une autre machine cliente fedora de la salle : Que représente l’option -X dans la commande ssh (tapez « man ssh » ) ? ssh –X root@adresse-ip [root@client-fedora-3 ~]# ssh -X [email protected] [root@client-fedora-8 ~]# -X autorise les redirections graphiques de fenetres X-Window (comme gedit) , par exemple ici celles de la machine client-fedora-8 qui vont s'afficher sur notre machine client-fedora-3. Editez le fichier /etc/hosts de cette machine distante avec la commande : gedit –-new-window /etc/hosts & Rajoutez les informations relatives à votre machine locale et enregistrer les modifications. On rajoute la ligne : 192.168.0.103 client-fedora-3 client-fedora-3.iutrt.lan Depuis la session distante, vérifiez alors que vous pouvez joindre votre machine locale par son nom avec un ping [root@client-fedora-8 ~]# ping client-fedora-3 PING client-fedora-3 (192.168.0.103) 56(84) bytes of data. 64 bytes from client-fedora-3 (192.168.0.103): icmp_seq=1 ttl=64 time=2.27 ms 64 bytes from client-fedora-3 (192.168.0.103): icmp_seq=2 ttl=64 time=0.828 ms -> OK Fermez la session ssh distante en tapant exit pour retourner sur votre machine locale 5 – Création de nouveaux utilisateurs locaux Utilisez useradd -g groupe nom pour créer un nouvel utilisateur local avec votre même identifiant que sur le réseau de l’université, et comme groupe principal users , et définissez son mot de passe avec passwd nom [root@client-fedora-3 ~]# useradd -g users toto [root@client-fedora-3 ~]# passwd toto Changement de mot de passe pour l'utilisateur toto. Nouveau mot de passe : Retapez le nouveau mot de passe : passwd : mise à jour réussie de tous les jetons d'authentification. Vérifiez les modifications du fichier /etc/passwd et dans le répertoire /home et notez le UID qui a été attribué [root@client-fedora-3 ~]# grep toto /etc/passwd toto:x:501:100::/home/toto:/bin/bash => UID = 501 [root@client-fedora-3 ~]# ls -ld /home/toto drwx------ 4 toto users 4096 avril 12 17:23 toto Fermez la session graphique et logez vous sous ce nouveau compte pour vérifier sa bonne activation. Relogez vous de nouveau en root. Pourriez-vous vous loger avec ce compte sur les autres machines du réseau local ? Loging sous toto -> ok. On ne peut pas se loger avec ce compte sur les autres machines du réseau car ce comppte a été créé en local sur notre machine et n'existe donc pas sur les autres. 6 – Configuration de votre machine cliente fedora en client d’un domaine NIS Nous allons préparer la configuration de la machine cliente pour utiliser les informations d’un serveur de domaine NIS Editez le fichier /etc/sysconfig/network sur votre machine cliente et ajoutez-y une ligne pour définir le domaine NIS C309 (rechercher sur internet : « /etc/sysconfig/network domaine nis») Ligne rajoutée NISDOMAIN=C309 Editez le fichier /etc/yp.conf , décommentez et modifiez y une ligne pour prendre en compte le domaine NIS et son serveur (on utilisera l’adresse IP du serveur fedora pour éviter les problèmes de résolution de noms) Ligne modifiée # domain NISDOMAIN server HOSTNAME modifiée en domain C309 server 192.168.0.115 2 7 – Création du domaine NIS et configuration du serveur Les manipulations qui suivent configurent la machine serveur Fedora en serveur de domaine NIS C309 L'étudiant le plus rapide effectuera les modifications des fichiers de configurations, les autres vérifieront les fichiers modifiés. Modifiez (à distance) si nécessaire les fichiers /etc/sysconfig/network et /etc/yp.conf de la machine serveur pour avoir la même configuration que sur votre machine cliente (configuration « client du domaine NIS »). Est-il nécessaire que le serveur d’un domaine NIS soit également client NIS de ce domaine ? En quoi est-ce intéressant ? Seul l'étudiant le plus rapide doit modifier les 2 fichiers sur le serceur, les autres se contentent de verifier les modifs Il n'est pas nécessaire que le serveur d’un domaine NIS soit également client NIS de ce domaine. Cela permet juste d'assurer une cohérence de configuration entre toutes les machines du domaie NIS, clientes et serveur. Editez le fichier /var/yp/Makefile, et modifiez la ligne MINUID=500 en MINGID=100. Pourquoi faut-il faire ceci pour un bon fonctionnement du système (regarder quel groupe a pour GID 100) ? # MINGID is the lowest gid that will be included in the group maps. MINUID=500 MINGID=100 tous les comptes utikidateurs que nous créons appartiennent au groupe 'users' et on donc un GID=100 il faut donc que MINGID soit >= 100 pour que les configurations de comptes soient pris en compte par NIS Editez (à distance) le fichier /etc/hosts du serveur, et rajoutez une ligne correspondante à votre machine cliente. Ligne rajoutée On rajoute la ligne : 192.168.0.103 Exécutez (à distance) sur le serveur les commandes : client-fedora-3 client-fedora-3.iutrt.lan ypdomainname C309 service rpcbind restart service ypserv restart service yppasswdd restart chkconfig rpcbind on chkconfig ypserv on chkconfig yppasswdd on sélectionne le domaine NIS sans redémarrer (re)lance les services nécessaires au serveur NIS enregistre ces services pour qu’ils se lancent automatiquement au démarrage de la machine Exécutez (à distance) sur le serveur la commande d’initialisation des maps NIS : (tapez Ctrl+D puis y aux questions posées) /usr/lib/yp/ypinit –m A quoi correspondent les options -m et -s ? l'option -m sert à initialiser sur serveur NIS maître, alors que -s sert à initialiser sur serveur NIS esclave (slave) Ici, comme nous n'avons qu'un seul serveur NIS, il doit être maitre. Exécutez (à distance) sur le serveur les commandes permettant de (re)lancer et d’exécuter au démarrage le service « client NIS » service ypbind restart chkconfig ypbind on Vérifiez que vous pouvez bien lire la liste des utilisateurs du domaine NIS : ypcat passwd [root@serveur-fedora ~]# ypcat passwd user:$6$zQvHBLTOo.JABvoS$KvxcABlbSmTtuxzSOqquRamEruCNzDDHYPq9NSrIeu1KzF5.zDhVdwvFBFGB4/VkOeR Z1rNvoFbsQNYZcQFLm.:500:500:Etudiant IUT:/home/user:/bin/bash john:$6$k1yP9z3F$4lPM/Pxhc9TEjlZhvR9RuW8aqCEsiGxoPTTu9jAfp3Wh2gfRnpiySuxaukiN7lBP7.rgvA5Q/GzIw6fVoN B5d0:501:100::/home/john:/bin/bash Créez (à distance) sur la machine serveur avec useradd le même utilisateur local que sur votre machine cliente en 5. Examinez ensuite le fichier /etc/passwd pour noter le UID qui lui a été attribué et vérifier son GID. [[root@serveur-fedora ~]# useradd -g users toto [root@serveur-fedora ~]# passwd toto [root@client-fedora-3 ~]# grep toto /etc/passwd toto:x:504:100::/home/toto:/bin/bash => UID = 504 Lancez la mise à jour des fichiers des maps du serveur NIS par la commande : Vérifiez que ce nouvel utilisateur est bien enregistré dans le domaine NIS make -C /var/yp ypcat passwd [root@serveur-fedora ~]# make -C /var/yp ............................................................. [root@serveur-fedora ~]# ypcat passwd | grep toto toto:$6$gfx0DUHW$vwrX0Tmvfz5cCVhBPDJiLrfdN9IqlmOM3GYhv8FLQgaa1xQwrJ2vsRzTlEpltihu4aZlkOAI/8k5URyUa oADt.:504:100::/home/toto:/bin/bash 3 8 – Test sur votre machine cliente pour de l’utilisation du domaine NIS Tapez sur votre machine cliente les commandes pour sélectionner sans redémarrer le domaine NIS puis pour lancer immédiatement et enregistrer au démarrage de la machine le service « client NIS » C309 [root@client-fedora-3 ~]# ypdomainname C309 [root@client-fedora-3 ~]# service ypbind restart ............................................................. [root@client-fedora-3 ~]# chkconfig ypbind on Vérifiez avec la commande ypcat que vous pouvez accéder à la liste des utilisateurs du domaine NIS (passwd), des groupes du domaine NIS (group) et des résolutions de noms des machines du domaine NIS (hosts) [root@client-fedora-3 ~]# ypcat passwd ............................................................. [root@client-fedora-3 ~]# ypcat group ............................................................. [root@client-fedora-3 ~]# ypcat hosts Essayez de joindre par un ping les autres machines du domaine NIS par leurs noms. Expliquer le résultat. [root@client-fedora-3 ~]# ping client-fedora-7 -> impossible pourtant la machine client-fedora-7 est citée dans la réponse à ypcat hosts (informations fournies par NIS) c'est donc que NIS n'a pas été utilisé pour résoudre son nom Editez le fichier /etc/nsswitch.conf et modifier le pour prendre compte en priorité le domaine NIS pour la gestion des utilisateurs (lignes passwd: , shadow: et group:) et la résolution des noms des machines (ligne hosts:) Lignes modifiées avant : après : passwd: files passwd: nis files shadow: files shadow: nis files group: files group: nis files hosts: files dns hosts: nis files dns remarque : nis n'était effectivement pas utilisé auparavent pour hosts Ressayez maintenant de joindre par un ping les autres machines du domaine NIS par leurs noms. [root@client-fedora-3 ~]# ping client-fedora-7 -> ok [root@client-fedora-3 ~]# ping serveur-fedora -> ok Tous les ping fonctionnent car tous le monde car on utilise mainteant nis pour résoudre les noms, et que tout les monde a ajouté les infos de leur machine dans le hosts du serveur Tapez la commande : Résultat ls -l /home [root@client-fedora-3 ~]# ls -l /home drwx------ 24 etudiant etudiant 4096 avril 9 22:23 etudiant drwx------ 24 john users 4096 avril 9 22:23 toto Que remarquez-vous de particulier ? Pourquoi ? Quel est le seul étudiant de la salle qui n’a pas ce problème ? Pourquoi ? Le répertoire /home/toto que nous avons créé précédement (homme directory de toto) apprtient normalement à toto Or il apparait comme ayant comme propriétaire john Cela est du au fait qu'en local, titi a pour UID 501, qui est le UID de john sur le serveur NIS Comme on utilise NIS en priorité pour l'authentification, la conversion UID -> nom se fait avec NIS, et explique le résultat Seul john n'a pas le pb : c'est l'étudiant le plus rapide qui a crée son compte sur les serveur NIS le premier, il a lUID NIS 501 Fermez la session et essayer de vous reconnecter avec un des comptes NIS autre que le vôtre. Pourquoi n’y parvenez-vous pas alors que l’identification NIS est prioritaire ? On peut s'authentifier (rentrer le nom de login et le mot de passe) avec un compte NIS quelconque, par expl john, mais nous n'avons pas créé en local de home directory pour les autres utilisateurs NIS que titi -> la procédure de login échoue car elle ne trouve pas de répertoire /home/john Essayez maintenant de vous reconnecter avec votre compte utilisateur. Pourquoi seul un étudiant y parvient alors que tous ont des répertoires à leurs noms dans /home ? Notre compte toto local a un UID 501 L'authentification avec le compte toto se fait par NIS, or la version NIS de ce compte a un UID de 504 On s'authentifie donc avec un UID de 504, alors que le home drectory /home/toto appartient à 501 => erreur Le seul etudiant a ne pas avoir le pb est john, le plus rapide, qui a un UID NIS de 501 Reconnectez vous en root , désactivez le service « client NIS » : Supprimez votre compte local avec la commande : Redémarrez ensuite le service « client NIS » : 4 service ypbind stop userdel nomUtilisateur service ypbind restart 9 – Montage NFS d’un répertoire utilisateur Pour qu’un utilisateur du domaine NIS puisse se loger sur les machines du domaine, il faut que celles-ci possèdent un home directory local à son nom. L’inconvénient est alors que si cet utilisateur travaille successivement sur plusieurs machines différentes du domaine, ses documents ne seront pas centralisés mais dispersés sur les différentes machines. Editez (à distance) le fichier /etc/exports du serveur et rajoutez-y une ligne de la forme suivante pour « exporter » le home directory de votre compte utilisateur NIS du serveur : /home/nomDeLogin 192.168.0.0/24(rw,sync,no_subtree_check) Expliquez le rôle et les options de la ligne rajoutée La ligne signifie que le dossier du serveur /home/nomDeLogin peut etre "monté" à distance en NFS par toutes les machines du réseau 192.168.0.0/24. L'option 'rw' signifie que le montage peut s'effectuer en lectuere-écriture, l'option 'sync' assure la synchronisation entre le contenu du dossier monté et du dossier original distant et l'option 'no_subtree_check' signifie que les sous-répertoires ne sont pas vérifiés au montage. Relancez (à distance) le serveur NFS : service nfs restart Affichez la liste des exportations du serveur sur votre machine cliente : showmount --exports 192.168.0.115 [root@client-fedora-3 ~]# showmount --exports 192.168.0.115 Export list for 192.168.0.115: /home/toto 192.168.0.0/24 /home/john192.168.0.0/24 Sur la machine cliente, recréez un dossier vide /home/nomDeLogin et montez-y le dossier distant exporté sur le serveur rm -r -f /home/nomDeLogin ; mkdir /home/nomDeLogin mount -t nfs 192.168.0.115:/home/nomDeLogin /home/nomDeLogin Fermez la session et essayez de vous reloger sur la machine cliente avec le compte associé au home directory monté Que se passe-t-il maintenant ? Double-cliquez sur l’icône Home du bureau. Ou se trouve le dossier affiché ? La session s'ouvre correctement avec l'authentification NIS et le bureau apparait. Le double-clic sur l'icone HOME affiche le contenu du dossier /home/nomDeLogin, qui est en fait situé (par le montage NFS) sur le serveur Pourquoi n’est-il pas judicieux d’effectuer ce montage automatique pour chaque compte d’utilisateur au boot ? Cela n'est pas judicieux car il faudrait le faire pour tous les utilisateurs NIS, que l'on ne connait pas forcément. De plus il faufrait modifier ces montages lors de l'ajout ou la suppression d'un utilisateur NIS (et ajouter ou supprimer les dossiers locaux servant de point de montage). Enfin, cela serait à reproduiresurchacunedes machines clientes NIS/NFS 10 – Configuration du montage automatique NFS de tous les répertoires utilisateurs Relogez vous en root et démontez le répertoire /home/nomDeLogin : umount /home/nomDeLogin Editez (à distance) le fichier /etc/exports de la machine serveur et supprimez la ligne correspondant à votre home directort, puis rajoutez la ligne suivante si elle n’est pas déjà présente : /home 192.168.0.0/24(rw,sync,no_subtree_check) Supprimez le contenu du répertoire /home sur votre machine cliente : rm –r -f /home/* Editez le fichier /etc/fstab de votre machine cliente et rajoutez la ligne suivante : 192.168.0.115:/home /home nfs defaults 0 0 Expliquez ce qu’entraine cette modification sur le montage au démarrage de l’ordinateur. Qu’elle en est son intérêt ? Le dossier local /home est entièrement "monté" en NFS sur le dossier /home du serveur au démarrage. Ainsi tous ses sous-dossiers, qui sont les "home directories" du serveur, sont "vus" comme des "home directories" sur la machine cliente locale pour tous les utilisateurs du serveur, qui sont en fait les utilisateurs NIS L'intéret est donc de pouvoir directement sansautre configuration se logger sous n'importe quel compte NIS, en utilisant directement à distance le "home directory" correspondant sur le serveur. Redémarrez complètement la machine cliente et vérifiez que vous pouvez vous connecter avec votre compte utilisateur ainsi que ceux de tous les utilisateurs du domaine NIS (les autres étudiants). 5