• Aucun résultat trouvé

Introduction au service NIS

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction au service NIS"

Copied!
11
0
0

Texte intégral

(1)

Philippe Latu philippe.latu(at)inetdoc.net http://www.inetdoc.net

Résumé

Network Information Service (NIS) est un service simple de partage de la base de données utilisateur et des informations d'hôtes sur un réseau local. Même s'il peut encore être utile, ce service est

aujourd'hui démodé et largement supplanté par les annuaires LDAP. Ce document présente la configuration et l'utilisation du service avec une singularité : la mise en œuvre dans un contexte dual stack IPv4 + IPv6. NIS est un exemple de service qui ne fonctionne que sur la pile IPv4 alors que l'environnement immédiat peut utiliser IPv6.

Table des matières

1. Copyright et Licence ... 1

1.1. Méta-information ... 1

2. Adressage IP des postes de travail ... 1

3. Principes du service NIS ... 2

4. Configuration du serveur NIS ... 3

5. Configuration du client NIS ... 6

6. Documents de référence ... 11

1. Copyright et Licence

Copyright (c) 2000,2015 Philippe Latu.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Copyright (c) 2000,2015 Philippe Latu.

Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.3 ou toute version ultérieure publiée par la Free Software Foundation ; sans Sections Invariables ; sans Texte de Première de Couverture, et sans Texte de Quatrième de Couverture. Une copie de la présente Licence est incluse dans la section intitulée « Licence de Documentation Libre GNU ».

1.1. Méta-information

Ce document est écrit avec DocBook1 XML sur un système Debian GNU/Linux2. Il est disponible en version imprimable au format PDF : sysadm-net.nis.qa.pdf3.

2. Adressage IP des postes de travail

Tableau 1. Adressage IP des postes de travail

Poste 1 Poste 2 Passerelle par défaut

alderaan bespin 10.7.10.1/23

centares coruscant 192.168.110.129/25

dagobah endor 172.19.113.65/26

1 http://www.docbook.org

2 http://www.debian.org

3 http://www.inetdoc.net/pdf/sysadm-net.nis.qa.pdf

(2)

Poste 1 Poste 2 Passerelle par défaut

felucia geonosis 10.3.2.1/23

hoth mustafar 172.19.114.129/26

naboo tatooine 192.168.111.1/25

Toutes les questions doivent être traitées avec le document de référence : The Linux NIS(YP)/NYS/

NIS+ HOWTO4. Il faut cependant faire la correspondance entre les services décrits dans ce document et les paquets de la distribution Debian GNU/Linux. C'est la raison pour laquelle la page Debian NIS howto5 est aussi fournie en référence.

Pour chaque paire de postes de travaux pratiques, il faut attribuer les rôles de serveur et de client. Le serveur doit exporter sa base de données utilisateur et ses fichiers de configuration et le client doit pouvoir y accéder à l'aide des appels de procédures distants (RPC).

Dans la suite de la section, on considère que tous les postes 1 sont clients et les postes 2 sont serveurs.

Rôle 'client' attribué par défaut dans le paquet NIS

Ces travaux pratiques se limitent à l'utilisation du service NIS «classique». On ne s'intéresse pas aux variantes NIS+ et NYS.

Le paquet nis de la distribution Debian GNU/Linux est configuré par défaut pour un mode de fonctionnement client. La recherche du serveur NIS s'effectue avec des requêtes de diffusion. Il faut donc attendre que ces requêtes aient échoué pour débuter les opérations de configuration.

3. Principes du service NIS

Le service d'information réseau ou Network Information Service (NIS) est une méthode de distribution d'éléments de configuration système sur les postes d'un réseau local. C'est un service réseau

«historique» développé par Sun Microsystems™ au début des années 80. Il fonctionne sur le mode Client/Serveur à partir d'une base de données «à plat» (flat bindery base).

