Installer un client NIS

Auteur : Olivier BOYER - oboyer () ajoute ! org

Mots clés

Linux, NIS, YP, ypbind, ubuntu

Introduction

Dans notre exemple, il n'existe qu'un seul serveur NIS. Il n'y a pas de serveur de secours. Dans une configuration de production il est préferrable d'avoir au moins un serveur esclave. En effet, si le serveur maitre s'arrête, plus aucun utilisateur du réseau ne peut se s'authentifier.

Cet configuration a été testée avec les distributions : RedHat 9, Crux, Knoppix, Debian, Ubuntu

Paramètres de configuration du domaine NIS

Nom  du domaine NIS	= leaves
Nom  du domaine DNS	= leaves.org
FQDN du Serveur NIS	= smoking.leaves.org
IP   du Serveur NIS	= 192.168.1.1
OS   du Serveur NIS	= *BSD

Note

Toutes les commandes présentées ici, sont à executer, sauf mention contraire, en tant qu'administrateur de la machine.

Activer le client NIS (cas général)

La configuration du client NIS s'effectue via le fichier /etc/yp.conf. Modifiez-le comme suit :

# /etc/yp.conf - ypbind configuration file
# Valid entries are
#
#domain NISDOMAIN server HOSTNAME
#       Use server HOSTNAME for the domain NISDOMAIN.
#
#domain NISDOMAIN broadcast
#       Use  broadcast  on  the local net for domain NISDOMAIN
#
#ypserver HOSTNAME
#       Use server HOSTNAME for the  local  domain.  The
#       IP-address of server must be listed in /etc/hosts.
#
domain leaves server smoking

#OPTIONAL
#ypserver smoking

#EOF

Modifier les fichiers d'authentification

Pour interroger le service NIS lors de l'autentification d'un utilisateur, ajoutez la ligne suivante aux fichiers :

/etc/nsswitch.conf

Pour indiquer au système de résolution de chercher dans les bases NIS, modifiez comme suit le fichier /etc/nsswitch.conf :

passwd:      compat
shadow:      files nis
group:       files nis
automount:   files

/etc/passwd

La grande majorité des Linux utilisent les 'shadow password' pour stocker le mot de passe crypté d'un utilisateur dans un fichier différent du fichier /etc/passwd (en lecture pour tous). Ainsi, les mots de passes sont enregistrés dans le fichier /etc/shadow en lecture uniquement pour l'utilisateur 'root'. Ainsi, seul un processus ayant l'identité de 'root' peux lire le contenu de ce fichier pour authentifier un utilisateur.

Pour chercher les mots de passes cryptés dans le fichier /etc/shadow, le fichier /etc/passwd doit contenir le caractère 'x' dans le deuxième champ. Par exemple :

root:x:0:0:root:/root:/bin/bash

Les systèmes BSD utilisent une technique différente pour stocker les mots de passes cryptés des utilisateurs. Le fichier principal d'authentification est /etc/master.passwd. Le fichier /etc/passwd est généré à partir des données du fichier /etc/master.passwd.

Pour indiquer à la libc de chercher le mot de passe crypté dans le fichier /etc/master.passwd, les systèmes BSD utilisent le caractère '*' en deuxième position dans le fichier /etc/passwd.

On voit le problème, les systèmes V (Linux, Solaris, ..) et BSD n'utilisent pas le même caractère en deuxième position du fichier /etc/passwd pour chercher le mot de passe crypté dans un fichier séparé.

  • les systèmes V s'attendent au caractère 'x'
  • les systèmes BSD s'attendent au caractère '*'

Dans notre cas, le serveur est sous BSD. Donc, les clients RedHat, et autres Solaris, ne comprennent pas le deuxième champ de la map nis 'passwd'. Ils attendent en effet le caractère 'x' et recoivent à la place le caractère '*”.

La synthaxe ”+::::::” dans le fichier /etc/passwd permet de redéfinir certains champs en local. C'est cette fonctionnalite que nous utilisons pour rendre compatible le système d'authentification des BSD et des systèmes V.

Le caractère '+' indique qu'il faut chercher les informations dans la map NIS 'passwd', et le caractère 'x' indique qu'il faut prendre le mot de passe crypté dans la map NIS 'shadow'.

Ajoutez la ligne suivante à la fin du fichier /etc/passwd:

+:x:::::

Remarque : cette ligne doit toujours être la dernière du fichier. Faites attention lors de l'ajout d'un utilisateur avec la commande useradd.

Modifier le fichier /etc/hosts

La résolution de noms du serveur NIS maître doît toujours pouvoir s'effectuer. Pour cela, il faut ajouter le FQDN et l'adresse IP du serveur NIS dans le fichier : /etc/hosts

Ajoutez la ligne suivante au fichier /etc/hosts

192.168.1.1	smoking.leaves.org	smoking

Activer l'autofs

Le daemon autofs permet de monter des systèmes de fichiers réseau automatiquement lors de l'accès à ceux-ci. Par exemple, si le répertoire /home est géré par le daemon autofs, dès qu'un accès en lecture ou écriture est y fait Prenons l'exemple du répertoire /home géré par le daemon autofs. Dès qu'un accès y est fait (en lecture, écriture ou exécution) le daemon autofs teste si la destination existe. Si oui, l'accès continue, si non, alors le daemon consulte son fichier de configuration /etc/auto.master et cherche comment monter la destination.

Ce service est très pratique pour monter automatiquement les 'home directory' sur les clients lors de la connexion d'un utilisateur.

Supposons que les utilisateurs aient leur 'home directory' dans le répertoire /home de la machine 'smoking'

La map NIS auto.home peut être définie comme suit sur le serveur NIS :

*        smoking:/home/&

Pour monter automatiquement la 'home directory' d'un utilisateur lors de sa connexion, ajouter la ligne suivante au fichier /etc/auto.master :

/home   yp:auto.home

Ainsi, sur le client, tout accès au répertoire /home/toto provoquera le montage NFS suivant :

# mount smoking:/home/toto /home/toto

Configurer sshd

Si vous utilisez le service sshd sur le client dans un environnement NIS, il faut parfois activer l'authentification via le PAM.

Pour ce faire, ajouter les lignes suivantes au fichier : /etc/ssh/sshd_config

# Set this to 'yes' to enable PAM keyboard-interactive authentication
# Warning: enabling this may bypass the setting of 'PasswordAuthentication'
PAMAuthenticationViaKbdInt yes

Activer le client NIS (sur une Ubuntu)

La ubuntu ne livre pas en standard les packages de gestion du NIS. Pour les installer, procédez comme suit :

# apt-get install nis
# apt-get install autofs
 
doc/linux/client_nis.txt · Dernière modification: 2009/12/23 22:36 (édition externe)     Haut de page