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

Documents pareils