La base de données NIS est dite «à plat» parce qu'elle ne possède qu'un niveau d'organisation par opposition aux annuaires LDAP ou Active Directory qui possèdent une arborescence d'unités organisationnelles (OU). L'administration de cette base de données est donc beaucoup plus simple qu'un annuaire mais elle est limitée en granularité. Cette limitation devient critique lorsque la population des utilisateurs et des postes de travail dépasse les seuils critiques habituels. L'emploi du service NIS, tel qu'il est présenté ici, ne peut dépasser la centaine d'utilisateurs.

Comme tous les services qui datent des années 80, le service NIS possède de nombreuses limites en termes de sécurité. Il est possible de collecter toutes les informations échangées entre client et serveur à l'aide d'une capture réseau. On peut ainsi illustrer les faiblesses de mots de passes mal composés et justifier l'emploi de technologies plus sophistiquées et plus contemporaines telles que Kerberos.

Bien que les limites et les failles du service NIS soient connues depuis longtemps, on continue à l'exploiter dans certains contextes tels que les réseaux locaux scientifiques non reliés à l'Internet. La simplicité d'administration du service reste un argument pertinent dans ces domaines d'exploitation.

Serveur NIS

Le serveur NIS est, à la base, un poste de travail comme les autres. Ce sont ses paramètres ou fichiers de configuration système qui servent de référence pour l'ensemble du domaine NIS.

Ces paramètres système de référence sont intégrés dans une base de données que l'on peut interroger à l'aide de requêtes RPC.

La configuration du serveur NIS consiste donc à créer la base de données en définissant les éléments à exploiter sur le réseau local : comptes utilisateurs, noms d'hôtes, noms de réseau, automontage NFS, etc.

4 http://www.linux-nis.org/nis-howto/HOWTO/

5 http://www.linux-nis.org/doc/nis.debian.howto

(3)

Ensuite, il faut exécuter les processus de traitement des requêtes reçues lors des appels RPC.

Client NIS

Le client NIS doit interroger le serveur dès qu'un paramètre système n'est pas défini localement dans ses propres fichiers de configuration.

La configuration du client consiste à désigner le serveur NIS et à exécuter les processus qui permettent d'émettre les appels RPC pour interroger la base de données.

Pour la petite histoire, Sun Microsystems™ souhaitait appeler ce service Yellow Pages du même nom que les annuaires téléphoniques professionnels. Comme ce nom était une marque déposée, il a fallu rebaptiser le service en Network Information Service. Les commandes utilisateurs ont cependant conservé le préfixe yp : ypinit, ypcat, etc.

4. Configuration du serveur NIS

Le serveur NIS est un hôte dont les fichiers de configuration servent de référence pour tous les autres hôtes qui sont ses clients. Ses fichiers de configuration ne présentent pratiquement pas de particularité. Ils sont diffusés sur le réseau via le démon ypserv à destination des clients du même domaine NIS.

Q1. Quel est le paquet qui contient les outils du service NIS ? Comment installer ce paquet ?

Rechercher la chaîne de caractères "network information service" dans les descriptions de paquets pour identifier le paquet à installer.

Identification du paquet :

$ aptitude search '?description(network information service)'

p libnet-nis-perl - Interface to Sun's Network Information Service p melange - IPAM management service for Openstack - Daemons

p nis - clients and daemons for the Network Information Service (NIS) p python-melange - IPAM management service for Openstack - Python library

Installation du paquet nis :

# aptitude install nis

Les NOUVEAUX paquets suivants vont être installés : libgssglue1{a} libslp1{a} libtirpc1{a} nis rpcbind{a}

<snipped/>

[ ok ] Starting rpcbind daemon....

Paramétrage de nis (3.17-32) ...

[ ok ] Stopping NIS services: ypbind ypserv ypppasswdd ypxfrd.

[info] Setting NIS domainname to: nis.lab.

[FAIL] Starting NIS services: ypbind[....] binding to YP server..failed (backgrounded).

. ok

Lors de l'installation du paquet, on attribue un nom de domaine NIS. Dans cette exemple, le domaine est : nis.lab. Ce nom de domaine est à priori sans rapport avec le service de résolution des noms de domaine de l'Internet : le service DNS.

