Présentattion Le service NIS (Network Information System) Exposée préparée et présentée par: Cheikh Seck Ousmane Wagué Adjanohoun Amadou Tijane Présentattion
Plan de l’exposée: MISE EN PLACE ET CONFIGURATION DU NIS 1.generalités 1.1.presentation du nis 1.2.fonctionnement du nis 1.3.installation du nis 2.configuration 2.1.configuration du serveur nis 2.2.configuration d'un client nis 2.3.configuration d'un serveur secondaire 2.4.test de fonctionnement du nis 3.problemes de fonctionnement du nis 4. Conclusion
Définition L'objectif central de tout serveur de fichiers d'un réseau local est de permettre aux utilisateurs du réseau de se connecter au serveur de fichier sous un compte centralisé au niveau du réseau, et non pas défini machine par machine et aussi d' accéder à ses fichiers (répertoire personnel, ...) NIS est donc un ensemble d'outils qui permet la gestion centralisées des mots passe des utilisateurs au niveau du serveur permettant ainsi à ces utilisateurs de se connecter sur n'importe quelles machines du réseau .Il permet aussi la résolution locale des noms de machines, le partage et la mise à jour de petites bases de données sur un réseau .Il a été développé par SUN et à l'origine s'appelait YP (Yellow Pages). Yellow Page étant une marque déposée par British Télécom, SUN fut contraint d'utiliser un autre nom: NIS . C'est pourquoi vous trouverez beaucoup de commandes NIS ayant le préfixe "yp". Ce qui suit concerne une distribution à base de RedHat . Si à l'origine cela s'appelait "Yellow Pages" (Pages Jaunes) c'est simplement que les bases de données contiennent les adresses des machines, comme dans un annuaire : /etc/hosts = annuaire des machines /etc/passwd = annuaire des utilisateurs /etc/group = annuaire des groupes....etc. .
Fonctionnement du NIS NIS fonctionne sur le principe "clients-serveur", et gère une base de données sur le serveur pour que chaque machine du réseau, sur laquelle tourne un client NIS, puisse interroger le serveur pour obtenir des informations : Cela permet une gestion transparente et centralisée des machines reliées au réseau . NIS tient à jour sa base de données à l'aide de "cartes" (map) contenant des paires "mots_clef/valeurs" stockées sur une machine "hôte" (Serveur), sur laquelle se trouve le "serveur NIS" . Les machines "clients" iront chercher les informations dans la base de données sur le serveur NIS . Les cartes seront générées pour chaque type de clef de recherche pour chaque fichier, par exemple : Pour effectuer une recherche par nom de machine et par adresse IP dans le fichier /etc/hosts , deux cartes NIS seront construites : l'une nommée hosts.byname et l'autre hosts.byaddr . Voici un petit tableau des principales cartes le plus souvent générées : Fichiers Cartes ------------------------------------------------------------------------------------------- /etc/hosts hosts.byname hosts.byaddr /etc/passwd passwd.byname passwd.byuid /etc/group group.byname group.bygid
Chaque ensemble serveur NIS et Clients NIS formera un "domaine NIS" à ne pas confondre avec le nom de domaine de votre réseau ou le nom de domaine Internet. Vous pouvez attribuer le nom que vous désirez pour votre "domaine NIS" comme par exemple « licence »,dans notre cas. Pour améliorer l'utilisation de NIS, autant pour l'administrateur que pour les utilisateurs, il est judicieux de centraliser tous les comptes utilisateurs dans le répertoire /home du serveur NIS pour les exporter vers la machine client depuis laquelle se "logue" un utilisateur : Cela permet à chaque utilisateur de retrouver son répertoire de base quelque soit la machine depuis laquelle il se connecte .
Installation Les packages NIS ce trouvent certainement sur votre CD d'installation (RedHat). La mise en place de NIS à partir de RedHat nécessite l'installation des packages suivants : Pour le serveur uniquement : ypserv-1.3.7-3.i386.rpm Et pour les clients : ypbind-3.3-20.i386.rpm et yp-tools-2.2-1.i386.rpm Cette installation va créer un ensemble de fichiers se trouvant sous /usr/sbin commençant par yp, et des fichiers dans le répertoire /etc/rc.d/init.d pour le lancement automatique et d'autres dans /var/yp et /usr/lib/yp. Les démons à lancer sont ypserv et yppasswd (sur le serveur) et ypbind (sur les clients). ypserv est le démon NIS, yppasswd est le démon qui permet de changer les mots de passe contenus dans les cartes (map) passwd quelque soit la machine (client ou serveur) où se "loge" l'utilisateur . Il faut aussi lancer obligatoirement le portmap qui représente le concierge pour chaque machine;autrement dit c'est le portmap qui connait les ports du service nis. Lancement automatique Sur une RedHat, les packages RPM ont en principe installé ces script, mais vérifiez que, pour un démarrage automatique, dans le répertoire /etc/rc.d/init.d les fichiers ypserv yppasswdd et ypbind sont présents . Pour lancer les différents démons, il suffit de taper les commandes: #/etc/rc.d/init.d/ypserv start #/etc/rc.d/init.d/ypasswdd start #/etc/rc.d/init.d/ypbind start #/etc/rc.d/init.d/portmap start
2.CONFIGURATION Avant de commencer vous devez : Choisir la machine qui sera le serveur NIS, de préférence une machine fiable , rapide et effectuant peu de requète vers les autres machines (comme un serveur de fichier, mail ...) de façon à obtenir un temps de réponse satisfaisant aux demandes des clients . Déterminer si un serveur secondaire vous sera utile, si vous avez beaucoup de machines connectées et/ou un trafic intense il peut être nécessaire (et même conseillé) de configurer une autre machine pour seconder vôtre serveur NIS . Et enfin déterminer le nom de vôtre domaine NIS, ce nom doit être complètement indépendant du nom de domaine internet/intranet : Exemple : Dans notre CAS on prendra « licence » comme nom de domaine NIS, correspondant à un réseau dont le domaine est « isi.sn » . Admettons que ce réseau utilise les adresses IP 192.168.10.x et que le serveur NIS a l'adresse 192.168.10.7 avec un masque /16 et porte le nom "poste1" (poste1.isi.sn).
Configuration 2.1.CONFIGURATION DU SERVEUR NIS Choisir un nom de domaine NIS, soit licence par exemple, indépendamment du nom de domaine du réseau, par exemple isi.sn , et également sans rapport avec un éventuel nom de domaine Samba . Supposons de plus que le serveur ait pour adresse IP : 192.168.10.7 avec un masque /16 Déclaration du domaine NIS Editer le fichier /etc/sysconfig/network, et y ajouter cette ligne : NISDOMAIN=licence Relancer le serveur par /etc/rc.d/init.d/ypserver restart Vérification : En executant la commande domainname on doit obtenir comme réponse le nom de domaine NIS (licence) Préciser les machines autorisées à accéder au service NIS Editer le fichier /var/yp/securenets et insérer les lignes: # pour permettre l'accès sur le serveur même 255.0.0.0 127.0.0.0 # pour permettre l'accès de toutes les machines du sous-réseau masque et adresse réseau 255.255.0.0 192.168.10.0
1°) Préciser si vous utiliserez un Secondaire . Editez le fichier /var/yp/Makefile et ajoutez les lignes suivantes: mettre true dans le cas contraire false NOPUSH=true 2°) Préciser les informations que NIS doit gérer Listez sur la ligne commençant par all: les données à gérer All :Il est recommandé de ne rien modifier d'autre sauf "si on sait ce que l'on fait...", car pour l'essentiel il a été correctement paramétré lors de l'installation de la distribution. passwd group hosts 3°) Préciser si vous utilisez les shadows files (fichiers de mots de passe cryptés) Si vous utilisez les shadow password mettre true si non false MERGE_PASSWD=true MERGE_GROUP=true
/etc/passwd, /etc/ group et /etc/hosts. Générer les cartes Il s'agit maintenant de créer les 3 cartes (maps) correspondant aux 3 fichiers choisis dans all /etc/passwd, /etc/ group et /etc/hosts. L'utilitaire /usr/bin/make doit être exécuté par root dans le répertoire du Makefile. Pour cela allez dans le répertoire /var/yp en tant root et tapez la commande make # cd /var/yp # make Il y a création d'un sous-répertoire /var/yp/licence (portant le nom du domaine NIS) contenant les 6 fichiers binaires de permissions 600 : hosts.byname, hosts.byaddr, passwd.byname, passwd.byuid, group.byname et group.bygid Renseigner le fichier de configuration de NIS sur le réseau Editer le fichier /etc/ypserv.conf et indiquer l'adresse IP du réseau comme ci-dessous : # Host : Map : Security : Passwd_mangle 192.168.10.0 : passwd.byname : port : yes 192.168.10.0 : passwd.byuid : port : yes g: Relancer le serveur /etc/rc.d/init.d/ypserv restart Le serveur devrait être fonctionnel.
2.2 Configuration d'une machine client Lancement des services Pour lancer à la main les services passer les 2 commandes dans l'ordre /etc/rc.d/init.d/portmap start (ce qui exécute rpc.portmap) /etc/rc.d/init.d/ypbind start choix du nom de domaine il s'agit de donner le même nom de domaine que sur le serveur;tapez la commande : #domainname licence Indiquez à NIS le domaine utilisé Dans /etc/sysconfig/network, comme sur le serveur il faut déclarer le nom du domaine en ajoutant la ligne NISDOMAIN = licence Indiquez à Nis le Serveur utilisé Editer /etc/yp.conf, et y ajouter les 2 lignes domain licence server 192.168.10.7 ypserver 192.168.10.7 Editer /etc/nsswitch.conf, et veillez à la présence active des lignes passwd: files nis group: files nis hosts: files nis dns Lancer le service client En ligne de commande, lancer le service client.: /etc/rc.d/init.d/ypbind Start
2.3. configuration d'un serveur secondaire Vérifier que le futur serveur secondaire est configuré en tant que client NIS et qu'il marche bien. A. sur le serveur principal NIS Pour indiquer le serveur secondaire, tapez : /usr/lib/yp/ypinit -m Entrez le nom du serveur secondaire et terminez la saisie par Ctrl + D Edite le fichier /var/yp/Makefile et modifier la ligne : NOPUSH =false. Ensuite tapez make pour effectuer la mise à jour des cartes sur le serveur secondaire. Celui-ci met à jour sa base de données en y intégrant les nouvelles informations et les distribue à ses clients via la touche NOPUSH.> B. sur le serveur secondaire Il suffit d'exécuter /usr/lib/yp/ypinit -s licence. et c'est fini ,il ne reste qu'à tester votre NIS .Pour savoir si le serveur secondaire marche, il suffit d’eteindre le serveur principale et de constater que les machines clientes parviennent à se connecter au secondaire, si ça marche c’est OK !
2.4.TEST DE FONCTIONNEMENT DU NIS Il suffit, en tant qu'utilisateur de vous "loger" sur toutes vos machines (clients et serveur) pour vérifier si vous retrouver votre espace de travail, puis d'utiliser les commandes des yptools : On peut afficher le nom du serveur NIS avec la commande ypwhich #ypwich Et vous obtiendrez le nom de la machine serveur NIS . #ypcat passwd Et vous obtiendrez la liste de tous les comptes utilisateurs accessibles sur le réseau. On peut changer son mot de passe avec la commande yppasswd Pour modifiez son mot de passe, il faut maintenant utiliser la commande yppasswd : vous ne devez plus taper passwd mais yppasswd pour que la carte passwd soit mise à jour sur le serveur NIS. Une solution (pour ne pas changer vos habitudes) consiste à établir un lien symbolique de yppasswd vers passwd Sur les postes clients, renommez passwd : mv /usr/bin/passwd /usr/bin/passwd.org Puis faire un lien de passwd vers yppasswd #ln -s /usr/bin/yppasswd /usr/bin/passwd
Et vous pourrez continuer d'utiliser la commande passwd pour mettre simultanément à jour les cartes du serveur.IL est possible que vous ayez un délai entre le moment où vous entrez votre nouveau mot de passe et le moment où le serveur NIS met à jour ses cartes. Ne soyez pas surpris si après modification du mot de passe, l'accès vous est refusé, il suffit d'entrer l'ancien mot de passe ou d'attendre un peu .. A chaque fois que sur le serveur NIS vous modifiez un des fichiers qui servent à générer les cartes il faut mettre à jour les cartes avec la commande : cd /var/yp make
3.Probléme de fonctionnement de NIS Le problème fondamental qui se pose avec le NIS,c'est que les utilisateurs n'ont pas directement accès à leur répertoire de base dès leur première connexion .Pour résoudre ce problème nous vous proposons cette proposons Exporter le répertoire /home(serveur) sous /export/home(clients) : IL suffit alors d'utiliser un autre répertoire de montage, ici j'ai choisi "export" en relation avec le fichier /etc/exports mais vous pouvez utiliser n'importe quel nom pour ce répertoire : Et le répertoire /home exporté du serveur NIS sera monté sous /export/home des postes clients . Dans ce cas, sur le serveur NIS créez comme dans le choix précédent les répertoires de base de chaque utilisateur sous /home . Puis modifiez le fichier /etc/passwd pour remplacer /home par /export/home la ligne : mic:x:504:500:Modeleur 3D:/home/mic:/bin/bash deviendra : mic:x:504:500:Modeleur 3D:/export/home/mic:/bin/bash IL faut maintenant, après modification de /etc/passwd, mettre à jour les cartes passwd, tapez: #cd /var/yp puis taper #make et relancer le serveur NIS : /etc/rc.d/init.d/ypserv restart Sur les postes clients, pour que chaque utilisateur retrouve son espace de travail sous /export/home, sans avoir à modifier son répertoire /home, on montera le répertoire /home du serveur NIS sous un répertoire /export/home de la machine client : Pour cela du coté du client taper la ligne commande : 3.Probléme de fonctionnement de NIS
#mount -t nfs nom_ou_@ip_du_serveur:/home /export/home A noter que le point de montage /export/home doit au préalable être créé coté client.
conclusion Pour une bonne gérance et l’obtention de plus de sécurité pour les machines d’un réseau le serveur N.I.S demeure être un outil fiable Nous avons donc la présenter un outil qui permet de gérer une bonne gestion transparente et centralisée des machines reliées au réseau par le biais d’une base de donnée .
webographie http://cern91.tuxfamily.org/linux/ http://www.ac-creteil.fr/reseaux/systemes/linux http://www.urec.cnrs.fr/cours/