Attention cette page est un simple copié-collé d'une documentation de l'ancien wiki, écrite pour Debian Sarge 3.0. Peut-être y a-t-il des modifications à apporter. Dans tous les cas, regardez plutôt la page sur ../NssMysql
Anciennement connu sous le nom de "Yellow Pages" (nom déposé dans certains pays), NIS est un protocole qui permet à des postes clients de récupérer les informations telles que {login,password} à partir d'un serveur central ; ainsi, la gestion des utilisateurs se fait sur une seule machine (le serveur NIS).
Fonctionnement de NIS
NIS est un système, basé sur les RPC (Remote Procedure Call), qui permet à un serveur de transférer vers les clients les informations contenues dans /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow (et plus encore [Note de ProgFou : pas beaucoup plus avec NIS de base, mais énormément plus avec NIS+]) après les avoir converties au format DBM (dérivé des bases de données ASCII).
* Les démons coté serveur :
* Le coté client :
Installer NIS
Installer le paquetage nis (client/serveur) sur le(s) serveur(s) et le(s) client(s): #apt-get install nis ; apt va installer les package requis (netbase, portmap, ..). Lors du processus d'installation, debconf va demander le nom du domaine NIS (celui-ci doit être identique pour le client et le serveur) : NIS domain = "mon-domaine-nis" ; ce paramètre va ensuite être écrit dans /etc/defaultdomain.
Configurer un serveur NIS
éditer le fichier /etc/default/nis pour déclarer l'hôte comme serveur nis "maître" :
# /etc/defaults/nis NISSERVER=master
éditer le fichier de configuration du serveur NIS /etc/ypserv.conf et décommenter les lignes commençant par * afin d'activer l'exportation des cartes :
#/etc/ypserv.conf # Host : Map : Security : Passwd_mangle * : passwd.byname : port : yes * : passwd.byuid : port : yes * : * : none # * : shadow.byname : port * : passwd.adjunct.byname : port * : * : none
sécuriser l'accès au serveur NIS en éditant /etc/ypserv.securenets :
#/etc/ypserv.securenets # toujours permettre l'accès à localhost 255.0.0.0 127.0.0.0 # autoriser l'accès au réseau local 255.255.255.0 192.168.0.0
- relancer le service NIS :
# /etc/init.d/nis restart`
- construire la base de donnée sur le serveur (master) en éxecutant la commande :
serveur-nis#/usr/lib/yp/ypinit -m
Configurer un client NIS
indiquant dans le fichier de configuration du client NIS (/etc/yp.conf) le ou les serveur(s) NIS ; indiquer une adresse IP plutôt qu'un nom de domaine permet d'éviter la dépendance vis à vis du DNS (à moins que le serveur soit déclaré dans /etc/hosts) :
# /etc/yp.conf ypserver 194.253.227.152
vérifier la configuration (par défaut) de nsswitch.conf :
# /etc/nsswitch.conf passwd: compat group: compat shadow: compat netgroup: nis
rajouter une ligne spéciale "+:::" * à la fin de chacun des fichier suivants :
# extrait de /etc/passwd root:x:0:0:root:/root:/bin/bash (...) apache:x:72:72::/var/www:/bin/sh user:x:501:501::/home/user:/bin/bash +::::::
si on veut que l'utilisateur dispose d'un accès à un shell en local (utile pour un client KDE-print/cups ;-)), alors modifiera la dernière ligne de /etc/passwd ainsi : +:::::/bin/bash
# extrait de /etc/shadow root:$1$werr9vh0dMSh.:12045:0:99999:7::: (...) apache:!!:12045:0:99999:7::: user:$1$6hzhhuDgvThn.:12053:0:99999:7::: +::::::::
# fin de /etc/group +:::
# fin de /etc/gshadow +:::
le nombre de ":" dans la ligne rajoutée à la fin de chacun des fichiers est le même que celui dans les lignes précédentes.
- démarrer et arrêter le service NIS :
# /etc/init.d/nis stop # /etc/init.d/nis start
récupérer la carte des utilisateurs :#ypcat passwd (ou encore getent passwd si les NSS sont bien configurées)
- faire un "id login" avec un login du serveur : la réponse doit être 100% identique à celle donnée par la même commande sur le serveur lui-même
Pour aller plus loin avec NIS
Il est possible d'assurer la redondance grâce à la mise en place d'un serveur esclave.
Pour améliorer la sécurité, on peut migrer vers NIS+ qui utilise le cryptage de données et l'autentification sur RPC sécurisée.
Ressources & docs:
consulter la documentation du Linux NIS/NIS+ Project
une documentation Unix SCO sur NIS
lire les pages de manuel (man) de ypbind, ypcat, domainname et ypserv
lire la documentation (assez ancienne) de Debian concernant NIS :$ zless /usr/share/doc/nis/nis.debian.howto.gz