Q2. Quelle est l'opération à effectuer pour affecter le rôle NIS du poste ? Quel est le fichier de configuration concerné ?

Consulter le script système de lancement du service (runlevels) et identifier le fichier de configuration à éditer.

# grep '/etc/default' /etc/init.d/nis

# Customize the variables in /etc/default/nis rather than here [ -f /etc/default/nis ] && . /etc/default/nis

test -f ${NET}/ypbind -a -f /etc/defaultdomain || exit 0 nname=`cat /etc/defaultdomain`

Le répertoire /etc/default/ contient les fichiers de paramétrage des services. Ces fichiers sont consultés à chaque lancement des services à partir des scripts d'initialisation (runlevels) du répertoire /etc/init.d/. Il faut donc éditer le fichier /etc/default/nis pour affecter le rôle client ou serveur.

(4)

Dans le cas du serveur, il est pas nécessaire de modifier ce fichier sachant que le rôle client est attribué par défaut. Pour faciliter la mise au point, il est aussi très pratique de se déclarer client de son propre service.

# grep ^NIS /etc/default/nis NISSERVER=master

NISCLIENT=true NISMASTER=

Q3. Quelle est l'opération à effectuer pour désigner le serveur NIS ? Quel est le fichier de configuration concerné ?

Rechercher les éléments relatifs à la la désignation du serveur dans la liste des fichiers de configuration fournis avec le paquet.

Éditer ce fichier en indiquant l'adresse IP du serveur NIS.

Le fichier recherché est yp.conf.

# dpkg -L nis | grep 'yp.conf' /usr/share/man/man5/yp.conf.5.gz /etc/yp.conf

Dans notre cas le fichier contient les deux instructions suivantes.

# grep -v '^#' /etc/yp.conf ypserver ::1

ypserver 127.0.0.1

Note

Cet exemple est basé sur l'utilisation d'une double pile réseau IPv4 + IPv6. La capture réseau donnée ci-avant montre que seule la pile réseau IPv4 est utilisée par le démon client NIS.

Q4. Quel est l'outil qui permet de lister les services accessibles via un appel RPC ? Comment peut- on relancer le service NIS s'il n'est pas actif ?

Rechercher dans le support The Linux NIS(YP)/NYS/NIS+ HOWTO6 l'outil utilisé pour interroger le multiplexeur d'appel de procédure distant.

L'outil à utiliser est rpcinfo. Il est fourni par le paquet rpcbind.

# dpkg -S `which rpcinfo`

rpcbind: /usr/sbin/rpcinfo

L'option historique -p liée à IPv4 a été remplacée par -s pour tenir compte des deux protocoles de couche réseau. Voici un exmple d'exécution.

# rpcinfo -s

program version(s) netid(s) service owner 100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser 100004 1,2 tcp,udp ypserv superuser 100009 1 udp yppasswdd superuser 600100069 1 tcp,udp fypxfrd superuser 100007 1,2 tcp,udp ypbind superuser 100024 1 tcp6,udp6,tcp,udp status 102

Si les démons ypbind et ypserv ne sont pas présent dans la liste des services ouverts, on doit faire appels aux scripts des niveaux de démarrage (runlevels) pour relancer le service. Deux méthodes sont disponibles.

# /etc/init.d/nis restart

# service nis restart

Q5. Où sont placés les fichiers de base de données NIS dans l'arborescence système ?

6 http://www.linux-nis.org/nis-howto/HOWTO/

(5)

Rechercher dans le support The Linux NIS(YP)/NYS/NIS+ HOWTO7 ainsi que dans la liste des fichiers et répertoires du paquet.

Par définition, les données d'un service doivent se trouver dans l'arborescence /var. On recherche donc cette arborescence dans la liste des fichiers du paquet.

# dpkg -L nis | grep var /var/var/yp

/var/yp/Makefile /var/yp/nicknames

Le répertoire recherché est donc /var/yp.

