||<#ffa000> 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 [[http://www.linux-nis.org|Linux NIS/NIS+ Project]] * une documentation [[http://uw713doc.caldera.com/en/NET_nis/CONTENTS.html|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` * http://www.security-labs.org/index.php3?page=131