Page suivante Page précédente Table des matières

9. Que faut-il pour configurer NIS+ ?

9.1 Les programmes

Le code de NIS+ pour Linux a été développé pour la bibliothèque GNU C 2. Il existe également une version pour la libc5 de Linux, puisque toutes les applications commerciales sont compilées en édition de lien avec cette bibliothèque, et que vous ne pouvez pas les recompiler en utilisant la glibc. Il y a des problèmes avec la libc5 et NIS+: Vous ne pourrez pas réaliser d'édition de lien statique de vos programmes, et les programmes compilés avec cette bibliothèque ne fonctionneront pas avec les autres versions de la libc5.

Vous devez récupérer et recompiler la dernière version de la glibc2, et une distribution basée sur cette bibliothèque comme la Redhat Mustang ou l'instable Debian. Mais attention : il s'agit toujours d'une version bêta. Lisez la documentation concernant la glibc et celle fournie par la distribution. La glibc2.0.x ne gère pas pleinement NIS+, et ne l'intégrera jamais. La première version avec la gestion NIS+ sera la 2.1.

Les programmes clients NIS+ peuvent être récupérés sur les sites :

  Site                   Repertoire                 Nom du fichier

  ftp.kernel.org         /pub/software/libs/glibc   libc-*, glibc-crypt-*,
                                                    glibc-linuxthreads-*
  ftp.kernel.org         /pub/linux/utils/net/NIS+  nis-tools-1.4.2.tar.gz
  ftp.kernel.org         /pub/linux/utils/net/NIS+  pam_keylogin-1.2.tar.gz

Les distributions basées sur la glibc peuvent être récupérées sur les sites :

  Site                   Repertoire

  ftp.redhat.com         /pub/redhat/redhat-5.1
  ftp.debian.org         /pub/debian/dists/hamm

Pour compiler la glibc, suivez les instructions livrées avec les sources. Vous pouvez trouver à l'adresse suivante la version patchée de la libc5, basée sur NYS et sur les sources de la glibc, qui peut être utilisée pour remplacer la libc5.

  Site                   Repertoire                 Nom du fichier

  ftp.kernel.org         /pub/linux/utils/net/NIS+  libc-5.4.44-nsl-0.4.10.tar.gz

Vous pouvez également consulter le site http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html pour plus d'informations ainsi que pour avoir les dernières sources.

9.2 Configurer un client NIS+

IMPORTANT : pour configurer un client NIS+, lisez la documentation NIS+ Solaris pour voir ce qu'il convient de faire du côté serveur. Ce document ne décrit que le côté client !

Après avoir installé la nouvelle libc ainsi que nis-tools, créez les références pour le nouveau client sur le serveur NIS+. Assurez vous que portmap est lancé. Ensuite, vérifiez que votre PC Linux est à la même heure que le serveur NIS+. Pour réaliser des RPC sécurisés, vous disposez d'une courte période de 3 minutes, durant lesquelles les références sont valides. Lancer xntpd sur toutes les machines peut être une bonne idée. Après tout ça, exécutez les commandes suivantes :

domainname nisplus.domain.
nisinit -c -H <serveur NIS+>

pour initialiser le système de lancement. Lisez la page de manuel de nisinit pour connaître les différentes options existantes. Assurez-vous que le nom de domaine est toujours bien positionné lors d'un réamorçage. Si vous ne connaissez pas votre nom de domaine NIS+ sur votre réseau, demandez-le à votre administrateur système.

Pensez également à modifier votre ficher /etc/nsswitch.conf. Assurez-vous que le seul service situé avec publickey est nisplus ("publickey: nisplus"), et rien d'autre !

Ensuite, lancez keyserv et assurez-vous qu'il sera toujours lancé lors de l'amorçage de la machine. Lancez

keylogin -r
pour conserver la clef privée sur votre système (j'espère que vous avez ajouté la clef publique de la nouvelle machine sur le serveur NIS+ !).

"niscat passwd.org_dir" doit désormais vous donner toutes les entrées contenues dans la base de données passwd.

9.3 NIS+, keylogin, login et PAM

Lorsque l'utilisateur se connecte, il a besoin de fixer sa clef secrète sur le serveur de clef. Cela est effectué en appelant keylogin. Le login à partir du paquetage shadow fera cela à la place de l'utilisateur. Pour un login de type PAM, vous devez installer pam_keylogin-1.1.tar.gz et modifier le fichier /etc/pam.d/login pour utiliser pam_unix_auth, et non pwdb qui ne gère pas NIS+. Voici un exemple :

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_keylogin.so
auth       required     /lib/security/pam_unix_auth.so
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_unix_passwd.so
session    required     /lib/security/pam_unix_session.so

9.4 Le fichier nsswitch.conf

Le fichier de configuration /etc/nsswitch.conf détermine l'ordre dans lequel sont effectuées les recherches de certaines informations, en fonction des données et des services, de la même manière que le fichier /etc/host.conf détermine la façon dont les recherches de noms de machines se font. Par exemple, la ligne

    hosts: files nisplus dns

indique que la fonction de recherche doit dans un premier temps chercher dans le fichier local /etc/hosts, suivi par une recherche NIS+ et enfin via le service de recherche de noms (/etc/resolv.conf et named). À ce moment là, si aucune machine n'est trouvée, alors une erreur est renvoyée.

Voici un exemple de bon fichier /etc/nsswitch.conf

# Un exemple de configuration de NSS. Ce fichier doit etre trie en 
# mettant en tete les services les plus utilises.
#
# L'entree '[NOTFOUND=return]' signifie que la recherche d'une entree
# doit s'arreter si la recherche dans l'entree precedente n'a rien donne
# Notez que si la recherche echoue pour tout autre raison 
# (par exemple, le serveur NIS ne repond pas), alors la recherche continue
# avec l'entree suivante.
#
# Les entrees connues sont :
#
#       nisplus                 NIS+ (NIS version 3)
#       nis                     NIS (NIS version 2), connu comme YP
#       dns                     DNS (Domain Name Service)
#       files                   Fichiers locaux
#       db                      Bases de donnees /var/db 
#       [NOTFOUND=return]       Arret de la recherche si l'on a rien trouve
#
passwd:     compat
# pour libc5: passwd: files nisplus
group:      compat
# pour libc5: group: files nisplus
shadow:     compat
# pour libc5: shadow: files nisplus

passwd_compat: nisplus
group_compat:  nisplus
shadow_compat: nisplus

hosts:      nisplus files dns

services:   nisplus [NOTFOUND=return] files
networks:   nisplus [NOTFOUND=return] files
protocols:  nisplus [NOTFOUND=return] files
rpc:        nisplus [NOTFOUND=return] files
ethers:     nisplus [NOTFOUND=return] files
netmasks:   nisplus [NOTFOUND=return] files
netgroup:   nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey:  nisplus
automount:  files
aliases:    nisplus [NOTFOUND=return] files


Page suivante Page précédente Table des matières