Installer un serveur NIS sous CentOS

NISSur les systèmes Red Hat Enterprise Linux et dérivés, il existe une série de solutions pour mettre en place une authentification centralisée. Les grands classiques comme FreeIPA ou 389 Directory Server sont de véritables usines à gaz, dont la configuration et le débogage peuvent s’avérer assez complexes. Avant d’attaquer ces bestiaux, nous allons faire un petit voyage dans le temps et nous intéresser à une technologie considérée comme obsolète, mais qu’il est utile de connaître.

Présentation

NIS (Network Information Service) est l’ancêtre des systèmes d’authentification centralisée sur les systèmes unixoïdes. À l’origine, NIS est sorti sous le nom de Yellow Pages (YP, c’est-à-dire les Pages Jaunes), mais le nom avait déjà été déposé par British Telecom. Sun Microsystems a donc renommé son protocole en conséquence. Cet aperçu historique explique la nomenclature des commandes relatives à NIS, qui commencent toutes par yp. Techniquement, un serveur NIS sert avant tout à stocker les informations administratives du réseau, notamment les comptes utilisateurs et les groupes.

NIS est moins sécurisé que ses successeurs. Si nous l’abordons ici, c’est avant tout dans un but pédagogique. La configuration d’un serveur NIS nous permettra de nous faire la main sur un système d’authentification centralisée relativement simple à mettre en oeuvre.

Prérequis

Cet article constitue le troisième volet dans notre série sur la mise en place de profils itinérants avec une authentification centralisée. Dans le premier article, nous avons décrit la mise en place du serveur NFS. Le deuxième article était consacré à la configuration des postes clients. Pour la suite, nous devons donc disposer d’un partage NFS fonctionnel des répertoires utilisateurs.

Le serveur NIS requiert l’ouverture d’une série de ports dans le pare-feu.

  • le port 111 en TCP et en UDP pour rpcbind
  • le port 944 en TCP et en UDP pour ypserv
  • le port 945 en TCP et en UDP pour ypxfrd
  • le port 946 en udp pour yppasswdd

Installation

Le paquet ypserv est fourni par les dépôts officiels de Red Hat et CentOS.

# yum install ypserv

Configuration

Définir le nom de domaine NIS.

# ypdomainname microlinux.lan

Le domaine NIS devra également être renseigné dans /etc/sysconfig/network.

# /etc/sysconfig/network
GATEWAY=192.168.2.1
NISDOMAIN="microlinux.lan"

Toujours dans /etc/sysconfig/network, on va définir des ports statiques pour ypserv et ypxfrd.

# /etc/sysconfig/network
GATEWAY=192.168.2.1
NISDOMAIN="microlinux.lan"
YPSERV_ARGS="-p 944"
YPXFRD_ARGS="-p 945"

Le port statique pour le service yppasswdd peut être défini dans /etc/sysconfig/yppasswdd.

# /etc/sysconfig/yppasswdd
...
# Additional arguments passed to yppasswd
YPPASSWDD_ARGS="--port 946

Si le fichier /var/yp/securenets est vierge ou n’existe pas, NIS attend des requêtes de tous les réseaux. La première chose à faire pour sécuriser le serveur, c’est donc de spécifier une paire masque de sous-réseau / réseau dans ce fichier. Il s’agit là d’une sécurisation très sommaire, mais c’est déjà mieux que rien.

# /var/yp/securenets
255.0.0.0 127.0.0.0
255.255.255.0 192.168.2.0

Mise en service

À présent, on peut activer et démarrer les services NIS.

# systemctl enable ypserv ypxfrd yppasswdd
# systemctl start ypserv ypxfrd yppasswdd

Ensuite, on va initialiser la base de données NIS.

# /usr/lib64/yp/ypinit -m

At this point, we have to construct a list of the hosts which will 
run NIS servers. amandine.microlinux.lan is in the list of NIS 
server hosts.  Please continue to add the names for the other hosts,
one per line. When you are done with the list, type a <control D>.
        next host to add:  amandine.microlinux.lan
        next host to add:  [Ctrl]+[D]
The current list of NIS servers looks like this:

amandine.microlinux.lan

Is this correct?  [y/n: y]  [Y]
We need a few minutes to build the databases...
Building /var/yp/microlinux.lan/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/microlinux.lan'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/microlinux.lan'

amandine.microlinux.lan has been set up as a NIS master server.

Now you can run ypinit -s amandine.microlinux.lan on all slave 
servers.

Il ne reste plus qu’à ajouter les utilisateurs du serveur à la base de données NIS.

# cd /var/yp
# make

La configuration des clients NIS fait l’objet d’un article à part.

 

Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , . Vous pouvez le mettre en favoris avec ce permalien.

3 réponses à Installer un serveur NIS sous CentOS

  1. Ping : Installer un serveur NIS sous CentOS - My Tiny Tools

  2. jack keradec dit :

    Huh ? Ca me rappelle mes manips sous Sun0S avec des stations Sun. Je ne penses pas que l’on utilise encore. On préfère sans doute LDAP aujourd’hui. Nice try , Kikinovak !

    • kikinovak dit :

      C’est ce que j’explique dans l’introduction. En revanche, il m’arrive encore de voir NIS en production. Il y a quelque temps, j’ai installé une station de travail de calcul géophysique à l’Ifremer de Brest, un grand centre de recherche océanographique. Ils tournent sous RHEL et Fedora, et ils utilisent NIS pour l’authentification sur tous les postes.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.