Q6. Quel est le procédé utilisé par le service NIS pour publier les informations à destination des clients ? Quel est l'outil utilisé pour générer les données du service ?

Consulter le support The Linux NIS(YP)/NYS/NIS+ HOWTO8, la documentation fournie avec le paquet ainsi que les fichiers contenus dans le répertoire identifié à la question précédente.

Le répertoire /var/yp contient un fichier Makefile qui gère les appels à la fonction de hachage utilisée pour traiter les fichiers de configuration du serveur NIS. L'outil make utilise automatiquement ce fichier et déclenche le hachage d'un fichier de configuration dès que celui- ci a été modifié.

Les résultats des différents hachages sont ensuite publiés via les appels de procédures distants (RPC) traités respectivement par les démons ypbind et ypserv du client et du serveur.

Exemple d'exécution de l'outil make.

# make

make[1]: entrant dans le répertoire « /var/yp/nis.lab » Updating netid.byname...

make[1]: quittant le répertoire « /var/yp/nis.lab »

Note

L'outil make doit nécessairement être exécuté à partir du répertoire /var/yp. Q7. Quels sont les fichiers de configuration propagés par défaut par le serveur NIS ?

Consulter le support The Linux NIS(YP)/NYS/NIS+ HOWTO9 la documentation fournie avec le paquet ainsi que les fichiers contenus dans le répertoire contenant les données du service NIS.

C'est le fichier Makefile qui contient les directives de hachage. La règle utilisée par défaut est désignée par le mot clé all:.

# grep -i ^all Makefile

ALL = passwd group hosts rpc services netid protocols netgrp ALL += shadow

ALL += passwd.adjunct all: $(ALL)

Q8. Comment faire pour que les identifiants utilisateur uid et gid diffusés via le service NIS soient comptés à partir de 2000 ?

Reprendre le fichier de configuration utilisé à la question précédente et repérer les directives relatives aux identifiants utilisateur.

Le Makefile contient deux variables qui donnent les valeurs minimum des identifiants.

# grep ^MIN[G,U]ID Makefile MINUID=1000

MINGID=1000

7 http://www.linux-nis.org/nis-howto/HOWTO/

8 http://www.linux-nis.org/nis-howto/HOWTO/

9 http://www.linux-nis.org/nis-howto/HOWTO/

(6)

Il faut alors éditer le fichier pour passer à 2000.

Q9. Comment créer un nouveau compte utilisateur baptisé etu-nis ayant justement la valeur 2000 pour les identifiants uid et gid ? Comment publier ce nouveau compte utilisateur via le service NIS ?

Rechercher dans la liste des options de l'outil de création des comptes utilisateur «locaux».

L'outil de création de compte utilisateur est adduser et les options à utiliser sont --uid et --gid. Cependant, l'utilisation de la dernière option suppose que le groupe soit préexistant. On réalise donc l'opération en deux étapes.

• On commence par la création du groupe.

# addgroup --gid 2000 etu-nis

Ajout du groupe « etu-nis » (GID 2000)...

make: entrant dans le répertoire « /var/yp »

make[1]: entrant dans le répertoire « /var/yp/nis.lab »

<snip/>

• On passe ensuite à la création du compte proprement dit.

# adduser --home /ahome/etu-nis --uid 2000 --ingroup etu-nis etu-nis Ajout de l'utilisateur « etu-nis » ...

make: entrant dans le répertoire « /var/yp »

<snip/>

Ajout du nouvel utilisateur « etu-nis » (2000) avec le groupe « etu-nis » ...

make: entrant dans le répertoire « /var/yp »

• Enfin, on vérifie que les bons identifiants ont été attribués.

# id etu-nis

uid=2000(etu-nis) gid=2000(etu-nis) groupes=2000(etu-nis)

Q10. Quels sont les tests à effectuer pour valider la publication des données via le service NIS ? Consulter la liste des commandes yp* fournies avec le paquet nis.

La commande utile est ypcat et les ressources à lister sont relatives aux fichiers système /etc/

passwd et /etc/group.

# ypcat passwd

etu-nis:x:2000:2000:Etudiant NIS,,,:/ahome/etu-nis:/bin/bash

# ypcat group etu-nis:x:2000:

5. Configuration du client NIS

À la différence du protocole NFS, les outils du client et du serveur NIS sont contenus dans le même paquet.

Que le poste soit client ou serveur, il faut passer par les mêmes étapes de configuration commune : désigner le serveur NIS et fixer le nom de domaine NIS. La notion de nom de domaine propre au service NIS est comparable au mécanisme de résolution WINS lié à netbios sur les systèmes Micro$o.

Q11. Quel est le paquet qui contient les outils du service NIS ? Comment installer ce paquet ?

Rechercher la chaîne de caractères "network information service" dans les descriptions de paquets pour identifier le paquet à installer.

Identification du paquet :

$ aptitude search '?description(network information service)'

p libnet-nis-perl - Interface to Sun's Network Information Service p melange - IPAM management service for Openstack - Daemons

p nis - clients and daemons for the Network Information Service (NIS) p python-melange - IPAM management service for Openstack - Python library

(7)

Installation du paquet nis :

# aptitude install nis

Les NOUVEAUX paquets suivants vont être installés : libgssglue1{a} libslp1{a} libtirpc1{a} nis rpcbind{a}

<snipped/>

[ ok ] Starting rpcbind daemon....

Paramétrage de nis (3.17-32) ...

[ ok ] Stopping NIS services: ypbind ypserv ypppasswdd ypxfrd.

[info] Setting NIS domainname to: nis.lab.

[FAIL] Starting NIS services: ypbind[....] binding to YP server..failed (backgrounded).

. ok

Lors de l'installation du paquet, on attribue un nom de domaine NIS. Dans cette exemple, le domaine est : nis.lab. Ce nom de domaine est à priori sans rapport avec le service de résolution des noms de domaine de l'Internet : le service DNS.

Q12. Quelle est l'opération à effectuer pour affecter le rôle NIS du poste ? Quel est le fichier de configuration concerné ?

Consulter le script système de lancement du service (runlevels) et identifier le fichier de configuration à éditer.

# grep '/etc/default' /etc/init.d/nis

# Customize the variables in /etc/default/nis rather than here [ -f /etc/default/nis ] && . /etc/default/nis

test -f ${NET}/ypbind -a -f /etc/defaultdomain || exit 0 nname=`cat /etc/defaultdomain`

Le répertoire /etc/default/ contient les fichiers de paramétrage des services. Ces fichiers sont consultés à chaque lancement des services à partir des scripts d'initialisation (runlevels) du répertoire /etc/init.d/. Il faut donc éditer le fichier /etc/default/nis pour affecter le rôle client ou serveur.

Dans le cas du client, il n'est pas nécessaire de modifier ce fichier sachant qu'il s'agit du rôle attribué par défaut.

# grep ^NIS /etc/default/nis NISSERVER=false

NISCLIENT=true NISMASTER=

Q13. Quelle est l'opération à effectuer pour (ré)affecter le nom du domaine NIS ? Quel est le fichier de configuration concerné ?

Rechercher l'outil de reconfiguration de paquet ainsi que les options permettant de parcourir les écrans de configuration. Il faut noter que les réponses aux menus de configuration des paquets sont enregistrées.

Consulter le support Debian NIS howto10 pour identifier le fichier dans lequel le nom de domaine NIS est stocké.

La commande de reconfiguration du paquet nis est : # dpkg-reconfigure -plow nis. Le nom de domaine NIS est stocké dans le fichier /etc/defaultdomain.

Q14. Quelle est la méthode de recherche par défaut du serveur NIS ? Quel est le type du flux réseau ? Effectuer une capture réseau en mode console avec tshark pour identifier la nature du trafic émis par le client NIS.

$ tshark -i eth0 ! port 22 Capturing on eth0

192.0.2.11 -> 192.0.2.31 Portmap 146 V2 CALLIT Call

192.0.2.11 -> 192.0.2.31 Portmap 146 [RPC retransmission of #1]V2 CALLIT Call 192.0.2.11 -> 192.0.2.31 Portmap 146 [RPC retransmission of #1]V2 CALLIT Call

10 http://www.linux-nis.org/doc/nis.debian.howto

(8)

La capture réseau ci-dessus a été réalisée dans le réseau 192.0.2.0/27 dont l'adresse de diffusion est 192.0.2.31. Le client recherche donc le serveur à l'aide de paquets de diffusion. Dans notre contexte, on se propose d'identifier le serveur de façon à limiter le recours à la diffusion.

Q15. Quelle est l'opération à effectuer pour désigner le serveur NIS ? Quel est le fichier de configuration concerné ?

Rechercher les éléments relatifs à la la désignation du serveur dans la liste des fichiers de configuration fournis avec le paquet.

Éditer ce fichier en indiquant l'adresse IP du serveur NIS.

Le fichier recherché est yp.conf.

# dpkg -L nis | grep 'yp.conf' /usr/share/man/man5/yp.conf.5.gz /etc/yp.conf

Dans notre cas le fichier contient les deux instructions suivantes.

# grep -v '^#' /etc/yp.conf ypserver 2001:db8:feb2:10::12 ypserver 192.0.2.12

Note

Cet exemple est basé sur l'utilisation d'une double pile réseau IPv4 + IPv6. La capture réseau donnée ci-avant montre que seule la pile réseau IPv4 est utilisée par le démon client NIS.

Q16. Quel est l'outil qui permet de lister les services accessibles via un appel RPC ? Comment peut- on relancer le service NIS s'il n'est pas actif ?

Rechercher dans le support The Linux NIS(YP)/NYS/NIS+ HOWTO11 l'outil utiliser pour interroger le multiplexeur d'appel de procédure distant.

L'outil à utiliser est rpcinfo. Il est fourni par le paquet rpcbind.

# dpkg -S `which rpcinfo`

rpcbind: /usr/sbin/rpcinfo

L'option historique -p liée à IPv4 a été remplacée par -s pour tenir compte des deux protocoles de couche réseau. Voici deux exmples d'exécution produisant les mêmes résultats.

# rpcinfo -s 192.0.2.12

program version(s) netid(s) service owner 100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser 100007 1,2 tcp,udp ypbind superuser

# rpcinfo -s 2001:db8:feb2:10::12

program version(s) netid(s) service owner 100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser 100007 1,2 tcp,udp ypbind superuser

Si le démon ypbind n'est pas présent dans la liste des services ouverts, on doit faire appels aux scripts des niveaux de démarrage (runlevels) pour relancer le service. Deux méthodes sont disponibles.

# /etc/init.d/nis restart

# service nis restart

Q17. Quels sont les numéros de ports utilisés ainsi que la famille de protocole de couche réseau utilisés ?

Réaliser une capture lors de l'exécution l'outil obtenu à la question précédente et relever les numéros de ports caractéristiques de cette transaction.

11 http://www.linux-nis.org/nis-howto/HOWTO/

(9)

Client Serveur --- ypbind --- requête RPC bind ---> portmapper ypbind <--- numéro de port ---- portmapper ypbind --- requête RPC bind ---> ypserv ypbind <--- réponse --- ypserv

On exécute la commande # rpcinfo -s 2001:db8:feb2:10::12.

# rpcinfo -s 2001:db8:feb2:10::12

program version(s) netid(s) service owner 100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser 100004 1,2 tcp,udp ypserv superuser 100009 1 udp yppasswdd superuser 600100069 1 tcp,udp fypxfrd superuser 100007 1,2 tcp,udp ypbind superuser

La copie d'écran ci-dessus montre que les services liés à NIS utilisent exclusivement IPv4 alors que le portmapper utilise les deux familles de protocoles.

La capture réseau correspondant à l'exécution de la commande montre que le service portmapper est sollicité pour obtenir la liste des services RPC disponibles sur l'hôte.

• Le service portmapper est repéré à partir du nom du port distant : sunrpc.

$ grep sunrpc /etc/services

sunrpc 111/tcp portmapper # RPC 4.0 portmapper sunrpc 111/udp portmapper

• Le protocole de couche transport utilisé est TCP.

• Le protocole de couche réseau utilisé est IPv6.

$ tshark -i eth0 ! port 22 Capturing on eth0

2001:db8:feb2:10::11 -> 2001:db8:feb2:10::12 TCP 94 sanity > sunrpc [SYN] Seq=0

2001:db8:feb2:10::12 -> 2001:db8:feb2:10::11 TCP 94 sunrpc > sanity [SYN, ACK] Seq=0 Ack=1 2001:db8:feb2:10::11 -> 2001:db8:feb2:10::12 TCP 86 sanity > sunrpc [ACK] Seq=1 Ack=1 2001:db8:feb2:10::11 -> 2001:db8:feb2:10::12 Portmap 130 V3 DUMP Call

2001:db8:feb2:10::12 -> 2001:db8:feb2:10::11 TCP 86 sunrpc > sanity [ACK] Seq=1 Ack=45 2001:db8:feb2:10::12 -> 2001:db8:feb2:10::11 Portmap 1398 V3 DUMP Reply (Call In 6) 2001:db8:feb2:10::11 -> 2001:db8:feb2:10::12 TCP 86 sanity > sunrpc [ACK] Seq=45 Ack=1313 2001:db8:feb2:10::11 -> 2001:db8:feb2:10::12 TCP 86 sanity > sunrpc [FIN, ACK] Seq=45 Ack=1313 2001:db8:feb2:10::12 -> 2001:db8:feb2:10::11 TCP 86 sunrpc > sanity [FIN, ACK] Seq=1313 Ack=46 2001:db8:feb2:10::11 -> 2001:db8:feb2:10::12 TCP 86 sanity > sunrpc [ACK] Seq=46 Ack=1314

En affectant un nom de domaine spécifique au service NIS, on a ouvert un nouveau mécanisme de requête sur les informations des utilisateurs et des hôtes. Pour que ce mécanisme de résolution soit utilisé, il faut compléter la configuration du commutateur de service de résolution de noms (name service switch ou NSS).

Q18. Quelles sont les opérations à effectuer pour que le service NIS soit consulté à chaque requête de résolution de nom ? Quel sont les fichiers de configuration concernés ?

Consulter le support Debian NIS howto12 ainsi que la liste des fichiers du paquet.

Le fichier de configuration concerné est /etc/nsswitch.conf. Dans ce fichier l'entrée concernée par la résolution des noms est la ligne débutant par hosts:. Pour que le service NIS soit utilisé, il est nécessaire d'ajouter l'option nis entre files et dns.

# grep ^hosts /etc/nsswitch.conf hosts: files nis dns

12 http://www.linux-nis.org/doc/nis.debian.howto

(10)

Q19. Quelle est la commande qui permet de lister les informations diffusées via le service NIS ? Rechercher dans le support The Linux NIS(YP)/NYS/NIS+ HOWTO13 et consulter la liste des commandes yp* fournies avec le paquet.

La commande recherchée est ypcat. On donne un exemple d'exécution ci-dessous.

# ypcat hosts

2001:db8:feb2:10::12 ip6-srvr 2001:db8:feb2:10::11 ip6-clnt 192.0.2.12 srvr

127.0.0.1 localhost 192.0.2.11 clnt

Q20. Comment faire en sorte que les comptes utilisateur publiés via le service NIS soient utilisables sur les postes clients ?

Consulter les rubriques relatives aux utilisateurs et aux groupes de la section 2 de la page Debian NIS howto14

On doit compléter les fichiers locaux aux clients NIS pour que les informations publiées via le service soient vues comme si elles étaient locales.

# echo "+::::::" >>/etc/passwd

# echo "+::::::::" >>/etc/shadow

# echo "+:::" >>/etc/group

Q21. Comment valider l'accès aux ressources via le commutateur Name Service Switch (NSS) local au client ?

Rechercher la commande qui affiche les entrées des bases de données prises en charge par les bibliothèques du Name Service Switch (NSS). On peut utiliser une recherches par mots clés dans les pages de manuels.

La recherche # man -k NSS donne une liste de pages de manuels d'outils. Dans cette liste, il est relativement aisé de repérer l'outil getent. Il suffit ensuite de consulter les pages de manuels de cet outil pour relever les options qui nous intéressent.

# getent passwd | grep etu

etu:x:1000:1000:Etudiant,,,:/home/etu:/bin/bash

etu-nis:x:2000:2000:Etudiant NIS,,,:/ahome/etu-nis:/bin/bash

# getent group | grep etu cdrom:x:24:etu

floppy:x:25:etu audio:x:29:etu dip:x:30:etu video:x:44:etu plugdev:x:46:etu etu:x:1000:

wireshark:x:107:etu etu-nis:x:2000:

Q22. Comment valider l'accès au compte utilisateur distant ? Quelle est la partie manquante à cette étape de la configuration ?

Rechercher l'outil qui permet de changer d'identité au niveau du système. L'identité à adopter est etu-nis.

L'outil à utiliser est su.

# su etu-nis

$ cdbash: cd: /ahome/etu-nis: Aucun fichier ou dossier de ce type

$ iduid=2000(etu-nis) gid=2000(etu-nis) groupes=2000(etu-nis)

$ exit

13 http://www.linux-nis.org/nis-howto/HOWTO/

14 http://www.linux-nis.org/doc/nis.debian.howto

(11)

La copie d'écran ci-dessus montre que le changement d'identité a bien fonctionné mais que le répertoire utilisateur n'est pas accessible. Pour qu'un répertoire utilisateur distant soit vu comme un répertoire local, il faut nécessairement disposer d'un système de fichiers réseau.

Cette dernière condition peut être satisfaite à l'aide du service d'automontage.

6. Documents de référence

The Linux NIS(YP)/NYS/NIS+ HOWTO

The Linux NIS(YP)/NYS/NIS+ HOWTO15 : documentation complète sur la configuration d'un serveur et d'un client NIS.

Documentation du paquet Debian nis

Le fichier /usr/share/doc/nis/nis.debian.howto.gz contient une description pas à pas de la marche à suivre pour configurer le service NIS.

La page Debian NIS howto16 donne accès au même contenu en ligne.

Système de fichiers réseau NFS

Introduction au système de fichiers réseau NFSv417 : prolongement de ce support sur le service NIS qui ne permet pas d'accéder au contenu d'un répertoire utilisateur à partir d'un hôte client.

15 http://www.linux-nis.org/nis-howto/HOWTO/

16 http://www.linux-nis.org/doc/nis.debian.howto

17 http://www.inetdoc.net/travaux_pratiques/index.html#sysadm-net.nfs

Références

Documents relatifs

[r]

La troisième égalité permet d'établir un cas particulier du théorème de la progression arithmétique de Dirichlet : il existe une innité de nombres premiers de la forme 4m +

On se sert de cette propriété pour montrer que tout automorphisme de Sn avec n non égal à 6 est intérieur: on montre que tout automorphisme qui envoie une transposition sur

b) En déduire que f possède un zéro autre

Consulter le support The Linux NIS(YP)/NYS/NIS+ HOWTO 8 la documentation fournie avec le paquet ainsi que les fichiers contenus dans le répertoire contenant les données du

Maintenant vous devez modifier votre fichier /etc/nsswitch.conf pour les lignes hosts, group et passwd (uniqument les maps exportés) pour prendre en compte d'abord

Lorsqu’un client recherche l’adresse IP d’un il doit consulter son fichier hosts.. Si NIS fonctionne le client interrogera NIS avant de consulter le

sur station2: Créez 3 utilisateurs: test1 (mot de passe passtest1, même uid que test1 sur serveur1), test (mot de passe test, même uid que test2 sur serveur1), test2 (mot de